2011-11-03 261 views
-1

希望你能帮助我,因为我在冲浪5天后迷路了。wsdl客户端java

我已经使用NetBeans创建了Web服务客户端。

某些代码: ...

mtsvmi.MGWPUBLICFUNCTIONSService service = new mtsvmi.MGWPUBLICFUNCTIONSService(); 
     mtsvmi.MGWPUBLICFUNCTIONSPortType proxy = (service.getMGWPUBLICFUNCTIONSPort()); 
     ((BindingProvider)proxy).getRequestContext().put(BindingProvider.USERNAME_PROPERTY, "username"); 
     ((BindingProvider)proxy).getRequestContext().put(BindingProvider.PASSWORD_PROPERTY, "password"); 

     QName portQName = new QName("http://xmlns.oracle.com/orawsv/SISTEMA_MOKA/MGW_PUBLIC_FUNCTIONS", "MGW_PUBLIC_FUNCTIONSPort"); 
     String req = "<INSERT_RECEIVES xmlns=\"https://IP:PORT/orawsv/test/SISTEMA_MOKA/MGW_PUBLIC_FUNCTIONS\"><parameters>"+pingKonteineris+"</parameters></INSERT_RECEIVES>"; 

     try { // Call Web Service Operation 
      Dispatch<Source> sourceDispatch = null; 
      sourceDispatch = service.createDispatch(portQName, Source.class, Service.Mode.PAYLOAD); 
      Source result = sourceDispatch.invoke(new StreamSource(new StringReader(req))); 
//   System.out.println("---Ans: "+result.toString()+"---"); 
     } catch (Exception ex) { 
      System.out.println(ex); 
     }  

...

给我:

com.sun.xml.internal.ws.client.ClientTransportException: HTTP transport error: java.net.ConnectException: Connection refused: connect

我做了什么错?我该如何解决?你需要哪些其他信息来帮助我在这里? 预先感谢您。

回答

1

您得到的ConnectException意味着您的应用程序无法与其目标建立套接字连接。通常这意味着你给出了错误的主机名或端口,或者另一端的服务没有运行。

从你发布的内容来看,究竟是哪一行代码抛出了失败,或者连接尝试的地址是什么,并不清楚。然而,我会冒险猜测这是你拨打sourceDispatch.invoke的行 - 而MGWPUBLICFUNCTIONSService类负责提供地址。

我建议您查看日志,错误消息和/或配置以找出正在使用的地址以及为什么无法建立到该地址的连接。使用telnet尝试建立连接可能对初步调查非常有帮助。

+0

恐怕我不能告诉你 - 代理设置取决于你和目标之间的网络;我不知道目标服务器是什么;并且我对您的项目架构知之甚少,无法知道需要设置的位置。但是我可以告诉你,如果你正在使用字符串“http:s:// /orawsv/SISTEMA_MOKA/MGW_PUBLIC_FUNCTIONS”作为你的问题的URL,那么你需要在右边替换协议,主机和端口。 –

0

我遇到了这个问题。我通过更改.wsld文件解决它

<service name="CalculatorService"> 
    <port binding="tns:CalculatorPortBinding" name="CalculatorPort"> 
     <soap:address 
      location="http://localhost:6060/WebServiceProject/CalculatorPort" /> 
    </port> 
</service> 

我的端口号是8080并更改为6060,我正在使用。

它可能会帮助你。尝试一下。