2011-11-03 347 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,我正在使用。

它可能會幫助你。嘗試一下。