0

我想记录我的请求和响应。通过更改此处推荐的属性,我找到了一个非常简单的解决方案: 使用 JAX-WS 跟踪 XML 请求/响应

我的问题是,我不想记录凭据,所以我需要手动调整日志消息。

我是肥皂新手,所以我没有太多经验。

我使用 gradle 插件来创建我的 WSDL 的 java 类:https ://plugins.gradle.org/plugin/no.nils.wsdl2java

我创建服务的代码:

import javax.xml.namespace.QName
import javax.xml.ws.Service
[...]

private MYSoapWsdlClass createClient(String url) {

    URL serverEndpoint = new URL(url)
    QName SERVICE_NAME = new QName("DOC_URL", "SERVICE_NAME")
    Service service = Service.create(serverEndpoint, SERVICE_NAME)
    return service.getPort(MYSoapWsdlClass.class)
}

那么我怎么能在这里得到日志处理程序呢?还是有另一种简单的方法来使用 wsdl 实例化我的服务?通常我使用 groovy,但找不到wsdl2groovy插件。

非常感谢

4

1 回答 1

0

我们现在使用org.apache.cxf

一开始有点棘手,但它确实提供了一种非常好的添加功能的方法 - 包括日志记录功能。

服务是在 spring 配置中创建的:

  public static final LoggingFeature LOGGING_FEATURE = new LoggingFeature(outSender: new CustomEventOutSender(),
                                                                      inSender: new CustomEventInSender(),
                                                                      limit: -1)

@Bean
MYSoapWsdlClass mYSoapWsdlClass() {
    JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean(serviceClass: MYSoapWsdlClass.class,
                                                          address: url,
                                                          features: [LOGGING_FEATURE]
    )
    return factory.create()
}
于 2019-06-11T12:11:18.230 回答