Weblogic 10.3.6忽略@HandlerChain

时间:2012-10-28 16:41:45

标签: web-services weblogic jax-ws

我创建了一个简单的EJB3 WebService,它应该被SOAPHandler拦截。  我在构建期间没有出现错误\警告(我曾经得到类路径错误,它们都已修复),而且我能够部署和调用WS,但是服务器完全忽略了HandlerChain部分,它永远不会受到影响。 我的代码是:
处理程序:

public   class SecuritySOAPHandler implements SOAPHandler<SOAPMessageContext> { ... }


豆豆:

@Stateless
@WebService(
        portName = "ExampleWSPort",
        serviceName="ExampleWS"     
        )
@HandlerChain( file="handlerchain.xml")
public class ExampleWS {

    public ExampleWS()
    {

    }
    @WebMethod
 public String first(String input)
 {
     return input + " Got";
 }

handlerchain.xml:

    <?xml version="1.0" encoding="UTF-8"?>

<jws:handler-chains xmlns:jws="http://java.sun.com/xml/ns/javaee">
<!-- Note:  The '*" denotes a wildcard. -->

    <jws:handler-chain name="MyHandlerChain">
        <jws:protocol-bindings>##SOAP11_HTTP ##ANOTHER_BINDING</jws:protocol-bindings>
        <jws:port-name-pattern 
              xmlns:ns1="http://handlersample.samples.ibm.com/">ns1:MySampl*</jws:port-name-pattern>
        <jws:service-name-pattern 
              xmlns:ns1="http://handlersample.samples.ibm.com/">ns1:*</jws:service-name-pattern>
        <jws:handler>
            <jws:handler-class>com.soaphandlers.SecuritySOAPHandler</jws:handler-class>
        </jws:handler>

    </jws:handler-chain>

</jws:handler-chains>

任何帮助表示赞赏。 感谢

1 个答案:

答案 0 :(得分:1)

我遇到了类似的问题并发现了以下内容:

  • 显然绝对或类路径不能很好地工作,所以要么将xml放在与ExampleWS类相同的文件夹中,要么使用../,例如,在我的情况下,我有这样的:< / p>

    @HandlerChain(file="../../../../../../../META-INF/ws-handler-config.xml")

  • 来自示例的jws:名称空间也给出了问题所以我只是简单地说:

    <handler-chains xmlns="http://java.sun.com/xml/ns/javaee">
    <handler-chain>
    <handler>
    <handler-class>util.interceptors.SOAPLoggingHandler</handler-class>
    </handler>
    </handler-chain>
    </handler-chains>

通过这些更改,它可以正常工作!