CXF系列一:创建一个简单的web service
2017-11-07 14:26
513 查看
CXF是web service的一种实现方式,关于两者的具体的概念,本文不做具体阐述,详情请参考网上资料。本文接下来将会新建两个2个简单的工程,一个是服务端,一个是客户端,服务端提供接口,客户端调用接口,完成一个简单的交互。
1:工程截图
![](https://img-blog.csdn.net/20170109145758236?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcGFuZ2xpYW5nX2NzZG4=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
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
![](https://img-blog.csdn.net/20170109151101005?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcGFuZ2xpYW5nX2NzZG4=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
7:客户端的代码不用自己写,可以去apache cxf官网下载,可以自动生成调用的代码,地址:http://cxf.apache.org/
![](https://img-blog.csdn.net/20170109151407900?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcGFuZ2xpYW5nX2NzZG4=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
找个文件夹解压,比如在E盘,然后配置环境变量,在path里面加上;E:\apache-cxf-3.1.9\bin,点击确认就行。cmd执行命令:
![](https://img-blog.csdn.net/20170109151947056?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcGFuZ2xpYW5nX2NzZG4=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
因为我的客户端工程在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:后台日志
![](https://img-blog.csdn.net/20170109152705669?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcGFuZ2xpYW5nX2NzZG4=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
至此,简单的CXF创建应用介绍完毕。
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
- webservice系列——用JDK+CXF创建一个简单的webservice工程
- Android 系列 6.32创建一个简单的应用程序小部件widget
- WCF基础系列1 创建一个简单的WCF应用
- CXF 创建一个简单的Webservice例子
- 创建一个简单的Web Service
- WF4.0入门系列1——创建一个简单的工作流
- Linux Namespace系列(09):利用Namespace创建一个简单可用的容器
- android开发实战系列(06)-- 创建一个简单的用户界面
- WF4.0入门系列2——用代码创建一个简单的工作流
- Silverlight实用窍门系列:30.Silverlight中创建一个最简单的WCF RIA Services访问数据库实例【实例源码+数据库下载】
- 使用Restlet创建一个简单的web service(Creating a simple web service with Restlet)
- android开发系列之一—创建一个简单的webapp
- 使用IDEA创建一个简单的基于Spring Boot的RESTful Web Service
- Google Android开发者文档系列-创建有内容分享特性的应用之添加一个简单的共享action
- 创建一个简单的Web Service应用
- Spring Boot 系列 | 第一篇:快速创建一个简单的应用
- 自学简单的写一个创建TinyXML文件
- 【Java.Web】创建一个简单的Java Web项目
- 最简单直接继承、扩展Object,或者克隆一个Object到能创建多个互不干扰实例的方法