【发布时间】:2018-07-06 20:26:21
【问题描述】:
我目前正在尝试用 Java 实现 CVENT WSDL -
我正在使用 Eclipse -
我已经使用给定的 WSDL 地址创建了一个 WebService 客户端,并让它利用 Axis 自动生成代码。 (尝试删除捕获)
V200611Locator locator = new V200611Locator();
V200611Soap binding = locator.getV200611Soap();
V200611SoapStub stub = (V200611SoapStub) binding;
LoginResult lr = stub.login("Account", "User", "Password");
从那里简单地尝试存根给我一个连接错误。
AxisFault
faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
faultSubcode:
faultString: java.net.ConnectException: Connection timed out: connect
faultActor:
faultNode:
faultDetail:
{http://xml.apache.org/axis/}stackTrace:java.net.ConnectException: Connection timed out: connect
at java.net.DualStackPlainSocketImpl.connect0(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at sun.security.ssl.SSLSocketImpl.connect(Unknown Source)
at sun.security.ssl.SSLSocketImpl.<init>(Unknown Source)
at sun.security.ssl.SSLSocketFactoryImpl.createSocket(Unknown Source)
at org.apache.axis.components.net.JSSESocketFactory.create(JSSESocketFactory.java:92)
at org.apache.axis.transport.http.HTTPSender.getSocket(HTTPSender.java:191)
at org.apache.axis.transport.http.HTTPSender.writeToSocket(HTTPSender.java:404)
at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:138)
at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
at org.apache.axis.client.AxisClient.invoke(AxisClient.java:165)
at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
at org.apache.axis.client.Call.invoke(Call.java:2767)
at org.apache.axis.client.Call.invoke(Call.java:2443)
at org.apache.axis.client.Call.invoke(Call.java:2366)
at org.apache.axis.client.Call.invoke(Call.java:1812)
at com.cvent.api._2006_11.V200611SoapStub.login(V200611SoapStub.java:3621)
at wsdlTest.main(wsdlTest.java:46)
{http://xml.apache.org/axis/}hostname:COMPUTERNAME
对于这个连接异常,我已经尝试在存根上扩展超时值
stub.setTimeout(600000);
还有修改
System.setProperty。 // 修改运行参数
我知道我可以访问 WSDL(通过 IP 白名单),因为我可以访问它/进行 Powershell 调用
【问题讨论】:
-
我先给 Axis 一个机会。根据axis.apache.org/axis,上次更新是 12 年前。用 CXF 试试看是否有效。
-
@Namphibian - 我也尝试使用 CXF - 但是这是一个安全问题,我仍然把头撞在墙上。感谢您的建议,因为您对轴的年龄完全正确。