• 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);
        }
    }
  • 相关阅读:
    HDU 3123-GCC(递推)
    新交互英语外挂全自己主动版
    BZOJ 2716 Violet 3 天使玩偶 CDQ分治
    关于 FPGA 和 外部芯片接口时序设计
    Ubuntu启动、停止、重新启动MySQL,查看MySQL错误日志、中文编码错误
    Drupal 7 建站学习手记(四):怎样改动Nivo Slider模块的宽高
    Linux下安装Oracle的过程和涉及的知识点-系列4
    游戏开场镜头拉近(Unity3D开发之四)
    并发编程
    给线程发送消息让它执行不同的处理
  • 原文地址:https://www.cnblogs.com/jianlun/p/4668105.html
Copyright © 2020-2023  润新知