我正在使用 Coldfusion 10 来构建 SOAP 网络服务,我在 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 秒的 sleep 产生了相同的结果,然后我尝试了:
如果有人遇到过类似的问题,那就太好了,我知道这也可能是一个 ServerFault 问题 - 但希望有人在 CF 上做 SOAP 已经看到了类似的东西,谢谢!
最佳答案
只是想知道,你需要 Axis 2 吗?你能试试 Axis 1 看看会发生什么吗? CF 10 将允许您在管理界面中更改该设置。
我建议的另一件事是跟踪 CF 的日志并观察发生这种情况时是否有任何消息报告给控制台。
这里有一些其他的东西要测试:
1) 如果您不拥有要连接的 Web 服务,请尝试下载 WSDL 并将其与您自己的 CFC 相关联。 CFC 不必有任何实现,我们只是想知道在不调用其他服务时是否会出现不同的错误。
2)你能缩小问题的大小吗?例如,如果您调整 WSDL 的大小以使其足够小以使其正常工作,然后慢慢地将其调整得越来越大,您能否找到总是导致问题的 WSDL 大小?
3) 您是否尝试过删除 CF 创建的 Web 服务代理?他们在 {coldfusion10}/cfusion/wwwroot/WEB-INF/cfclasses 下,我想。
基本上,我认为您需要找到一种方法,将无声的失败转化为更多信息。
关于iis - 使用 CF/AJP 1.3/IIS 7.5 的 Axis 2 SOAP 调用达到 4KB 限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14225434/