java - 在 Java 中实现 Cvent WSDL
问题描述
我目前正在尝试用 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 调用
解决方案
这个问题花了很长时间才弄清楚 - 安全设置阻止我访问 WSDL 和Window->Preferences->General->Network Connection Are for the Eclipse Apps(我猜)中的代理设置。要建立连接,我必须在应用程序中手动设置代理设置。
System.setProperty("http.proxyHost",host);
System.setProperty("http.proxyPort",port);
此问题与 - Web Service Client - Construction Failing Due To Timeout (Proxy Issue) 重复
对我来说,Web 服务实际上构建得很好——存根方法会超时。
如果您有类似的问题 -
尝试从您的 Web 浏览器访问 WSDL - 如果您可以访问它,请进入您的高级网络设置以获取 HOST 和 PORT 代理设置。
如果您无法从 Web 浏览器访问它,那么您可能遇到了防火墙问题(您可能需要 Cvent 将您的 IP 列入白名单)。
推荐阅读
- javascript - 如何使文本在具有 2 个变量的按钮脚本上水平滚动?
- json - 使用 ijson.parse() 和 ijson.items() 加载一个大的 JSON 文件 - 为什么这样会起作用?
- reactjs - ReactJs 中的路由器
- python - ModuleNotFoundError:将我的 Django 应用程序迁移到 Heroku 时没有名为“Django-Banking-App.settings”的模块
- sql - 可选择加入多对多表
- c++ - C++中的BST,添加节点时返回true或false
- c++ - 有没有办法创建一个无限滚动的 QImage ?
- r - 在 Shiny 中使用 plotly 函数 highlight () 时的多个画笔实例
- sql-server - 从数据库中删除数据时出现 ASP.NET MVC(CRUD 操作)错误?
- python - python uwsgi SSL客户端证书无法解析