WebSphere Spring Apache CXF SOAP Web服务客户端超时无法正常工作

时间:2015-03-16 06:04:31

标签: spring websphere cxf connection-timeout http-conduit

我需要为SOAP WebService客户端配置连接尝试和服务调用的某些超时值。

WS客户端是使用带有Maven cxf-codegen-plugin的WSDL生成的jar依赖项。我在我的Web应用程序中使用此客户端jar作为maven依赖项并调用服务操作。

所以我的webapp pom包含:

<dependency>
    <groupId>my.web.service</groupId>
    <artifactId>web-service-client-jar</artifactId>
    <version>x.x.x</version>
</dependency>

以及Apache CXF依赖项:

<!-- CXF dependencies -->
<dependency>
    <groupId>org.apache.cxf</groupId>
    <artifactId>cxf-rt-frontend-jaxws</artifactId>
    <version>${cxf.version}</version>
</dependency>
<dependency>
    <groupId>org.apache.cxf</groupId>
    <artifactId>cxf-rt-transports-http</artifactId>
    <version>${cxf.version}</version>
</dependency>

我已经定义了以下弹簧配置以设置不起作用的超时..

<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:http-conf="http://cxf.apache.org/transports/http/configuration"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://cxf.apache.org/transports/http/configuration http://cxf.apache.org/schemas/configuration/http-conf.xsd http://cxf.apache.org/core http://cxf.apache.org/schemas/core.xsd">

 <http-conf:conduit name="*.http-conduit">
    <http-conf:client ConnectionTimeout="20000" ReceiveTimeout="10000" />
</http-conf:conduit>

<cxf:bus>
    <cxf:outInterceptors>
        <ref bean="fileuploadlogOutbound" />
    </cxf:outInterceptors>
</cxf:bus>

<!-- Outbound Message Logging -->
<bean id="fileuploadlogOutbound" class="test.logging.MyLoggingOutInterceptor">
    <property name="prettyLogging" value="true" />
</bean>

但令我困惑的是,为漂亮的日志记录定义的outInterceptors工作正常。因此,我怀疑我的配置是否有任何错误。仅供参考我想在WebSphere 8.5环境中使用它。

这是我在spring中实例化WS Client的方式:

<jaxws:client id="documentUploadServiceJaxwsClient"
    serviceClass="org.tempuri.IDocumentUploadService" address="#serviceEndpointString" >

    <jaxws:binding>
        <soap:soapBinding version="1.2" mtomEnabled="true" />
    </jaxws:binding>
</jaxws:client>

Spring配置中是否缺少任何步骤,或者我是否需要查看将强制执行HTTP / SOAP连接的WebSphere 8.5特定配置?响应超时?

1 个答案:

答案 0 :(得分:0)

我发现上面提到的我的CXF配置工作正常,但部署应用程序的WAS环境实际上覆盖了您在应用程序级别定义的任何配置。因此,我按照this链接复制并定义了自定义HTTP传输策略,您可以在其中设置以下超时值。

读取超时
写入超时
连接超时