WebLogic Jax-ws Web服务错误:ClusterRoutingTubeUtils尚未就绪

时间:2014-03-23 13:52:56

标签: soap weblogic jax-ws

我尝试使用Oracle WebLogic 10.3.4和jax-ws api创建SOAP Web服务。

目前,我试图测试一个简单的例子:

package HelloService.hello;

import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;

@WebService
public interface HelloWorld {

    @WebMethod
    public String getHelloWorld(@WebParam(name = "str") String input);
}

package HelloService.hello;

import javax.jws.WebParam;
import javax.jws.WebService;

@WebService(endpointInterface = "HelloService.hello.HelloWorld")
public class HelloWorldImpl implements HelloWorld {

    public String getHelloWorld(@WebParam(name = "str") String input) {
        return "Hello World message: " + input;
    }

}

在我的WebLogic安装中,我有一个集群和一个服务器,我部署了这个Web服务。部署之后,我可以毫无问题地访问wsdl文件,但是当我向Web服务发送请求时,我得到以下异常而不是预期的响应(我用Eclipse的SoapUI插件测试Web服务) :

<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
   <S:Body>
      <S:Fault xmlns:ns4="http://www.w3.org/2003/05/soap-envelope">
         <faultcode>S:Server</faultcode>
         <faultstring>ClusterRoutingTubeUtils weblogic.wsee.jaxws.cluster.ClusterRoutingTubeUtils@782d8a2f not ready, no WseeClusterRoutingRuntimeMBean/WseeRuntimeMBean</faultstring>
         <detail>
            <ns2:exception class="java.lang.IllegalStateException" note="To disable this feature, set com.sun.xml.ws.fault.SOAPFaultBuilder.disableCaptureStackTrace system property to false" xmlns:ns2="http://jax-ws.dev.java.net/">
               <message>ClusterRoutingTubeUtils weblogic.wsee.jaxws.cluster.ClusterRoutingTubeUtils@782d8a2f not ready, no WseeClusterRoutingRuntimeMBean/WseeRuntimeMBean</message>
               <ns2:stackTrace>
                  <ns2:frame class="weblogic.wsee.jaxws.cluster.ClusterRoutingTubeUtils" file="ClusterRoutingTubeUtils.java" line="87" method="ensureSOAPRouter"/>
                  <ns2:frame class="weblogic.wsee.jaxws.cluster.ClusterRoutingTubeUtils" file="ClusterRoutingTubeUtils.java" line="95" method="handleInboundMessage"/>
                  <ns2:frame class="weblogic.wsee.jaxws.cluster.ClusterRoutingServerTube" file="ClusterRoutingServerTube.java" line="70" method="processRequest"/>
                  <ns2:frame class="com.sun.xml.ws.api.pipe.Fiber" file="Fiber.java" line="866" method="__doRun"/>
                  <ns2:frame class="com.sun.xml.ws.api.pipe.Fiber" file="Fiber.java" line="815" method="_doRun"/>
                  <ns2:frame class="com.sun.xml.ws.api.pipe.Fiber" file="Fiber.java" line="778" method="doRun"/>
                  <ns2:frame class="com.sun.xml.ws.api.pipe.Fiber" file="Fiber.java" line="680" method="runSync"/>
                  <ns2:frame class="com.sun.xml.ws.server.WSEndpointImpl$2" file="WSEndpointImpl.java" line="403" method="process"/>
                  <ns2:frame class="com.sun.xml.ws.transport.http.HttpAdapter$HttpToolkit" file="HttpAdapter.java" line="532" method="handle"/>
                  <ns2:frame class="com.sun.xml.ws.transport.http.HttpAdapter" file="HttpAdapter.java" line="253" method="handle"/>
                  <ns2:frame class="com.sun.xml.ws.transport.http.servlet.ServletAdapter" file="ServletAdapter.java" line="140" method="handle"/>
                  <ns2:frame class="com.sun.xml.ws.transport.http.servlet.WSServletDelegate" file="WSServletDelegate.java" line="129" method="doGet"/>
                  <ns2:frame class="com.sun.xml.ws.transport.http.servlet.WSServletDelegate" file="WSServletDelegate.java" line="160" method="doPost"/>
                  <ns2:frame class="com.sun.xml.ws.transport.http.servlet.WSServlet" file="WSServlet.java" line="75" method="doPost"/>
                  <ns2:frame class="javax.servlet.http.HttpServlet" file="HttpServlet.java" line="727" method="service"/>
                  <ns2:frame class="javax.servlet.http.HttpServlet" file="HttpServlet.java" line="820" method="service"/>
                  <ns2:frame class="weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction" file="StubSecurityHelper.java" line="227" method="run"/>
                  <ns2:frame class="weblogic.servlet.internal.StubSecurityHelper" file="StubSecurityHelper.java" line="125" method="invokeServlet"/>
                  <ns2:frame class="weblogic.servlet.internal.ServletStubImpl" file="ServletStubImpl.java" line="300" method="execute"/>
                  <ns2:frame class="weblogic.servlet.internal.ServletStubImpl" file="ServletStubImpl.java" line="183" method="execute"/>
                  <ns2:frame class="weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction" file="WebAppServletContext.java" line="3717" method="wrapRun"/>
                  <ns2:frame class="weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction" file="WebAppServletContext.java" line="3681" method="run"/>
                  <ns2:frame class="weblogic.security.acl.internal.AuthenticatedSubject" file="AuthenticatedSubject.java" line="321" method="doAs"/>
                  <ns2:frame class="weblogic.security.service.SecurityManager" file="SecurityManager.java" line="120" method="runAs"/>
                  <ns2:frame class="weblogic.servlet.internal.WebAppServletContext" file="WebAppServletContext.java" line="2277" method="securedExecute"/>
                  <ns2:frame class="weblogic.servlet.internal.WebAppServletContext" file="WebAppServletContext.java" line="2183" method="execute"/>
                  <ns2:frame class="weblogic.servlet.internal.ServletRequestImpl" file="ServletRequestImpl.java" line="1454" method="run"/>
                  <ns2:frame class="weblogic.work.ExecuteThread" file="ExecuteThread.java" line="207" method="execute"/>
                  <ns2:frame class="weblogic.work.ExecuteThread" file="ExecuteThread.java" line="176" method="run"/>
               </ns2:stackTrace>
            </ns2:exception>
         </detail>
      </S:Fault>
   </S:Body>
</S:Envelope>

我在谷歌搜索了一些WebLogic版本在群集中部署Web服务时遇到此问题。有一个修复,但我无法应用它。有没有解决方法?这是一种常见情况吗?

使用WebLogic开发SOAP Web服务有哪些替代方法?

事先提出

1 个答案:

答案 0 :(得分:0)

我遇到了类似的问题。我们应用了weblogic补丁来解决这个问题,事情就开始起作用了。 Jax ws有时无法在集群环境中工作,您可以尝试直接指向已部署的服务器URL以使其工作。

我们仍然面临http服务器到websphere的问题。我们直接指向webphere部署位置以使工作正常。