我正在使用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