我使用 wsdl 文件中的
wsdl2java
创建了 Java 类。
在客户端,我将通过这种方式创建端口(我可以在其中调用 Web 服务)
// Creating Service Class
MyServiceService service = new MyServiceService();
// Creating LoggingFeature
LoggingFeature loggingFeature = new LoggingFeature();
// ...
// Crating WebService
MyService ws = service.getMyService(new WSAddressingFeature(), loggingFeature);
// obtaining the Client
Client client = ClientProxy.getClient(ws);
// Modifying the client timeouts and so on...
// ...
// Call the web service method
ws.callMyWebservice(...);
因此我可以通过创建 Web 服务类来添加功能。但是是否可以在创建 Web 服务类之后添加功能?
我只找到了一种列出活动功能的方法:
Endpoint endpoint = client.getEndpoint();
List<Feature> features = endpoint.getActiveFeatures()
// ...
但此列表只是当前活动功能的视图。操作此列表没有任何效果。
Client client = ClientProxy.getClient(ws);
LogEventSender sender = new Slf4jVerboseEventSender();
client.getInInterceptors().add(new LoggingInInterceptor(new PrettyLoggingFilter(sender)))
client.getOutInterceptors().add(new LoggingOutInterceptor(new PrettyLoggingFilter(sender)))