Apache Axis ConfigurationException

时间:2008-09-15 18:13:53

标签: java apache axis

我正在使用Apache Axis将我的Java应用程序连接到Web服务器。我使用wsdl2java为我创建存根,但是当我尝试使用存根时,我得到以下异常:

  

org.apache.axis.ConfigurationException:没有名为<web service name>的服务可用

任何想法?

5 个答案:

答案 0 :(得分:20)

根据@arnonym链接的documentation,这个例外有点误导。在第一次尝试查找服务时,抛出并捕获ConfigurationException。它由ConfigurationException类在DEBUG级别记录。然后使用不同的方法进行另一次尝试以找到可能成功的服务。解决方法是在log4j.properties中将ConfigurationException类的日志级别更改为INFO:

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

答案 1 :(得分:2)

只是一个猜测,但看起来该错误消息报告您已将服务名称留空。我想象生成该错误消息的代码如下所示:

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

答案 2 :(得分:1)

这是Axis控制流使用的一个例外。

http://wiki.apache.org/ws/FrontPage/Axis/DealingWithCommonExceptions - &GT; org.apache.axis.ConfigurationException:没有名为XXX的服务可用

答案 3 :(得分:0)

这就是我的代码。它似乎工作正常。 您使用的是服务定位器还是只是创建服务?

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

答案 4 :(得分:0)

我不知道您正在使用的Axis版本,但我正在将Axis2用于服务器和客户端,而Java2WSDL在localhost上为该服务创建默认端点。如果使用WSDL2Java创建客户端存根,则存根的默认构造函数将指向localhost。如果服务在其他端点上,则必须使用带有端点的构造函数作为参数... 也许问题根本就不是这样,但正如其他答案所说的那样,如果没有你用作WSDL2Java输入的WSDL,很难说。