我有一个SOAP Web服务Java的WS:我如何直接发送XML作为SOAP请求
我创建了一个WSDL中的一部分,“自上而下,Java Bean的” Web服务客户端在RAD开发人员(使用IBM WebSphere使用一个基于Eclipse的编译器)和自动生成的一束JAX-WS的.java模块
下面是操作中的一个的自动生成的JAX-WS代码:
@WebMethod(operationName = "CommitTransaction", action = "http://myuri.com/wsdl/gitsearchservice/CommitTransaction")
@RequestWrapper(localName = "CommitTransaction", targetNamespace = "http://myuri.com/wsdl/gitsearchservice", className = "com.myuri.shwsclients.CommitTransaction")
@ResponseWrapper(localName = "CommitTransactionResponse", targetNamespace = "http://myuri.com/wsdl/gitsearchservice", className = "com.myuri.shwsclients.CommitTransactionResponse")
public void commitTransaction(
@WebParam(name = "requestOptions", targetNamespace = "http://myuri.com/wsdl/gitsearchservice")
RequestOptions requestOptions,
@WebParam(name = "transactionData", targetNamespace = "http://myuri.com/wsdl/gitsearchservice")
TransactionData transactionData);
问题:
“transactionData” 来自一个大型,复杂的XML数据记录。 WSDL格式与我将在Java端编写的XML完全匹配,并且完全匹配Web服务将在服务器端读取的内容。
问:如何绕过“transactionData”参数的Java序列化,在SOAP消息中发送原始XML?而不必阅读我的XML,解析它,并逐字段地打包Java“TransactionType”结构?
预先感谢您!
有趣。它*完全*我在找什么...如果它有效。我会尝试并让你知道!谢谢! – paulsm4
如果生成的“TransactionData”类未使用@XmlRootElement注释,则可能会遇到麻烦 - 如果是这样,则可以使用其他方法:http://docs.oracle.com/javaee/6/api/javax/xml /bind/Unmarshaller.html#unmarshalByDeclaredType – ZachOfAllTrades