项目需要,要对java的soap messge进行改动。
主要是改动header和body部分。
代码如下。
code 1 [java 取出body,加一个header]
-----------------------------我是分割线 code 1-------------------------------
SOAPMessage message = messageContext.getMessage();
//把soap的body提出来。
//Creates a new DOM org.w3c.dom.Document and sets the first child of this SOAPBody as
//it's document element. The child SOAPElement is removed as part of the process.
Document doc = message.getSOAPBody().extractContentAsDocument();
StringWriter output = new StringWriter();
TransformerFactory.newInstance().newTransformer().transform( new DOMSource(doc), new StreamResult(output));
//这个就是soapbody的字符串表示了
String bodyString = output.toString();
String encryptBodyString = encryptString(bodyString);
SOAPElement soapElement = message.getSOAPHeader().addChildElement(
HeaderConstant.DataQName);
soapElement.addTextNode(encryptBodyString);
-----------------------------我是分割线 code 1-------------------------------
code 2 [java 设置body,删除一个header]
-----------------------------我是分割线 code 2-------------------------------
SOAPMessage message = messageContext.getMessage();
SOAPHeader header = message.getSOAPHeader();
Iterator dataIterator = header.getChildElements(HeaderConstant.DataQName);
SOAPElement dataElements = (SOAPElement) dataIterator.next();
bodayString = dataElements.getValue();
String decryptString = decryptString(bodayString);
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
factory.setNamespaceAware(true);
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.parse(new ByteArrayInputStream(decryptString.getBytes()));
message.getSOAPBody().addDocument(doc);
-----------------------------我是分割线 code 2-------------------------------
分享到:
相关推荐
2. **协议支持**:JAX-WS 2.2支持多种Web服务协议,包括HTTP、HTTPS、MTOM(Message Transmission Optimization Mechanism)和SAAJ(SOAP with Attachments API for Java)。MTOM优化了大型二进制数据的传输,而SAAJ...
4. **JAXWS-RI(Reference Implementation)**:这是JAX-WS规范的官方参考实现,包含运行时库和工具,使得开发者能够在其应用程序中使用JAX-WS。 **JAX-WS 2.1的关键特性** 1. **动态代理**:2.1版本引入了动态...
总之,**jaxws-ri-2.3.0** 是Java开发者构建和使用SOAP Web服务的重要工具,它提供了全面的API和工具,使得Web服务开发变得更为便捷和高效。通过深入学习和实践,开发者可以充分利用其特性,提升Web服务的质量和效率...
通过上述步骤,我们成功实现了使用CXF打印SOAP报文的功能,并能够有效地记录WebService的日志信息。这对于调试和维护基于CXF的服务来说是非常有用的。此外,通过扩展此类自定义拦截器,还可以添加更多的功能,如安全...
SOAPMessage message = context.getMessage(); SOAPHeader header = message.getSOAPPart().getEnvelope().getHeader(); // 添加Header // ... return true; } catch (Exception e) { throw new ...
1. **服务端编程模型**: JAX-WS允许开发者通过简单的注解将普通的Java类声明为Web服务接口,这样可以快速地将业务逻辑转换为可供网络调用的服务。 2. **客户端编程模型**: 对于消费Web服务的客户端,JAX-WS提供了...
3. **SOAP消息处理**:JAX-WS提供了MessageHandler接口,允许开发者对SOAP消息进行自定义处理,如添加安全认证或数据转换。 4. **客户端调用**:使用JAX-WS,开发者可以使用`Service`类来创建客户端代理对象,这个...
总的来说,"jaxws-ri-2.3.1.zip"是一个全面的JAX-WS实现,为开发者提供了方便的工具和环境来开发、测试和部署基于SOAP的Web服务。它的使用不仅简化了开发流程,还增强了Web服务的互操作性和安全性。
它包括了创建和操作SOAP消息的主要类,如`MessageFactory`、`SOAPConnectionFactory`、`SOAPMessage`和`SOAPPart`等,使得开发者能够创建符合SOAP规范的通信接口。 2. **jaxws-api-2.2.11.jar**:这是JAX-WS的主要...
2. 设置SOAP Envelope:通过`SOAPMessage`的`getSOAPPart()`获取`SOAPPart`对象,然后调用`getEnvelope()`获取`SOAPEnvelope`对象。 3. 添加命名空间:使用`SOAPEnvelope`的`addNamespaceDeclaration()`方法添加命名...
SOAPMessage msg = ctx.getMessage(); SOAPEnvelope env = msg.getSOAPPart().getEnvelope(); SOAPHeader hdr = env.getHeader(); if (hdr == null) hdr = env.addHeader(); // 添加认证信息头 QName ...
8. **cxf-rt-bindings-soap-2.7.12.jar**: SOAP绑定模块,处理SOAP消息的编码和解码,确保消息与服务接口之间的正确匹配。 9. **cxf-rt-transports-jms-2.7.12.jar**: JMS(Java Message Service)传输模块,提供了...
Apache CXF是一个开放源码的服务框架,它允许开发人员通过SOAP、RESTful等Web服务标准来创建和部署服务。当CXF客户端在与服务器交互时,如果服务器返回的响应或请求的数据中包含非GBK字符,而客户端默认使用GBK编码...
通过JAX-WS,你可以轻松地创建发送和接收SOAP消息的服务。 2. **WSDL生成**: WSDL(Web Services Description Language)是一种XML格式,用于描述Web服务及其接口。JAX-WS允许你通过注解自动生成WSDL文件,这些文件...
SOAPMessage soapRequest = MessageFactory.newInstance().createMessage(); soapRequest.getSOAPPart().getEnvelope().getBody().addFault(new Detail()); SOAPBody soapBody = soapRequest.getSOAPPart()....
CXF 是一款开源的 Java SOAP 和 RESTful 服务框架,它允许开发者轻松地创建和消费 Web 服务。本篇文章将深入探讨 CXF 的一些核心功能,包括简单的 HelloWorld 示例、复杂对象的传递、安全机制以及大文件上传(MTOM)...
### JAVA企业级API-JAXWS:深入理解与实践 #### 一、引言 随着互联网技术的发展,企业级应用越来越依赖于高效的通信机制来确保不同系统间的无缝协作。Java作为企业级开发的主要语言之一,提供了丰富的API来支持这种...
本教程“5天学会jaxws-webservice编程”旨在帮助你快速掌握JAX-WS的核心概念和技术,以便在短短五天内能够熟练地运用到实际项目中。 首先,我们需要了解Web服务的基础。Web服务基于开放标准,如SOAP(Simple Object...
通过Maven配置和Java注解,我们可以快速地构建和部署Web服务,同时享受到CXF提供的诸多功能,如WSDL生成、SOAP消息处理和协议支持等。在实际开发中,结合CXF的其他特性,如MTOM(Message Transmission Optimization ...
5. **MTOM/XOP支持**:CXF支持Message Transmission Optimization Mechanism (MTOM)和XML-binary Optimized Packaging (XOP),用于高效传输二进制数据。 6. **数据绑定**:CXF使用了JAXB(Java Architecture for ...