Axis 2 SOAP调用使用CF / AJP 1.3 / IIS 7.5达到4KB限制

时间:2013-01-08 22:52:14

标签: iis soap coldfusion axis2

我正在使用Coldfusion 10构建SOAP Web服务,我在IIS 7.5上运行,Coldfusion通过AJP 1.3连接器连接到独立的Java Tomcat服务器。

我的服务器将接受的SOAP请求大小似乎是4-8KB限制,如果超过该限制,则重置连接 - 不会显示错误。

但在我的CF日志中,我得到了:

The fault returned when invoking the web service operation is:<br> <pre>org.apache.axis2.AxisFault: Connection reset    at org.apache.axis2.AxisFault.makeFault(AxisFault.java:430)     at org.apache.axis2.transport.http.HTTPSender.sendViaPost(HTTPSender.java:197)      at org.apache.axis2.transport.http.HTTPSender.send(HTTPSender.java:75)      at org.apache.axis2.transport.http.CommonsHTTPTransportSender.writeMessageWithCommons(CommonsHTTPTransportSender.java:402)      at org.apache.axis2.transport.http.CommonsHTTPTransportSender.invoke(CommonsHTTPTransportSender.java:231)   at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:443)     at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:406)      at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:229)   at org.apache.axis2.client.OperationClient.execute(OperationClient.java:165)    at reverserisk_ncm.Reverserisk_ncmStub.dumpHeader(Reverserisk_ncmStub... The specific sequence of files included or processed is: C:\rr1.5\Clarence\webservice\test_ncm.cfm, line: 36

我尝试了一些事情,首先我确保它是一个尺寸限制,添加睡眠30秒产生相同的结果,然后我尝试:

  1. Coldfusion Max POST大小数据设置为高值
  2. IIS服务器配置 - system.web / httpRuntime.maxRequestLength - &gt; maxInt和security.requestFilter.maxAllowedContentLength
  3. Apache Tomcat:conf / server.xml - AJP 1.3连接器maxPostSize / maxSavePostSize值 - &gt; 2MB
  4. 将Axis2.xml从HTTP / 1.1更改为HTTP / 1.0以强制禁用传输编码“chunked” - 我读到这可能是针对DDOS攻击的安全功能
  5. 如果有人遇到类似的问题,那就太棒了,我知道这也可能是一个ServerFault问题 - 但希望有人在CF上做过类似的东西,谢谢!

2 个答案:

答案 0 :(得分:0)

只是想知道,你需要Axis 2吗?你能试试Axis 1,看看会发生什么? CF 10将允许您在管理界面中更改该设置。

我建议的另一件事是拖尾CF的日志并观察当发生这种情况时是否有任何消息报告给控制台。

以下是其他一些要测试的内容:

1)如果您不拥有要连接的Web服务,请尝试下载WSDL并将其与您自己的CFC相关联。 CFC不必具有任何实现,我们只是想知道在不调用其他服务时是否可以获得不同的错误。

2)你能缩小问题的大小吗?例如,如果你调整WSDL的大小以使其足够小以使其工作,然后慢慢调整它的大小越来越大,你能找到WSDL的大小总是会导致你的问题吗?

3)您是否尝试删除CF创建的Web服务代理?我认为它们属于{coldfusion10} / cfusion / wwwroot / WEB-INF / cfclasses。

基本上,我认为你需要找到一种超越沉默失败的方法,以获得更多信息。

答案 1 :(得分:0)

你能尝试带附件的SOAP(saaj)??

如果您的SOAP envolope可以将数据作为附件,您可以拆分肥皂消息,如

1.Meta数据(在SOAP Envolope中)

2.Data(content)as SOAP attachement

我不知道CF的可能性,但是使用支持SOAP 1.2的工具应该这样做。