-
soap拼接head,在CXF拦截器里面获取不了0
客户端代码SoapObject request = new SoapObject("http://service.webservice.ishopping.com/", "createOrder"); request.addProperty("storeId",7); request.addProperty("shippingId",1); request.addProperty("comments",""); request.addProperty("ip","192.168.1.1"); request.addProperty("cartId",10); request.addProperty("addressId",10); request.addProperty("payId",3); request.addProperty("webId",1); request.addProperty("memberId",10); request.addProperty("couPrice",3); // 设置HTTP头信息 Element[] header = new Element[1]; header[0] = new Element().createElement("http://service.webservice.ishopping.com/", "yanzheng"); Element userName = new Element().createElement("http://service.webservice.ishopping.com/", "userName"); userName.addChild(Node.TEXT, "ysj"); Element password = new Element().createElement("http://service.webservice.ishopping.com/", "password"); password.addChild(Node.TEXT, "20130430"); // header[0].addChild(Node.ELEMENT, userName); // header[0].addChild(Node.ELEMENT, password); // header[0].addChild(Node.TEXT, "7777777777777"); // System.out.println((header[0].)); SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); envelope.headerOut = header; envelope.setOutputSoapObject(request); envelope.dotNet = false; try { HttpTransportSE androidHttpTransport = new HttpTransportSE("http://www.goudzd.com:8088/goudzd/webservice/Myorder?"); androidHttpTransport.call("", envelope); // System.out.println(envelope.bodyIn); Object result = (Object)envelope.bodyIn; // SoapObject result = (SoapObject)envelope.bodyIn; System.out.println(result.toString()); } catch (Exception e) { e.printStackTrace(); }
拦截器private SAAJInInterceptor saa = new SAAJInInterceptor(); public MyCartInterceptor() { //显示调用父类有参数构造 super(Phase.PRE_INVOKE); //该拦截器将会在调用之前拦截soap消息 } @Override public void handleMessage(SoapMessage message) throws Fault { try { SOAPMessage doc = message.getContent(SOAPMessage.class); if (doc == null) { saa.handleMessage(message); doc = message.getContent(SOAPMessage.class); } SOAPHeader header = doc.getSOAPHeader(); if (header == null) { return; } NodeList userName = header.getElementsByTagName("userName"); NodeList password = header.getElementsByTagName("password"); for(int i=0; i<userName.getLength(); i++) { System.out.println(userName.item(i).getLocalName()+"----"+userName.item(i).getTextContent()); } if(userName.item(0).getTextContent().equals("ysj")&&password.item(0).getTextContent().equals("20130430")){ System.out.println("通过"); }else{ SOAPException soapExc = new SOAPException("认证错误"); throw new Fault(soapExc); } } catch (SOAPException e) { e.printStackTrace(); } }
就是获取那个username 和password节点获取不了2013年12月18日 18:08
目前还没有答案
相关推荐
自定义拦截器在CXF中扮演着重要角色,它们允许我们在服务调用前后执行额外的逻辑,如日志记录、安全检查、性能监控等。这通过实现CXF提供的接口或继承特定的类来实现。以下是一些关键知识点: 1. **CXF拦截器基础**...
它不仅包含了实际的消息数据,还提供了丰富的API用于访问和操作这些数据,包括但不限于设置和获取拦截器链、目的地信息以及消息内容。`Message`对象作为所有拦截器操作的中心,确保了数据和行为的统一管理。 通过...
拦截器是CXF框架中的一个重要组成部分,允许开发者在服务调用的生命周期中插入自定义逻辑,实现如日志记录、安全检查、性能监控等功能。本篇将深入探讨CXF拦截器的理论基础,并演示如何为CXF的客户端和服务端添加...
总结起来,"CXF WebService带有拦截器"的实践是Web服务开发中的一个重要方面,它允许我们在不侵入核心业务逻辑的情况下,增加诸如权限控制这样的安全特性。通过"AuthFilter_Service"和"AuthFilter_Client",我们可以...
拦截器在CXF中的工作原理基于JAX-WS规范,可以分为两种类型:`InInterceptors`(入站拦截器)和`OutInterceptors`(出站拦截器)。入站拦截器处理从客户端到服务器的消息,而出站拦截器则处理从服务器返回到客户端的...
入站拦截器在接收到消息后执行,而出站拦截器在发送消息之前执行。 客户端拦截器主要应用于以下场景: 1. **身份验证**:可以在请求发送前添加认证信息,例如添加OAuth令牌或基本HTTP认证。 2. **日志记录**:可以...
拦截器在CXF中是一种强大的工具,它允许开发者在消息发送或接收的过程中插入自定义的行为。这在处理认证、日志记录、事务管理等场景中非常有用。在提供的"inter_ws_server"和"inter_client"两个文件中,分别展示了...
当我们谈论"CXF发布WebService加入拦截器"时,这涉及到在CXF服务端和客户端增加拦截器来增强服务功能和控制流程。拦截器是CXF框架中的一个重要组件,它们提供了在消息发送和接收过程中插入自定义逻辑的能力。 一、...
在本项目中,"spring集成cxf客户端和服务器端demo(含自定义拦截器)"是一个实战案例,展示了如何在Spring框架下与Apache CXF服务进行整合,实现客户端和服务端的交互,并利用拦截器来增强功能。以下是这个项目涉及的...
在拦截器中,我们需要获取请求中的用户信息,这可能来自于HTTP头、SOAP头或者其他认证机制。然后,与后端的权限系统交互,比如查询数据库或者调用安全服务来验证用户是否有访问特定服务的权限。 3. **注册拦截器**...
CXF是一个流行的开源框架,它支持SOAP和RESTful两种Web Service风格,并提供了丰富的功能,包括安全、拦截器等。本节我们将深入探讨如何为CXF客户端添加自定义拦截器以实现权限控制。 首先,理解拦截器的概念是至关...
// 拦截器在调用方法之前拦截SOAP消息 super(Phase.RECEIVE); } public void handleMessage(Message message) throws Fault { logging(message); } private void logging(Message message) throws Fault { ...
当我们需要在CXF和Spring整合的基础上发布Web服务,并对权限进行控制时,可以利用拦截器来实现这一目标。本文将详细介绍如何为CXF与Spring整合发布WebService添加拦截器进行权限控制。 首先,我们需要理解CXF拦截器...
【标题】:“CXF框架在Web服务中的应用:拦截器示例” 【描述】:本压缩包“webservice的cxf框架拦截器demo.rar”提供了一个关于如何在Apache CXF框架下实现Web服务拦截器的实际操作示例。CXF是一个开源的服务框架...
在本次讨论中,我们将详细介绍如何使用Java语言结合Apache CXF框架实现SOAP协议的Web服务调用,重点是如何在调用过程中实现用户权限验证以及附件文件上传的功能。在这一过程中,我们将涉及到的技术点包括SOAP协议的...
2. **登录检查**:在拦截器的`handleMessage()`或`handleFault()`方法中,检查请求是否包含有效的登录凭证,例如,可以检查HTTP头中的认证信息,或者从消息上下文中获取会话信息。如果发现无效凭证,可以抛出一个...
在Java中,可以使用JAXB(Java Architecture for XML Binding)或者第三方库如Apache CXF,将SOAP响应XML解析为Java对象。这通常涉及创建对应的Java类来映射XML元素。例如,如果我们有一个如下的SOAP响应: ```xml ...
在开发基于SOAP协议的服务时,有时我们需要在请求中添加特定的Header信息,这在CXF框架下可以通过编程方式实现。Apache CXF是一个流行的开源服务框架,支持SOAP和RESTful服务的开发、部署和消费。本示例将详细介绍...
CXF提供了一套全面的工具和服务,包括代码生成器、WSDL到Java绑定、Java到WSDL绑定、SOAP消息处理和安全支持等。它的优势在于对WS-I兼容性、强大的错误处理和调试能力。 3. **创建SOAP服务** 使用CXF,我们可以从...
5. 自定义拦截器:在CXF中,拦截器用于在消息发送或接收时插入自定义逻辑,例如认证、日志记录等。这里提到的自定义拦截器可能用于实现特定的安全或业务需求。 【描述解析】 "实现了客户端和服务端,客户端添加...