2012-06-19 130 views
1

我已經使用axis2 java2wsdl實用程序從java類生成了一個WSDL,如下所示:由wsdl生成的Web服務客戶端與Deployed Web服務不兼容

java2wsdl -o C:\temp -cn com.temenos.webservices.customer.CustomerServiceWS 

然後,我有一個應用程序服務器中部署相同的Web服務(JBOSS說)在Axis2和我可以瀏覽HTTP的wsdl:// 127.0.0.1:8080/axis2/services/CustomerServiceWS?wsdl和通過標準的客戶端調用此服務的方法,如等了SoapUI

問題是現在,當我使用標準的Java工具「的wsimport」通過提供WSDL位置作爲中生成客戶端:\ temp目錄(生成來自java2wsdl實用程序的WSDL),我的客戶端無法與已部署的Web服務進行通信。我正在使用以下代碼來訪問Web服務;

// Initialise WS 
CustomerServiceWS service = null; 
CustomerServiceWSPortType servicePort = null; 
try { 
URL wsdlLocation = new URL("http://127.0.0.1:8080/axis2/services/CustomerServiceWS?wsdl"); 
QName serviceName = new QName("http://customer.webservices.temenos.com", "CustomerServiceWS"); 
service = new CustomerServiceWS(wsdlLocation, serviceName); 
servicePort = service.getCustomerServiceWSHttpSoap12Endpoint(); 
} catch (MalformedURLException murle) { 
murle.printStackTrace(); 
    return; 
} 

但是,當創建(服務端口)端點時,我得到以下錯誤;

Exception in thread "main" javax.xml.ws.WebServiceException: An attempt was made to construct the ServiceDelegate object with an service name that is not valid: {http://customer.webservices.temenos.com}CustomerServiceWS. 
    at org.apache.axis2.jaxws.ExceptionFactory.createWebServiceException(ExceptionFactory.java:173) 
    at org.apache.axis2.jaxws.ExceptionFactory.makeWebServiceException(ExceptionFactory.java:70) 
    at org.apache.axis2.jaxws.ExceptionFactory.makeWebServiceException(ExceptionFactory.java:118) 
    at org.apache.axis2.jaxws.spi.ServiceDelegate.<init>(ServiceDelegate.java:218) 
    at org.apache.axis2.jaxws.spi.Provider.createServiceDelegate(Provider.java:59) 
    at javax.xml.ws.Service.<init>(Service.java:56) 
    at com.temenos.webservices.customer.CustomerServiceWS.<init>(CustomerServiceWS.java:42) 
    at com.temenos.services.customer.client.Client.testGetLanguage(Client.java:32) 
    at com.temenos.services.customer.client.Client.main(Client.java:21) 

我試過很多東西,但它似乎並不喜歡任何東西。我錯過了什麼?

感謝,

-

SJunejo

+0

我想我已經問過一些沒有人遇到過的東西...... – SJunejo

回答

0

的問題是,我曾在因爲呼叫happend到org.apache.axis2.jaxws.spi.Provider庫路徑的Axis2。 createServiceDelegate(Axi2 Provider)而不是Java WS Provider。我從類路徑中移除了axis2庫,現在看起來工作正常。 (儘管我仍然無法通過客戶端調用我的Web服務)

0

請參閱WSDL文件的描述,並檢查targetName命名空間中QName()中給出的URL。還輸入必要的軟件包。