您的位置:首页 > 编程语言 > Java开发

CXF系列一:创建一个简单的web service

2017-11-07 14:26 513 查看

CXF是web service的一种实现方式,关于两者的具体的概念,本文不做具体阐述,详情请参考网上资料。本文接下来将会新建两个2个简单的工程,一个是服务端,一个是客户端,服务端提供接口,客户端调用接口,完成一个简单的交互。

1:工程截图



2:在服务端工程cxf的pom.xml下

[plain] view
plain copy

<dependencies>  

    <dependency>   

        <groupId>org.apache.cxf</groupId>  

        <artifactId>cxf-rt-frontend-jaxws</artifactId>  

        <version>3.1.7</version>  

    </dependency>  

      

    <dependency>  

        <groupId>org.apache.cxf</groupId>  

        <artifactId>cxf-core</artifactId>   

        <version>3.1.7</version>  

    </dependency>  

      

    <dependency>  

        <groupId>org.apache.cxf</groupId>  

        <artifactId>cxf-rt-transports-http-jetty</artifactId>   

        <version>3.1.7</version>  

    </dependency>  

  
129d1
</dependencies>  

3:创建一个HelloWorld接口

[java] view
plain copy

package com.qqw.webservice;  

  

import javax.jws.WebService;  

  

@WebService  

public interface HelloWorld {  

  

    public String say(String str);  

  

}  

4:实现HelloWorld接口

[java] view
plain copy

@WebService  

public class HelloWorldImpl implements HelloWorld{  

  

    @Override  

    public String say(String str) {  

          

        return "hello:"+str;  

    }  

}  

5:提供一个main方法暴露接口

[java] view
plain copy

package com.qqw.webserviceImpl;  

  

import javax.xml.ws.Endpoint;  

import org.apache.cxf.jaxws.JaxWsServerFactoryBean;  

  

import com.qqw.webservice.HelloWorld;  

  

public class Server {  

  

    /** 

     * @param args 

     */  

    public static void main(String[] args) {  

          

        System.out.println("ws is start");  

        HelloWorld hwHelloWorld=new HelloWorldImpl();  

        String address="http://172.16.10.123/helloWorld";//ip地址可以是本机的ip地址或服务器的地址,后面的ws的名称可以随意  

        //Endpoint.publish(address, hwHelloWorld);jdk提供的暴露接口的方法  

        JaxWsServerFactoryBean factoryBean=new JaxWsServerFactoryBean();  

        factoryBean.setAddress(address);  

        factoryBean.setServiceClass(HelloWorld.class);  

        factoryBean.setServiceBean(hwHelloWorld);  

        factoryBean.create();  

        System.out.println("ws is started");  

  

    }  

  

}  

6:点击运行就可以发布,然后去浏览器输入http://172.16.10.123/helloWorld?wsdl



7:客户端的代码不用自己写,可以去apache cxf官网下载,可以自动生成调用的代码,地址:http://cxf.apache.org/



找个文件夹解压,比如在E盘,然后配置环境变量,在path里面加上;E:\apache-cxf-3.1.9\bin,点击确认就行。cmd执行命令:



因为我的客户端工程在F盘下,我要把自动生成的代码放到src/main/java文件夹下面,然后再调用wsdl2java命令就行。

8.在客户端main方法调用

[java] view
plain copy

HelloWorldService hService=new HelloWorldService();  

HelloWorld helloWorld = hService.getHelloWorldPort();  

System.out.println(helloWorld.say("小菜鸟"));  

9:后台日志



至此,简单的CXF创建应用介绍完毕。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  cxf web service java