`
wmch
  • 浏览: 72973 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

使用 CXF 做 webservice 简单例子

阅读更多

applicationContext-cxf.xml:

<!--客户端 俱乐部平台提供接口 -->
    <jaxws:client id="thumbClubServiceClient" serviceClass="com.bplow.look.ws.service.ThumbClubService" address="http://localhost:8080/cms/services/thumbClubServiceWeb">
    </jaxws:client>
   
    <!--服务器端 俱乐部平台提供接口 -->
    <jaxws:endpoint id="thumbClubServiceEP" address="/thumbClubServiceWeb">
        <jaxws:implementor ref="thumbClubServiceWeb" />
        <jaxws:properties>
            <entry key="mtom-enabled" value="true" />
        </jaxws:properties>
    </jaxws:endpoint>
    <bean id="thumbClubServiceWeb" class="com.bplow.look.ws.service.impl.ThumbClubServiceImpl" />
    <bean id="thumbClubJdbcDaoWeb" class="com.bplow.look.ws.dao.ThumbClubJdbcDao" parent="baseJdbcDao"/>
    <bean id="thumbClubHibernateWeb" class="com.bplow.look.ws.dao.ThumbClubHibernate"/>

测试获取bean:

ThumbClubService thumbClubServiceClient =
            (ThumbClubService)SpringUtils.getBean("thumbClubServiceClient");

 

IP地址拦截器

applicationContext-cxf.xml:

<!--客户端 拇指俱乐部平台提供接口 -->
    <jaxws:client id="thumbClubServiceClient" serviceClass="com.bplow.look.ws.service.ThumbClubService" address="http://localhost:8080/cms/services/thumbClubServiceWeb">
    </jaxws:client>
   
    <!--服务器端 拇指俱乐部平台提供接口 -->
    <jaxws:endpoint id="thumbClubServiceEP" address="/thumbClubServiceWeb">
        <jaxws:implementor ref="thumbClubServiceWeb" />
        <jaxws:inInterceptors>
            <bean class="com.bplow.look.ws.filter.IpAddressInInterceptor"/>
        </jaxws:inInterceptors>

        <jaxws:properties>
            <entry key="mtom-enabled" value="true" />
        </jaxws:properties>
    </jaxws:endpoint>
    <bean id="thumbClubServiceWeb" class="com.bplow.look.ws.service.impl.ThumbClubServiceImpl" />
    <bean id="thumbClubJdbcDaoWeb" class="com.bplow.look.ws.dao.ThumbClubJdbcDao" parent="baseJdbcDao"/>
    <bean id="thumbClubHibernateWeb" class="com.bplow.look.ws.dao.ThumbClubHibernate"/>

 

IpAddressInInterceptor.java:

package com.bplow.look.ws.filter;

import java.util.List;

import javax.servlet.http.HttpServletRequest;

import org.apache.cxf.interceptor.Fault;
import org.apache.cxf.message.Message;
import org.apache.cxf.phase.AbstractPhaseInterceptor;
import org.apache.cxf.phase.Phase;
import org.apache.cxf.transport.http.AbstractHTTPDestination;

 /** 
  * IP地址拦截器 
  * @author wmc 
  * 
  */ 
 public class IpAddressInInterceptor extends AbstractPhaseInterceptor<Message> {  
  
     public IpAddressInInterceptor() {
         super(Phase.RECEIVE);
     }
  
     public void handleMessage(Message message) {
         // 通过一个IpAddressConfig对象,从XML文件中读取预先设置的允许和拒绝的IP地址,这些值也可以来自数据库
         List<String> allowedList = IpAddressConfig.getAllowedList(); // 允许访问的IP地址
         List<String> deniedList = IpAddressConfig.getDeniedList(); // 拒绝访问的IP地址
         HttpServletRequest request = (HttpServletRequest) message.get(AbstractHTTPDestination.HTTP_REQUEST);
         String ipAddress = request.getRemoteAddr(); // 取客户端IP地址
         System.out.println("ip:               "+ipAddress);
         // 先处理拒绝访问的地址
         for (String deniedIpAddress : deniedList) {
             if (deniedIpAddress.equals(ipAddress)) {
                 throw new Fault(new IllegalAccessException("ip地址 " + ipAddress + " 拒绝访问"));
             }
         }
         // 如果允许访问的集合非空,继续处理,否则认为全部IP地址均合法
         if (allowedList.size() > 0) {
             boolean contains = false;
             for (String allowedIpAddress : allowedList) {
                 if (allowedIpAddress.equals(ipAddress)) {
                     contains = true;
                     break;
                 }
             }
             if (!contains) {
                 throw new Fault(new IllegalAccessException("ip地址 " + ipAddress + " 不允许访问"));
             }
         }
     }

 }

 

IpAddressConfig.java:

package com.bplow.look.ws.filter;

import java.util.ArrayList;
import java.util.List;

public class IpAddressConfig {
   
    // 允许访问的IP地址
    public static List<String> getAllowedList(){
        List<String> li = new ArrayList<String>();
        li.add("192.168.1.30");
        return li;
    }
   
    // 拒绝访问的IP地址
    public static List<String> getDeniedList(){
        List<String> li = new ArrayList<String>();
        li.add("127.0.0.1");
        return li;
    }

}

分享到:
评论

相关推荐

    使用 CXF 做 webservice 简单例子 - 烽火编程 - 博客园

    Apache CXF 是一个开放源代码框架,提供了用于方便地构建和开发 Web 服务的可靠基础架构。它允许创建高性能和可扩展的服务,您可以将这样的服务部署在 Tomcat 和基于 Spring 的轻量级容器中,以及部署在更高级的...

    使用CXF开发WebService简单实例

    本篇文章将深入探讨如何使用CXF来开发一个简单的“HelloWorld”Web服务实例。 首先,我们需要了解CXF的基本概念。CXF全称为CXF CXF (CXF on XFire),它整合了XFire和 Celtix两个项目,为开发者提供了一种灵活的方式...

    webService(基于cxf)的完整例子

    Web服务在IT行业中扮演着重要的角色,它允许不同的应用程序通过网络进行通信和交换数据。CXF是一个流行的开源Java框架,用于...通过学习这个例子,开发者可以掌握CXF的基本使用方法,进一步拓展到更复杂的Web服务场景。

    Spring + cxf = webservice 完整实例源码免费下载

    Spring + cxf = webservice 完整实例源码免费下载 完全免费。此资源仅为文档提供。 版权为百度文档 "Spring + cxf = webservice 完整实例源码免费下载" 所有。

    cxf webService简单例子

    【标题】"cxf webService简单例子"是一个关于使用Apache CXF框架创建和消费Web服务的基础教程。Apache CXF是一个开源的Java框架,它允许开发者创建和实现符合各种Web服务标准(如SOAP、RESTful)的服务。这个例子将...

    Spring+CXF开发WebService

    使用 CXF 做 webservice 简单例子 Apache CXF 是一个开放源代码框架,提供了用于方便地构建和开发 Web 服务的可靠基础架构。它允许创建高性能和可扩展的服务,您可以将这样的服务部署在 Tomcat 和基于 Spring 的轻...

    CXF实现WebService详解实例

    本篇文章将详细探讨如何使用CXF实现WebService,并通过实例进行深入解析。 **一、CXF简介** Apache CXF是一个强大的开源工具,它提供了多种方式来创建和使用Web服务,包括SOAP、RESTful API、XML以及JSON等。CXF...

    camel-cxf调用和发布webservice例子

    用camel-cxf调用webservice和发布一个webservice接口例子,首先启动QueryServiceMain主函数启动webservice接口,然后启动测试类TestWebservice。例子主要是实现java代码实现camel调用webservice接口

    springboot整合CXF发布webservice和客户端调用

    - 对于客户端调用,可以使用CXF的`JaxWsProxyFactoryBean`创建服务代理对象,然后调用其方法进行服务调用。 4. **项目结构** - `.classpath`和`.project`是Eclipse IDE的项目配置文件。 - `pom.xml`是Maven的...

    JDK+CXF实现webservice简单案例

    在这个"JDK+CXF实现webservice简单案例"中,我们将探讨如何利用Java JDK和Apache CXF框架来创建和消费Web服务。 首先,JDK是Java Development Kit的缩写,它是开发和运行Java应用程序的基础。在这里,JDK提供了基础...

    cxf webservice简单例子 服务端 客户端

    本教程将基于CXF构建一个简单的Web服务,包括服务端和客户端的实现。我们将使用CXF提供的工具和服务接口来创建服务,然后通过客户端调用来验证服务的正确性。 ### 1. CXF简介 CXF是Apache软件基金会的一个项目,它...

    webservice使用cxf的实例

    总的来说,"webservice使用cxf的实例"这个主题涵盖了从基础理论到实际操作的各个环节,包括CXF框架的使用、Web服务的创建与部署、客户端调用、数据绑定、安全性和Spring集成等多个方面。通过学习和实践,开发者可以...

    CXF开发webservice服务端

    本文将详细介绍如何使用Apache CXF框架来构建WebService服务器端,并通过实例演示整个过程。 #### 二、所需工具与环境 在开始之前,确保已准备好以下工具和资源: 1. **Apache CXF**:版本为2.2.6。 2. **Spring WS...

    ssh2+cxf搭建webservice实例

    SSH2+CXF 搭建 WebService 实例详解 SSH(Struts2、Spring、Hibernate)是一个常见的 Java Web 开发框架组合,而 CXF 是一个用于构建和开发 Web 服务的开源框架。本教程将详细介绍如何在 SSH 项目中集成 CXF 来创建...

    webservice天气预报例子cxf实例

    在本例中,“webservice天气预报例子cxf实例”指的是使用Apache CXF框架实现的一个天气预报相关的Web服务示例。 Apache CXF是一个开源框架,它为开发和部署Web服务提供了全面的支持。CXF允许开发者通过Java编程模型...

    CXF WebService实例

    在这个"CXF WebService实例"中,我们将深入探讨如何使用CXF进行Web服务的开发,以及涉及到的一些关键知识点。 首先,让我们从最基础的"HelloWorld"例子开始。在Java中,创建一个CXF WebService的"HelloWorld"示例...

    基于CXF的WebService实例

    这个实例将展示如何使用CXF从头开始创建一个简单的WebService,并在Tomcat服务器上部署和运行。 1. **CXF环境配置** 在开始之前,确保你已经安装了Java JDK和Apache Tomcat。接着,需要将CXF的JAR文件添加到项目的...

    cxf 开发webservice客户端

    在IT行业中,CXF是一个广泛使用的开源框架,用于开发和实现Web服务,无论是SOAP(简单对象访问协议)还是RESTful风格的服务。本篇文章将详细探讨如何利用CXF框架开发一个Web服务客户端,以及如何进行测试。 一、CXF...

Global site tag (gtag.js) - Google Analytics