我在创建输出拦截器的阶段,并从SOAP消息中获取OuputStream。但是,我怎么才能在发送到端点之前修改SOAP信封?我想删除一些xml元素。如何修改生成的SOAP请求?
9
A
回答
3
一种方式可能是获取文档并通过XSLT转换运行它。
你可以通过调用
@Override
public void handleMessage(SoapMessage message) throws Fault{
SOAPMessage saaj = message.getContent(SOAPMessage.class);
Document doc = saaj.getSOAPPart(); // This actually returns a SOAPPart instance but it does implement the w3c Document interface
//play around with the document, doc is a reference so any changes made to that instance
//will be forwarded to the rest of the chain
}
小心在你的拦截器的的handleMessage文件得到的是,如果你有安全功能,如XML签名必须在皂含量进行,你必须确保你的拦截器发生在应用签名之前,否则您将使其无效。
要使用拦截器的时机,您可以指定它将运行的阶段。 CXF还应该遵守您将在相同阶段执行的配置顺序。
,但不要把我的话...检查这些更多信息
- http://cxf.apache.org/docs/interceptors.html
- http://fusesource.com/docs/esb/4.2/cxf_interceptors/CXFInterceptorIntro.html
调试通过CXF的源代码也帮了我很大的了解它是如何工作的
----编辑----
(谢谢丹尼尔:-)
为了这个工作,你需要在你的堆栈中配置SAAJOutInterceptor。你可以手动添加它,或者简单地将它作为拦截器的一部分。 Here is一个拦截器的例子,几乎不需要你想要的。
3
+0
你的链接被破坏并进入一个通用的红帽菜单。总结链接包含的信息总是一个好主意。 – cosbor11
1
的说明,我这里张贴的答案https://stackoverflow.com/a/12948702/792313 它是基于全身替代。
相关问题
- 1. SOAP请求修改
- 2. 如何捕捉和修改SOAP请求
- 3. 如何为SOAP请求生成UsernameToken?
- 4. 如何修改由JAXWS生成的WebMethod请求的XML
- 5. 解析SOAP请求并修改数据
- 6. 使用GetWebRequest修改SOAP请求
- 7. 我可以修改通过SOAP请求
- 8. 修改肥皂水请求目标SOAP
- 9. sudzc生成错误的soap请求
- 10. 由Sudzc生成的块SOAP请求
- 11. 生成从WSDL(.NET)的SOAP请求
- 12. vb.net soap客户端请求生成
- 13. 用Java生成MM7 Soap请求
- 14. 如何更改在perl中生成SOAP :: Lite请求的xml元素的顺序?
- 15. 如何捕获本地主机上生成的SOAP请求?
- 16. CXF:如何访问生成的SOAP请求
- 17. 如何从Android中的WSDL生成SOAP请求
- 18. 如何修改SOAP :: Lite中的命名空间生成?
- 19. Ruby SOAP :: RPC ::驱动程序看到生成的soap请求
- 20. PHP与XML - 如何生成一个SOAP请求错误415
- 21. 如何为请求的执行级别修改生成的清单
- 22. ASP.NET MVC - 如何修改请求的URL?
- 23. 如何修改nginx中的请求URI
- 24. 如何修改jmeter访问日志采样器生成的请求?
- 25. 修改UIWebView请求
- 26. 修改请求体
- 27. 修改HTTP请求
- 28. 如何像SOAP UI请求一样从android构建SOAP请求?
- 29. 如何在SOAP请求
- 30. 如何从SOAP请求
非常感谢您的回答Newtopian。 message.getContent(SOAPMessage.class)总是返回Null,但是:-(我应该在哪个阶段让这个代码访问SOAP Envelope? – kiwifrog
您还需要在SAAJOutInterceptor中进行配置,以及进行转换的拦截器 –
事实上,Daniel是对的,你需要确保SAAJOutInterceptor被配置为将数据序列化为SOAPMessage对象。默认情况下,它与我的设置一样,所以我不必担心太多。该对象将不再为空,您将可以随意使用DOM树。 – Newtopian