我目前正尝试在Java中实现CVENT
我用的是Eclipse -
我已经创建了一个具有给定WSDL地址的WebService客户机,并让它使用Axis自动生成代码。(尝试移除渔获物)
V200611Locator locator = new V200611Locator();
V200611Soap binding = locator.getV200611Soap();
V200611SoapStub stub = (V200611SoapStub) binding;
LoginResult lr = stub.login("Account", "User", "Password");从那里开始,简单地尝试Stub就会给我一个连接错误。
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调用
发布于 2018-07-09 15:42:33
这个问题花了很长时间才弄清楚--安全性设置阻止了我访问Window->Preferences->General->Network连接中的代理设置,是用于Eclipse的(我猜)。为了建立连接,我必须在应用程序中手动设置代理设置。
System.setProperty("http.proxyHost",host);
System.setProperty("http.proxyPort",port);这个问题是- Web服务客户端-由于超时而导致构建失败(代理问题)的重复。
对我来说,web服务实际上构建得很好--存根方法会超时。
如果你有类似的问题-
尝试从您的web浏览器访问WSDL --如果您可以访问它,那么进入您的高级网络设置以获得主机和端口代理设置。
如果你不能从你的网页浏览器访问它,那么你可能会有防火墙问题(你可能需要Cvent白名单你的IP)。
https://stackoverflow.com/questions/51217183
复制相似问题