我正在使用Apache Axis將我的Java應用程序連接到Web服務器。我用的WSDL2Java創建存根我,但是當我嘗試使用存根,我得到以下異常:Apache Axis ConfigurationException
org.apache.axis.ConfigurationException:沒有名爲
<web service name>
服務可
有什麼想法?
我正在使用Apache Axis將我的Java應用程序連接到Web服務器。我用的WSDL2Java創建存根我,但是當我嘗試使用存根,我得到以下異常:Apache Axis ConfigurationException
org.apache.axis.ConfigurationException:沒有名爲
<web service name>
服務可
有什麼想法?
只是一個猜測,但它看起來像是錯誤消息報告你已經將服務名稱留爲空白。我想,產生錯誤信息的代碼如下所示:
throw new ConfigurationException("No service named" + serviceName + " is available");
這就是我的代碼的樣子。它似乎工作正常。 您是使用服務定位器還是僅創建服務?
SomeServiceLocator locator = new SomeServiceLocator();
SomeService service = null;
try
{
service = locator.getSomeServiceImplPort();
}
catch (ServiceException e)
{
e.printStackTrace();
}
我不知道你使用的是什麼版本的Axis但我使用Axis2用於服務器和客戶端和的Java2WSDL創建一個默認本地主機上的服務端點。如果使用WSDL2Java創建客戶端存根,那麼存根的默認構造函數將指向localhost。如果服務在其他端點上,則必須使用端點作爲參數的構造函數...... 也許問題根本不是這樣,而是如其他答案中所述,沒有使用WSDL2作爲WSDL2Java輸入時,很難說。
這是Axis控制流程使用的一個例外。
http://wiki.apache.org/ws/FrontPage/Axis/DealingWithCommonExceptions - > org.apache.axis.ConfigurationException:沒有名爲XXX服務可用
據@arnonym掛documentation,這個例外是有點誤導。在第一次嘗試查找服務時拋出並捕獲了ConfigurationException。它由ConfigurationException類在DEBUG級別記錄。然後再次嘗試使用不同的方法來查找可能成功的服務。解決方法是在log4j.properties中將ConfigurationException類的日誌級別更改爲INFO:
log4j.logger.org.apache.axis.ConfigurationException = INFO