0 0

cxf 拦截器5

import javax.xml.soap.SOAPBody;
import javax.xml.soap.SOAPEnvelope;
import javax.xml.soap.SOAPException;
import javax.xml.soap.SOAPHeader;
import javax.xml.soap.SOAPMessage;
import javax.xml.soap.SOAPPart;

import org.apache.cxf.binding.soap.SoapMessage;
import org.apache.cxf.binding.soap.saaj.SAAJInInterceptor;
import org.apache.cxf.interceptor.Fault;
import org.apache.cxf.phase.AbstractPhaseInterceptor;
import org.apache.cxf.phase.Phase;

public class UserInterceptor extends AbstractPhaseInterceptor<SoapMessage> {

	private SAAJInInterceptor saa = new SAAJInInterceptor();

	public UserInterceptor() {
		super(Phase.PRE_PROTOCOL);
		getAfter().add(SAAJInInterceptor.class.getName());

	}

	@Override
	public void handleMessage(SoapMessage message) throws Fault {
		System.out.println("in");
		SOAPMessage mess = message.getContent(SOAPMessage.class);
		if (mess == null) {
			saa.handleMessage(message);
			mess = message.getContent(SOAPMessage.class);
		}
		System.out.println("message = " + mess);
		SOAPPart sp = mess.getSOAPPart();
		System.out.println(sp);
		try {
			SOAPEnvelope se = sp.getEnvelope();
			System.out.println(se);
			SOAPBody sb = se.getBody();
			System.out.println(sb);
			SOAPHeader sh = se.getHeader();
			System.out.println(sh);
		} catch (SOAPException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}

}

为什么我还是得不到body里面的内容?

问题补充:<soapenv:Body>
      <bgi:assignOperator>
         <!--Optional:-->
         <arg0>
            <!--Optional:-->
            <operatorName>?</operatorName>
            <!--Optional:-->
            <password>?</password>
            <!--Optional:-->
            <subProjectID>?</subProjectID>
            <!--Optional:-->
            <username>?</username>
         </arg0>
      </bgi:assignOperator>
   </soapenv:Body>
这是用soapUI调用,body输出null

问题补充:public UserInterceptor() {
super(Phase.PRE_INVOKE);
}

@Override
public void handleMessage(SoapMessage message) throws Fault {
HttpServletRequest request = (HttpServletRequest) message
.get(AbstractHTTPDestination.HTTP_REQUEST);
String ipAddress = request.getRemoteAddr(); // 取客户端IP地址
String username = null;
String password = null;
Set s = message.getContentFormats();
Iterator classIterator = s.iterator();
while (classIterator.hasNext()) {
Class c = (Class) classIterator.next();
Object o = message.getContent(c);
if (o instanceof MessageContentsList) {
MessageContentsList values = (MessageContentsList) o;
System.out.println(values);
for (int i = 0; i < values.size(); i++) {
try {
Object paramters = values.get(i);
String value = paramters.toString();
String[] strs = value.split(";");
username = strs[0];
password = strs[1];
System.out.println(paramters);
break;
} catch (Exception e) {

}
}
break;
}
}

问题补充:这样就可以拿到body里面的内容了
2012年8月22日 18:31
目前还没有答案

相关推荐

    CXF拦截器(Interceptor)的使用

    标题:“CXF拦截器(Interceptor)的使用” 描述:“讲解了cxf实现拦截器的原因、核心API及使用方法” 在深入探讨CXF拦截器的使用之前,我们首先需要理解其在CXF框架中的核心作用与价值。Apache CXF是一个开源框架,...

    08.CXF拦截器的理论以及如何为CXF的客户端和服务器端添加拦截器

    **CXF拦截器理论与应用** 在Web服务领域,Apache CXF是一个强大的开源框架,它提供了构建和消费SOAP和RESTful服务的能力。拦截器是CXF框架中的一个重要组成部分,允许开发者在服务调用的生命周期中插入自定义逻辑,...

    CXF3.0+Spring3.2 自定义拦截器

    1. **CXF拦截器基础**:CXF的拦截器是基于JAX-WS规范的Handler Chain模型,分为In-bound(请求进来时触发)和Out-bound(响应出去时触发)两类。拦截器可以通过在服务配置中指定,或者通过编程方式动态添加。 2. **...

    Cxf拦截器实例

    通过学习和理解这些示例,开发者可以更好地利用CXF拦截器来扩展和定制自己的Web服务,提高应用程序的灵活性和可维护性。无论是客户端还是服务器端,拦截器都是一个强大的工具,能够帮助我们控制和优化服务通信的每个...

    CXF使用EndpointImpl发布WebService加入拦截器

    在Java世界中,Apache CXF是一个广泛使用的开源框架,它允许开发者创建和消费Web服务。在Web服务开发中,拦截器扮演着至关重要的角色,...总的来说,理解并熟练运用CXF拦截器对于任何CXF开发者来说都是一项重要的技能。

    CXF发布WebService加入拦截器

    CXF拦截器是一种AOP(面向切面编程)的概念,它们是执行特定任务的独立单元,可以在消息传递的生命周期中不同阶段被调用。拦截器可以用来处理如认证、授权、日志记录、性能监控、数据转换等任务,增强了服务的功能和...

    10.为CXF服务器端添加自定义拦截器进行权限检查

    在开发基于CXF的Web服务时,为了确保系统的安全性和数据的完整性,通常需要对请求进行权限检查。本文将深入探讨如何为CXF服务器...在学习和应用这些知识时,结合实际案例和实践操作将有助于更好地掌握CXF拦截器的使用。

    13.为CXF与Spring整合发布WebService添加拦截器进行权限控制

    首先,我们需要理解CXF拦截器的概念。拦截器是CXF提供的一种机制,它允许我们在Web服务调用的生命周期中的不同阶段插入自定义逻辑,如消息的发送和接收。这为我们提供了在服务执行前、后或过程中进行额外操作的机会...

    CXF-拦截器-权限控制-登录校验

    本文将深入探讨"CXF拦截器-权限控制-登录校验"这一主题。 首先,我们需要了解什么是拦截器。在CXF框架中,拦截器是实现业务逻辑和基础架构之间解耦的一种方式。它们可以插入到服务调用的生命周期中,在消息发送前或...

    ip黑白名单拦截器java示例

    在IT安全领域,IP黑白名单拦截器是一种常见的技术手段,用于增强网络安全,防止恶意或不受信任的IP地址访问系统资源。以下将详细讲解基于Java实现的IP黑白名单拦截器及其核心概念。 首先,我们来看标题提及的“ip...

    webservice的cxf框架拦截器demo

    本篇将深入探讨CXF框架中的拦截器(Interceptor)及其在"webservice的cxf框架拦截器demo"中的应用。 拦截器在CXF中是一种强大的工具,它允许开发者在消息发送或接收的过程中插入自定义的行为。这在处理认证、日志...

    CXF WebService带有拦截器

    本篇文章将深入探讨如何使用CXF来开发具有权限控制功能的Web Service,并通过拦截器实现这一目标。 首先,我们需要理解Web Service拦截器的概念。在CXF中,拦截器是处理消息生命周期中的关键组件,它们可以在消息...

    spring集成cxf客户端和服务器端demo(含自定义拦截器)

    在本项目中,"spring集成cxf客户端和服务器端demo(含自定义拦截器)"是一个实战案例,展示了如何在Spring框架下与Apache CXF服务进行整合,实现客户端和服务端的交互,并利用拦截器来增强功能。以下是这个项目涉及的...

    java代理实现webservice接口拦截器功能

    本文根据java代理实现CXF拦截器异常时只能进入fault拦截器而不能继续向下执行的问题。 利用java代理让RMI具有拦截器的功能。

    11.为CXF客户端添加自定义拦截器完成权限控制

    CXF是一个流行的开源框架,它支持SOAP和RESTful两种Web Service风格,并提供了丰富的功能,包括安全、拦截器等。本节我们将深入探讨如何为CXF客户端添加自定义拦截器以实现权限控制。 首先,理解拦截器的概念是至关...

    webservice的cxf框架拦截器demo.rar

    【标题】:“CXF框架在Web服务中的应用:拦截器示例” 【描述】:本压缩包“webservice的cxf框架拦截器demo.rar”提供了一个关于如何在Apache CXF框架下实现Web服务拦截器的实际操作示例。CXF是一个开源的服务框架...

    springBoot完整整合WebService框架CXF示例

    5. **CXF拦截器**:CXF拦截器是处理消息传递过程中的钩子,可以在消息发送前、发送后、接收前、接收后等阶段进行操作。在这个示例中,拦截器用于实现简单的授权校验。你可以定义一个实现了`ClientInterceptor`或`...

    CXF3.1.16 +Spring4 +MyBatis + Maven自定义拦截器 WebService实例源码下载

    "CXF3.1.16 +Spring4 +MyBatis + Maven自定义拦截器 WebService实例源码下载" 这个标题揭示了该项目的核心技术栈,包括: 1. CXF 3.1.16:这是一个开源的服务框架,用于构建和开发服务,支持SOAP和RESTful Web服务...

    cxf+spring整合

    - 配置CXF拦截器和处理器:Spring可以用来管理CXF的拦截器和消息处理器,使它们能够作为Spring beans进行注入和管理。 ```xml ``` 4. **运行环境:MyEclipse** MyEclipse是一款集成开发环境,特别...

    cxf入门例子(安全认证)

    为了设置安全认证,我们需要配置 CXF 的 Spring 容器,添加相关的拦截器或过滤器,比如 `org.apache.cxf.security.authentication.BasicAuthenticationInInterceptor` 或 `org.apache.cxf.security.transport....

Global site tag (gtag.js) - Google Analytics