2014-02-27 45 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

相关问题