【问题标题】:Apache Axis ConfigurationExceptionApache Axis ConfigurationException
【发布时间】:2010-09-09 01:58:09
【问题描述】:

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

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

有什么想法吗?

【问题讨论】:

    标签: java apache axis


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        【解决方案3】:

        这是 Axis 的控制流使用的异常。

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

        【讨论】:

          【解决方案4】:

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

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

          【讨论】:

            【解决方案5】:

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

            【讨论】:

              猜你喜欢
              • 2013-03-25
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2011-04-17
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多