Web服务失败,并出现org.apache.axis2.AxisFault:系统无法从[我的URL] URL

时间:2019-05-13 18:38:04

标签: web-services websphere axis2

我们有一个奇怪的情况。这是一个Web服务(svc1),它在websphere中的另一个框上调用另一个Web服务(svc2)。在以前的每个环境中均可工作。

但是最近,他们建立了另一个过渡环境,主要是工作环境的克隆。每次svc1尝试调用svc2时,服务都会失败并显示此消息。

Caused by: org.apache.axis2.AxisFault: The system cannot infer the transport information from the  [svc2's URL] URL.
    at org.apache.axis2.description.ClientUtils.inferOutTransport(ClientUtils.java:81)
    at org.apache.axis2.client.OperationClient.prepareMessageContext(OperationClient.java:304)
    at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:180)
    at org.apache.axis2.client.OperationClient.execute(OperationClient.java:165)
    at org.apache.axis2.jaxws.core.controller.impl.AxisInvocationController.execute(AxisInvocationController.java:578)
    at org.apache.axis2.jaxws.core.controller.impl.AxisInvocationController.doInvoke(AxisInvocationController.java:127)
    at org.apache.axis2.jaxws.core.controller.impl.InvocationControllerImpl.invoke(InvocationControllerImpl.java:93)
    at org.apache.axis2.jaxws.client.proxy.JAXWSProxyHandler.invokeSEIMethod(JAXWSProxyHandler.java:419)
    ... 45 more

URL正确。我们可以将无法正常工作的应用程序指向支持一组正常工作的应用程序的数据库,并且该数据库可以正常工作,但是当我们将来自其他环境的正常工作的应用程序指向不正常工作环境的数据库时,它将停止工作。

这似乎指示数据库,但该错误与数据库无关。在调用svc2之前,Svc1唯一的数据库调用发生在服务调用之前,并且根据日志可以正常工作。日志表明svc2从未收到请求。那么数据库怎么会成为问题呢?

我知道这不是很多事情,但是有人甚至对如何缩小范围提出建议吗?我不敢相信数据库是基于代码的问题,当它失败时...但是数据库交换测试似乎暗示它是问题。

1 个答案:

答案 0 :(得分:0)

我可能已经指出了明显的问题,但是错误消息告诉您以下两件事之一:svc1没有正确配置为调用svc2,或者svc2没有启动并运行。

为清楚起见,如果我将工作环境标记为:environmentA,而不工作环境标记为environmentB。

基于您的发言,您能够使用environmentB.svc1调用environmentA.svc2吗?如果是这样,则说明environmentB.svc1已正确配置并且可以正常工作。剩下svc2。您说svc2没有收到请求,这至少意味着它已启动。好吧,就像您提到的那样,这没什么大不了的,但是我会确保您正确配置了svc2,因为它已经启动了。配置Web服务可能很复杂,但是可以配置的事情之一就是使Web服务可用于客户端调用。因此,您可能想查看此链接以获取有关如何配置它的信息:

https://www.ibm.com/support/knowledgecenter/SSAW57_9.0.0/com.ibm.websphere.nd.multiplatform.doc/ae/twbs_publishwsdl.html

关于配置Web服务,有很多类似的文章可能会帮助您解决缺少的内容,因此,我将确认enviornmentB.svc2的配置与enviornmentA.svc2相匹配,因为您知道有人在工作。