zoukankan      html  css  js  c++  java
  • CXF webservice 一个简单的demo

    新建一个maven项目(or下载cxf所需jar包),pom.xml如下

    1.pom.xml

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <groupId>com.webservice</groupId>
        <artifactId>WebserviceProject</artifactId>
        <packaging>war</packaging>
        <version>0.0.1-SNAPSHOT</version>
        <name>WebserviceProject Maven Webapp</name>
        <url>http://maven.apache.org</url>
        <dependencies>
            <dependency>
                <groupId>org.apache.cxf</groupId>
                <artifactId>cxf-api</artifactId>
                <version>2.5.0</version>
            </dependency>
            <dependency>
                <groupId>org.apache.cxf</groupId>
                <artifactId>cxf-rt-frontend-jaxws</artifactId>
                <version>2.5.0</version>
            </dependency>
            <dependency>
                <groupId>org.apache.cxf</groupId>
                <artifactId>cxf-rt-bindings-soap</artifactId>
                <version>2.5.0</version>
            </dependency>
            <dependency>
                <groupId>org.apache.cxf</groupId>
                <artifactId>cxf-rt-transports-http</artifactId>
                <version>2.5.0</version>
            </dependency>
            
        </dependencies>
        <build>
            <finalName>WebserviceProject</finalName>
        </build>
    </project>

    2.新建一个配置文件application.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
        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://www.springframework.org/schema/context
           http://www.springframework.org/schema/context/spring-context.xsd
           http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd">
    
    
        <bean id="greetingServiceImpl" class="com.webservice.server.GreetingServiceImpl" >
            <property name="excludeName" value="Michael"/>
            <property name="leastPonit" value="10"/>
        </bean>
        <jaxws:endpoint id="greetingService" implementor="#greetingServiceImpl"
        address="/Greeting" >
        </jaxws:endpoint>
    
    </beans>

    3.配置web.xml文件,加载xml和配置url

    <!DOCTYPE web-app PUBLIC
     "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
     "http://java.sun.com/dtd/web-app_2_3.dtd" >
    
    <web-app>
      <display-name>Archetype Created Web Application</display-name>
      <context-param>  
            <param-name>contextConfigLocation</param-name>  
            <param-value>classpath:application.xml</param-value>  
        </context-param> 
        <listener>  
            <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>  
        </listener> 
      <servlet>  
            <servlet-name>CXFServlet</servlet-name>  
            <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>  
            <load-on-startup>1</load-on-startup>  
        </servlet>  
        <servlet-mapping>  
            <servlet-name>CXFServlet</servlet-name>  
    
        <!--==这个设置很重要,那么我们的webservice的地址就是http://localhost:8080/webserviceProject/webservice/Greeting===-->
            <url-pattern>/webservice/*</url-pattern>  
        </servlet-mapping>
    </web-app>

    4 新建server实体类和接口

    Greeting.java

    package com.webservice.server;
    import javax.jws.WebParam;
    import javax.jws.WebService;
    
    import com.webservice.to.WebServiceTo;
    @WebService 
    public interface Greeting { 
       public WebServiceTo greeting(@WebParam(name = "username")String username,@WebParam(name = "point")int point); 
    }

    GreetingServiceImpl.java

    package com.webservice.server;
    
    import javax.jws.WebService;
    
    import com.webservice.to.UserInfo;
    import com.webservice.to.WebServiceTo;
    
    @WebService(endpointInterface = "com.webservice.server.Greeting")
    public class GreetingServiceImpl implements Greeting {
    
        private String excludeName = "Michael";
        private int leastPonit = 5;
    
        public WebServiceTo greeting(String username, int point) {
            String result = "";
            if (excludeName.equals(username)) {
                result = " 您不能重复进行投票!";
            } else {
                result = " 谢谢您的投票!";
                if (point < leastPonit) {
                    result += " 您的投票分数太低!";
                } else {
                    result += " 您的投票分数通过审核!";
                }
            }
            WebServiceTo to = new WebServiceTo();
            to.setResult(result);
            
            UserInfo user = new UserInfo();
            user.setUserName("zhangsan");
            user.setPassword("abcd");
            to.setInfo(user);
            return to;
        }
    
        public String getExcludeName() {
            return excludeName;
        }
    
        public void setExcludeName(String excludeName) {
            this.excludeName = excludeName;
        }
    
        public int getLeastPonit() {
            return leastPonit;
        }
    
        public void setLeastPonit(int leastPonit) {
            this.leastPonit = leastPonit;
        }
    }

    5.server端已经完成,接下来创建一个client端类Test

    GreetingServiceClient.java

    package com.webservice.client;
    
    import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;
    
    import com.webservice.server.Greeting;
    
    public class GreetingServiceClient {
        public static void main(String[] args) {
            // 创建WebService客户端代理工厂
            JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
            // 注册WebService接口
            factory.setServiceClass(Greeting.class);
            // 设置WebService地址
            factory.setAddress("http://localhost:8080/WebserviceProject/webservice/Greeting");
            Greeting greetingService = (Greeting) factory.create();
            System.out.println("invoke webservice...");
            // 1、定义调查投票的变量与内容,用来发送给服务
            String username = "Test";
            int point = 88;
            // 调用方法进行服务消费
            String result = greetingService.greeting(username, point).getResult();
            System.out.println("Result:" + result);
            // 2、传递不一样的调查投票内容
            username = "Michael";
            point = 100;
            // 再次调用方法进行服务消费,得到不一样的结果
            result = greetingService.greeting(username, point).getResult();
            System.out.println("Result:" + result);
            // 3、第三次传递与调用
            username = "Jordan";
            point = 9;
            result = greetingService.greeting(username, point).getResult();
            System.out.println("Result:" + result);
        }
    }
  • 相关阅读:
    12.4案例分析:NASAECS项目
    第12章 CBAM:构架设计决策制定的定量方法
    11.4 Nightingale系统:应用ATAM的案例分析
    第11章 ATAM:一种进行构架评估的综合方法
    第Ⅲ部分 分析构架
    第10章 软件构架重构
    9.5跨视图的文档
    第9章 构架编档
    基于Spring MVC的Web应用开发(三)
    Spring MVC程序中得到静态资源文件css,js,图片文件的路径问题总结
  • 原文地址:https://www.cnblogs.com/jianlun/p/4668105.html
Copyright © 2011-2022 走看看