栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java WebService CXF Spring 自定义拦截器 附实例源码

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java WebService CXF Spring 自定义拦截器 附实例源码

for (int i = 0; i < 5; i++) {

Element nameElement = element.addElement(“name”);

Element valueElement = element.addElement(“value”);

Element descriptionElement = element.addElement(“description”);

nameElement.setText(“名称”+i);

nameElement.addAttribute(“language”, “java”+i);//为节点添加属性值

valueElement.setText(“值”+i) 《大厂前端面试题解析+Web核心总结学习笔记+企业项目实战源码+最新高清讲解视频》无偿开源 徽信搜索公众号【编程进阶路】 ;

valueElement.addAttribute(“language”, “c#”+i);

descriptionElement.setText(“描述”+i);

descriptionElement.addAttribute(“language”, “sql server”+i);

}

System.out.println(document.asXML()); //将document文档对象直接转换成字符串输出

} catch (Exception e) {

e.printStackTrace();

}

return document.asXML();

}

public String xml(){

StringBuffer str = new StringBuffer();

str.append(“n”);

APIUtils ap = new APIUtils();

User user = new User();

java.util.List list = new ArrayList();

list.add(1);

list.add(“张胜男”);

list.add(“xs111”);

list.add(2);

list.add(“张胜”);

list.add(“xs222”);

list.add(3);

list.add(“胜男”);

list.add(“xs333”);

for (int i = 0; i < 3; i++) {

str.append(ap.getXMLModel(user,list));

}

System.out.println(str);

str.append(“”);

APIUtils.num=0;

return str.toString();

}

}

package com.iflyee.cxf;

public class User {

private int id;

private String userName;

private String password;

public int getId() {

return id;

}

public void setId(int id) {

this.id = id;

}

public String getUserName() {

return userName;

}

public void setUserName(String userName) {

this.userName = userName;

}

public String getPassword() {

return password;

}

public void setPassword(String password) {

this.password = password;

}

}

package com.lzw.springcxf.auth;

import java.util.List;

import org.apache.cxf.binding.soap.SoapMessage;

import org.apache.cxf.headers.Header;

import org.apache.cxf.interceptor.Fault;

import org.apache.cxf.phase.AbstractPhaseInterceptor;

import org.apache.cxf.phase.Phase;

import org.w3c.dom.Element;

import org.w3c.dom.NodeList;

public class AuthInterceptor extends AbstractPhaseInterceptor{

public AuthInterceptor() {

//拦截器在调用方法之前拦截SOAP消息

super(Phase.PRE_INVOKE);

System.out.println(“11111111111111111111111111111111111”);

}

@Override

public void handleMessage(SoapMessage msg) throws Fault {

System.out.println(“==============================”);

System.out.println(“=自定义拦截器===”);

//获取SOAP消息的Header

List

headers = msg.getHeaders();

//如果没有Header

if(headers == null || headers.size() < 1) {

throw new Fault(new IllegalArgumentException(“没有Header,拦截器实施拦截”));

}

//获取Header携带是用户和密码信息

Header firstHeader = headers.get(0);

Element ele = (Element) firstHeader.getObject();

NodeList userIdEle = ele.getElementsByTagName(“userId”);

NodeList userPassEle = ele.getElementsByTagName(“userPass”);

if (userIdEle.getLength() != 1) {

throw new Fault(new IllegalArgumentException(“用户Id格式不对”));

}

if (userPassEle.getLength() != 1) {

throw new Fault(new IllegalArgumentException(“用户密码格式不对”));

}

//获取元素的文本内容

String userId = userIdEle.item(0).getTextContent();

String userPass = userPassEle.item(0).getTextContent();

if (!userId.equals(“lyy”) || !userPass.equals(“123456”)) {

throw new Fault(new IllegalArgumentException(“用户和密码不正确”));

}

}

}

package jp.co.service;

public interface TestService {

public String SayHello();

}

package jp.co.service.impl;

import jp.co.service.TestService;

public class TestServiceImpl implements TestService {

@Override

public String SayHello() {

System.out.println(“功能方法被调用!”);

return “Hello 这是一个简单的WebService实例”;

}

}

调用方法

package com.testClient;

import org.apache.cxf.frontend.ClientProxyFactoryBean;

import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;

import jp.co.service.TestService;

public class TestClient {

public static void main(String[] args) {

//创建一个客户端的代理工厂

ClientProxyFactoryBean clientProxy = new ClientProxyFactoryBean() ;

clientProxy.setServiceClass(TestService.class);

clientProxy.setAddress(“http://localhost:8080/WcxF/services/test”);

TestService pic = (TestService)clientProxy.create();

System.out.println(pic.SayHello());

}

}

bean.xml

xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”

xmlns:jaxws=“http://cxf.apache.org/jaxws”

xsi:schemaLocation="http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans.xsd

http://cxf.apache.org/jaxws

http://cxf.apache.org/schemas/jaxws.xsd">

jaxws:inInterceptors

jaxws:outInterceptors

cxf-servlet.xml

xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”

xmlns:simple=“http://cxf.apache.org/simple”

xmlns:soap=“http://cxf.apache.org/bindings/soap”

xsi:schemaLocation="http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans-2.0.xsd

http://cxf.apache.org/bindings/soap

http://cxf.apache.org/schemas/configuration/soap.xsd

http://cxf.apache.org/simple

http://cxf.apache.org/schemas/simple.xsd">

serviceClass=“jp.co.service.TestService” address=“/test”>

simple:serviceBean

web.xml

contextConfigLocation

WEB-INF/bean.xml

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/842050.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号