我有一个困扰我好几个星期的问题。我有一个在 Tomcat 服务器上运行的 Java Web 应用程序。我使用 Apache 作为 http 前端,请求通过 ajp 路由到 tomcat。Windows Server 2008 是操作系统。
我的应用程序与 Sharepoint 安装紧密相连,并且通信是通过 SOAP 完成的。我使用 AXIS2 库生成了正确的存根。
在任何其他安装上,这种通信都可以完美运行。但是,在我们的新服务器上,我通过 web 服务进行的任何调用都会导致错误:
无法将ViaPost 发送到 url [http://sharepoint.example.com/_layouts/services.asmx] org.apache.axis2.AxisFault:传输错误:404 错误:未找到
我确信端点(http://sharepoint.example.com/_layouts/services.asmx)是正确的,因为我可以通过机器上的远程桌面获取 WSDL 定义日志并连接到http://sharepoint.example .com/_layouts/services.asmx?WSDL与 Internet Explorer。我也确信我可以正确调用服务,因为我尝试使用 SOAPUI。
经过长时间的分析,我发现我所有使用正确端点的 AXIS 请求实际上都路由到了环回 127.0.0.1 地址。我做了一些数据包嗅探,我发现了这一点。我还得到了检查 Apache 日志的确认信息,我可以在其中发现 /_layouts/services.asmx 生成了一个未找到的错误。
我不知道怎么做,但是当我调用soap调用时,尽管端点设置正确,但连接没有打开正确的服务器(sharepoint.example.com),而是打开了127.0.0.1。
如果您知道如何解决此问题,请告诉我!