Apache 轴配置异常

问题描述 投票:0回答:5

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

org.apache.axis.ConfigurationException: No service named `<web service name>` is available

发生了什么事?

java apache apache-axis
5个回答
22
投票

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

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

2
投票

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

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

1
投票

Axis控制流使用的异常。

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


0
投票

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

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

0
投票

我不知道您使用的是哪个版本的 Axis,但我对服务器和客户端都使用 Axis2,并且 Java2WSDL 为本地主机上的服务创建了一个默认端点。如果您使用 WSDL2Java 创建客户端存根,那么存根的默认构造函数将指向本地主机。如果服务在其他端点上,则必须使用以端点作为参数的构造函数... 也许问题根本不在于此,但正如其他答案所说,如果没有您用作 WSDL2Java 输入的 WSDL,则很难说。

© www.soinside.com 2019 - 2024. All rights reserved.