我使用Apache Axis将Java应用程序连接到Web服务器。我使用wsdl2java为我创建存根,但当我尝试使用存根时,我得到以下异常:
org.apache.axis.ConfigurationException: No service named `<web service name>` is available
这是怎么回事?
svujldwt1#
根据@arnonym链接的documentation,此异常有点误导。在第一次尝试查找服务时,会抛出并捕获ConfigurationException。它由ConfigurationException类在DEBUG级别记录。然后使用不同的方法进行另一次尝试以查找可能成功的服务。解决方法是在www.example.com中将ConfigurationException类的日志级别更改为INFOlog4j.properties:
log4j.logger.org.apache.axis.ConfigurationException = INFO
wmvff8tz2#
只是猜测,但看起来错误消息报告您将服务名称留空。我想象生成该错误消息的代码如下所示:
throw new ConfigurationException("No service named" + serviceName + " is available");
j5fpnvbx3#
它是Axis的控制流使用的异常。http://wiki.apache.org/ws/FrontPage/Axis/DealingWithCommonExceptions --〉org.apache.axis.ConfigurationException:没有名为XXX的服务可用
kjthegm64#
这就是我的代码的样子。它看起来工作得很好。你是在使用服务定位器还是仅仅创建你的服务?
SomeServiceLocator locator = new SomeServiceLocator(); SomeService service = null; try { service = locator.getSomeServiceImplPort(); } catch (ServiceException e) { e.printStackTrace(); }
ifsvaxew5#
我不知道您使用的是哪个版本的Axis,但我对服务器和客户端都使用Axis2,Java2WSDL为localhost上的服务创建了一个默认端点。stub的默认构造函数将指向localhost。如果服务在其他端点上,则必须使用以端点为参数的构造函数...也许问题根本不在于此,但正如其他答案所述,如果没有用作WSDL2Java输入的WSDL,就很难说了。
5条答案
按热度按时间svujldwt1#
根据@arnonym链接的documentation,此异常有点误导。在第一次尝试查找服务时,会抛出并捕获ConfigurationException。它由ConfigurationException类在DEBUG级别记录。然后使用不同的方法进行另一次尝试以查找可能成功的服务。解决方法是在www.example.com中将ConfigurationException类的日志级别更改为INFOlog4j.properties:
wmvff8tz2#
只是猜测,但看起来错误消息报告您将服务名称留空。我想象生成该错误消息的代码如下所示:
j5fpnvbx3#
它是Axis的控制流使用的异常。
http://wiki.apache.org/ws/FrontPage/Axis/DealingWithCommonExceptions --〉org.apache.axis.ConfigurationException:没有名为XXX的服务可用
kjthegm64#
这就是我的代码的样子。它看起来工作得很好。你是在使用服务定位器还是仅仅创建你的服务?
ifsvaxew5#
我不知道您使用的是哪个版本的Axis,但我对服务器和客户端都使用Axis2,Java2WSDL为localhost上的服务创建了一个默认端点。stub的默认构造函数将指向localhost。如果服务在其他端点上,则必须使用以端点为参数的构造函数...也许问题根本不在于此,但正如其他答案所述,如果没有用作WSDL2Java输入的WSDL,就很难说了。