2008-09-15 146 views
12

我正在使用Apache Axis將我的Java應用程序連接到Web服務器。我用的WSDL2Java創建存根我,但是當我嘗試使用存根,我得到以下異常:Apache Axis ConfigurationException

org.apache.axis.ConfigurationException:沒有名爲<web service name>服務可

有什麼想法?

回答

2

只是一個猜測,但它看起來像是錯誤消息報告你已經將服務名稱留爲空白。我想,產生錯誤信息的代碼如下所示:

throw new ConfigurationException("No service named" + serviceName + " is available"); 
0

這就是我的代碼的樣子。它似乎工作正常。 您是使用服務定位器還是僅創建服務?

SomeServiceLocator locator = new SomeServiceLocator(); 
SomeService service = null; 
try 
{ 
    service = locator.getSomeServiceImplPort(); 
} 
catch (ServiceException e) 
{ 
    e.printStackTrace(); 
} 
0

我不知道你使用的是什麼版本的Axis但我使用Axis2用於服務器和客戶端和的Java2WSDL創建一個默認本地主機上的服務端點。如果使用WSDL2Java創建客戶端存根,那麼存根的默認構造函數將指向localhost。如果服務在其他端點上,則必須使用端點作爲參數的構造函數...... 也許問題根本不是這樣,而是如其他答案中所述,沒有使用WSDL2作爲WSDL2Java輸入時,很難說。

19

據@arnonym掛documentation,這個例外是有點誤導。在第一次嘗試查找服務時拋出並捕獲了ConfigurationException。它由ConfigurationException類在DEBUG級別記錄。然後再次嘗試使用不同的方法來查找可能成功的服務。解決方法是在log4j.properties中將ConfigurationException類的日誌級別更改爲INFO:

log4j.logger.org.apache.axis.ConfigurationException = INFO