2012-10-28 85 views
2

我創建了一個簡單的EJB3 WebService,它應該被SOAPHandler攔截。 我在構建過程中沒有收到任何錯誤\警告(我曾經得到類路徑錯誤,它們都是固定的),並且我能夠部署和調用WS,但服務器完全忽略了HandlerChain部分,並且它永遠不會獲取擊中。 我的代碼是:
的處理程序:Weblogic 10.3.6忽略@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> 

任何幫助表示讚賞。 感謝

+0

你的處理程序的實現在哪裏? – kolossus

+0

我假設它只是 返回true; (對於getHeaders()爲null) SOAPHandler 接口方法。 – Stas

回答

1

我有類似的問題,發現如下:

  • 顯然絕對或類路徑中無法很好地工作,所以要麼把XML在同一個文件夾中ExampleWS類或使用../,例如,在我來說,我有這樣的:

    @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>

有了這個變化,它的工作原理!

相關問題