2008-09-15 106 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