Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaWS获取SOAP请求CDATA正文_Java_Xml_Soap_Jax Ws_Cdata - Fatal编程技术网

JavaWS获取SOAP请求CDATA正文

JavaWS获取SOAP请求CDATA正文,java,xml,soap,jax-ws,cdata,Java,Xml,Soap,Jax Ws,Cdata,我需要将以下SOAP请求放入我的控制器中 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:Header/> <soapenv:Body> <req:ResultMsg xmlns:req="http://cps.huawei.com/cpsinterface/result"><![

我需要将以下SOAP请求放入我的控制器中

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header/>
<soapenv:Body>
<req:ResultMsg
xmlns:req="http://cps.huawei.com/cpsinterface/result"><![CDATA[
<?xml version="1.0" encoding="UTF-8"?>
<Result>
<ResultType>0</ResultType>
<ResultCode>0</ResultCode>
<ResultDesc>The service request is processed successfully.</ResultDesc>
<OriginatorConversationID>S_X2013012921001</OriginatorConversationID>
<ConversationID>AG_20130129T102103</ConversationID>
<TranactionID>XD2013012923789234</TranactionID>
<ResultParameters></ResultParameters>
</Result>]]></req:ResultMsg>
</soapenv:Body>
</soapenv:Envelope>
但是这种方法在WebMethod中获得了上述请求


提前感谢。

欢迎使用stackoverflow,请将代码作为代码(文本周围带有代码标签)而不是图像发布。这些图像被压缩,因此(其中一些)无法读取。同时将其注册为
@服务
不会自动生成
!WebService
工作时,您需要使用
SimpleJaxWsServiceExporter
将其导出为jax ws服务(实际上这将自动检测bean并导出它们)。感谢您的反馈@M.Deinum,我已经更新了问题。请帮我做这个。谢谢。我已经在评论中给出了答案。添加一个
SimpleJaxWsServiceExporter
作为bean来导出服务,或者使用类似ApacheCXF的东西以及适当的Spring集成设置来导出服务。另外,
toString
属于
持有者
而不是
字符串
。为什么要使用字符串而不是实际的请求对象?为什么要自己解析呢?这基本上违背了使用Jax ws的初衷。感谢您的反馈,我将尝试SimpleJaxWsServiceExporter方法。我希望将其作为字符串,因为主体不是默认的XML,而是CDATA。(更新了问题的XML部分)
@WebService(name = "VCashCallbackService",
    targetNamespace = "http://cps.huawei.com/cpsinterface/result")
public interface VCashCallbackService {
@WebMethod(operationName = "ResultMsg")
@WebResult(name = "GetDataResponse")
GetDataResponse getData(@WebParam(name = "ResultMsg",
        targetNamespace = "http://cps.huawei.com/cpsinterface/resul",
        mode = WebParam.Mode.IN) Holder<String> searchResultDataXML);

}
@WebService(serviceName = "VCashCallbackService",
    portName = "VCashCallbackServicePort",
    endpointInterface = "com.argon.eightd.web.restful.mock.VCashCallbackService",
    targetNamespace = "http://cps.huawei.com/cpsinterface/result")
@BindingType(value = javax.xml.ws.soap.SOAPBinding.SOAP12HTTP_BINDING)
@Service
public class VCashCallbackServiceImpl implements VCashCallbackService {

private static final Logger LOGGER = LoggerFactory.getLogger(VCashCallbackServiceImpl.class);

@Override
public GetDataResponse getData(Holder<String> searchResultDataXML) {
    LOGGER.info("SOAP result: {}", searchResultDataXML.searchResultDataXML.value);
    return new GetDataResponse();
}
SOAP result: null