以下是客户端类的代码。
try {
//System.getProperties().put("https.proxyHost", "127.0.0.1");
//System.getProperties().put("https.proxyPort", "7575");
String endpoint = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress(new java.net.URL(endpoint));
call.setOperationName("AddSMSList"); // Change this to call
call.addParameter("validation", XMLType.XSD_STRING,
ParameterMode.IN); // Define Parameters
call.addParameter("XML", XMLType.XSD_STRING, ParameterMode.IN);
call.setReturnType(XMLType.XSD_STRING);
Object[] obj = new Object[] {
"POWERU-SMS",
getXML("13627621277", "testtime", "testtype", "testname",
"FAIL") }; // Assign value for the parameters
for (Object i : obj) {
System.out.println(i.toString());
}
String ret = (String) call.invoke(obj); // Call web service
System.out.println("Result : " + ret);
} catch (Exception e) {
e.printStackTrace();
}
代码本身我觉得还可以。问题是连接。 服务器在中国。我使用欧洲的代码试图访问服务器。 我必须首先启动一个vpn,然后我需要使用putty(隧道)设置一个跳转服务器。当这些完成后,我可以通过浏览器(代理)访问服务器。但是java-client总是会抽出时间说
AxisFault
faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
faultSubcode:
faultString: java.net.ConnectException: Connection timed out: connect
faultActor:
faultNode:
faultDetail:
有人可以帮助我。我已经工作了一个星期。 提前致谢
答案 0 :(得分:1)
我在这方面苦苦挣扎并找到了解决方案。如果您正在使用Websphere,请将端口8080添加到虚拟主机的主机别名中。虚拟主机绑定到您尝试访问的应用程序。希望这会有所帮助。
答案 1 :(得分:0)
对我而言,您似乎遇到了防火墙问题,而不是代码问题,请从命令行尝试以下操作。首先执行telnet serverName端口,如果此操作失败,请调用您的网络管理员并完成跟踪路由,并将他放在另一侧,问题将得到解决。
答案 2 :(得分:0)
终于找到了答案。
System.getProperties().put("socksProxyHost", "127.0.0.1");
System.getProperties().put("socksProxyPort", "7575");
而不是添加https代理我应该添加socks代理!!!
答案 3 :(得分:-1)
这是代理服务器问题。如果您在jboss standalone.xml
文件
-Dhttp.proxyHost=<proxy host>-Dhttp.proxyPort=<proxy port number>