CXF拦截器的实现
来源:互联网 发布:final cut pro x mac 编辑:程序博客网 时间:2024/06/05 02:57
这篇文章是接着上篇文章进行完善的
这里所要记录的是如何进行CXF拦截器的部署
1................................................编写类
MessageInterceptor.java 这里存放的我们进行的拦截操作
package Interceptor;import org.apache.cxf.interceptor.Fault;import org.apache.cxf.message.Message;import org.apache.cxf.phase.AbstractPhaseInterceptor;/* * 自定义拦截器 */public class MessageInterceptor extends AbstractPhaseInterceptor<Message>{public MessageInterceptor(String phase) {super(phase);}public void handleMessage(Message message) throws Fault {System.out.println("****************************进入拦截器*********************************************");System.out.println(message);if(message.getDestination()!=null){System.out.println(message.getId()+"#"+message.getDestination().getMessageObserver());}if(message.getExchange()!=null){System.out.println(message.getExchange().getInMessage()+"#"+message.getExchange().getInFaultMessage());System.out.println(message.getExchange().getOutMessage()+"#"+message.getExchange().getOutFaultMessage());}System.out.println("**************************离开拦截器**************************************");}}
2........................................修改一下我们的发布程序类,这样我们服务端的拦截器就开发完成了
package Server;import org.apache.cxf.endpoint.Server;import org.apache.cxf.jaxws.JaxWsServerFactoryBean;import org.apache.cxf.phase.Phase;import Interceptor.MessageInterceptor;import Type.HelloWorldImpl;public class ServiceTest {public static void main(String[] args) throws InterruptedException {JaxWsServerFactoryBean factory = new JaxWsServerFactoryBean();factory.setServiceClass(HelloWorldImpl.class);factory.setAddress("http://localhost:8080/HelloWorld");factory.setServiceBean(new HelloWorldImpl());factory.getInInterceptors().add(new MessageInterceptor(Phase.RECEIVE));factory.getOutInterceptors().add(new MessageInterceptor(Phase.SEND));Server server = factory.create();server.start();System.out.println("Server start.....................");Thread.sleep(1000 * 60);System.exit(0);System.out.println("Server exit ");}}
3..............................................客户端可以不变,也可以进行开发客户端拦截器,只需加两句话就OK了,如下代码
package Client;import org.apache.cxf.endpoint.Client;import org.apache.cxf.interceptor.LoggingInInterceptor;import org.apache.cxf.interceptor.LoggingOutInterceptor;import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;import org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory;public class ClientTest {public static void main(String[] args) throws Exception {JaxWsDynamicClientFactory ser = JaxWsDynamicClientFactory.newInstance();Client client =ser.createClient("http://localhost:8080/HelloWorld?wsdl");client.getInInterceptors().add(new LoggingInInterceptor());client.getOutInterceptors().add(new LoggingOutInterceptor());Object[] o = client.invoke("sayHi", "sa");System.out.println(o[0]);}}
4...............................................服务端运行结果
5.........................................客户端运行结果
- CXF拦截器的实现
- spring boot-实现WebService(CXF实现)的拦截器(Interceptor)
- CXF的拦截器(七)
- CXF自定义拦截器实现权限控制
- cxf拦截器实现参数过滤续
- CXF拦截器(Interceptor)的使用
- CXF对Interceptor拦截器的支持
- CXF对Interceptor拦截器的支持
- CXF对Interceptor拦截器的支持
- CXF之日志拦截器的使用
- 使用cxf时拦截器的使用
- CXF自定义拦截器的使用
- CXF对Interceptor拦截器的支持
- cxf+Spring的webservice应用--拦截器
- CXF对Interceptor拦截器的支持
- webservice框架CXF拦截器的使用
- CXF对Interceptor拦截器的支持
- CXF 的IP拦截
- 合使用 CSS、JavaScript 和 JSF 精心打造 Ajax 应用程序,第 2 部分: 动态 JSF 表单
- Java 产生随机数
- hdu 1150Machine Schedule(最小顶点覆盖)
- wince学习路线
- 在RedHat Enterprise Linux 上Oracle 9i的安装配置与调优
- CXF拦截器的实现
- 循环队列实现杨辉三角
- javaMail 使用
- mit 计算机科学及编程导论(12)
- jsp页面处理
- Linux下Oracle数据库的启动、关闭和数据字典的利用
- PHP+MySQL中文乱码问题
- 说明sizeof和strlen的区别
- Oracle VM VirtualBox安装笔记