创建 Web 服务端口后向 CXF 客户端添加功能

问题描述 投票:0回答:1

我使用 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() // ...
但此列表只是当前活动功能的视图。操作此列表没有任何效果。

cxf
1个回答
0
投票
您可以使用与日志功能在后台使用的相同的拦截器。

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)))
    
© www.soinside.com 2019 - 2024. All rights reserved.