2014-02-27 89 views
0

我有一個帶註釋JAX Web Service作爲這樣:如何從JAX Web Service中訪問原始請求xml?

@WebMethod(action = "http://my.services/ITService/postIT") 
@WebResult(name = "postITResponseTypeDef", targetNamespace = "http://my.services/ITService/", partName = "parameters") 
public ResponseParameterList postIT(
    @WebParam(name = "postITRequestTypeDef", targetNamespace = "http://my.services/ITService/", partName = "parameters") 
    PostITRequestTypeDef parameters, 
    @WebParam(name = "ITHeaderTypeDef", targetNamespace = "http://my.services/ITService/", header = true, partName = "request_Header") 
    ITHeaderTypeDef requestHeader) 
    throws ITSoapException 
; 

在實現這個服務我需要訪問SOAP請求的原始XML(優選作爲一個字符串)的類。我怎樣才能訪問?

謝謝!

+0

這不是一個JAX-WS web服務的Spring Web服務。 –

+0

Thanks @ M.Deinum我已更正標題和文字。 –

回答

0

這可以通過SOAP消息處理程序來完成:

public class CustomAddressValidatorHandler implements SOAPHandler<SOAPMessageContext> { 
    @Override 
    public boolean handleMessage(SOAPMessageContext context) { 
     ... 
    } 
} 

需要一個處理程序,chain.xml文件插入到JAX-WS鏈:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<javaee:handler-chains 
    xmlns:javaee="http://java.sun.com/xml/ns/javaee" 
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
    <javaee:handler-chain> 
    <javaee:handler> 
     <javaee:handler-class>package.handler.CustomAddressValidatorHandler</javaee:handler-class> 
    </javaee:handler> 
    </javaee:handler-chain> 
</javaee:handler-chains> 

而這個應用處理器請求:

@WebService 
@HandlerChain(file="handler-chain.xml") 
public class ServerInfo { 
    ... 
} 

也看看這個tutorial

相關問題