我们使用Apache Servicemix版本5.1.0实现了SOAP / HTTP Web服务(下面给出的端点)。
端点:
<cxf:cxfEndpoint id="SampleService"
address="http://127.0.0.1:8081/Sample"
endpointName="c:SoapPort" serviceName="c:SampleService" wsdlURL="wsdl/SampleService.wsdl"
xmlns:c="http://sample.com/url"
serviceClass="com.sample.common.SAXSourceService">
<cxf:properties>
<entry key="ws-security.ut.validator" value-ref="PasswordHandler" />
<entry key="ws-security.validate.token " value="false" />
</cxf:properties>
<cxf:features>
<wsa:addressing addressingRequired="false"
xmlns:wsa="http://cxf.apache.org/ws/addressing" />
</cxf:features>
Jetty配置(我的假设是以下默认连接器适用于所有暴露的端点,如果我错了,请纠正我):
<Call name="addConnector">
<Arg>
<New class="org.eclipse.jetty.server.nio.BlockingChannelConnector">
<Set name="host">
<Property name="jetty.host" />
</Set>
<Set name="port">
<Property name="jetty.port" default="8181"/>
</Set>
<Set name="maxIdleTime">300000</Set>
<Set name="Acceptors">1</Set>
<Set name="statsOn">false</Set>
<Set name="confidentialPort">8443</Set>
</New>
</Arg>
</Call>
默认配置用于所有其他情况。
在这种情况下,当收到同步SOAP请求并发送响应时,我们观察到TCP [FIN]立即从Web服务发送,但在这种情况下,maxIdleTime:300000在jetty中的重要性是什么?
答案 0 :(得分:0)
您能否检查一下您的客户是否发送了&#34; Connection:Keep-Alive&#34;标题到服务器?如果没有,那么一旦将响应发送回客户端,jetty服务器就会关闭连接。