Java使用CXF编写的soap webservice接口
2018-02-11 15:21
609 查看
SOAP Webservice基于XML协议,是常用的web服务调用方式。本篇简单记叙使用第三方库CXF发布webservice的过程。
注意,Java发布webservice有多种方法,其中包括使用CXF、axis2等第三方库,和Java自带的jaxws工具。这里使用的是Apache 下的开源项目 CXF第三方库发布Java webservice。
1.下载CXF依赖包(或者使用maven,本篇不使用maven),导入到项目中。
新建Java接口,并且添加一个带参数的方法:package com.lavendor.service;
import javax.jws.WebService;
/**
* cxf接口
* @author admin
*
*/
@WebService
public interface ICXFService {
public String sayHi(String name);
}
注意:@WebService 的注解是必须的,这表示这是一个webservice接口
2.实现上面的接口和对应的方法:package com.lavendor.service;
import javax.jws.WebService;
/**
* 使用CXF框架发布webservice服务
* @author admin
*
*/
@WebService
public class CXFWebSerivce implements ICXFService{
@Override
public String sayHi(String name) {
// TODO Auto-generated method stub
return "Hello,Welcome " + name;
}
}
3.使用CXF发布webservice:package com.lavendor.service;
import org.apache.cxf.endpoint.Server;
import org.apache.cxf.jaxws.JaxWsServerFactoryBean;
/**
* 发布service的类
* @author admin
*
*/
public class Main {
public static void main(String[] args) {
JaxWsServerFactoryBean factory = new JaxWsServerFactoryBean();
factory.setServiceClass(CXFWebSerivce.class);
factory.setAddress("http://localhost:8081/helloworld"
4000
);
Server server = factory.create();
server.start();
}
}
4.运行项目,在打印台看到如下信息,则表明发布成功:二月 11, 2018 2:55:36 下午 org.apache.cxf.wsdl.service.factory.ReflectionServiceFactoryBean buildServiceFromClass
信息: Creating Service {http://service.lavendor.com/}CXFWebSerivceService from class com.lavendor.service.ICXFService
二月 11, 2018 2:55:37 下午 org.apache.cxf.endpoint.ServerImpl initDestination
信息: Setting the server's publish address to be http://localhost:8081/helloworld 二月 11, 2018 2:55:38 下午 org.apache.cxf.wsdl.service.factory.ReflectionServiceFactoryBean buildServiceFromWSDL
信息: Creating Service {http://docs.oasis-open.org/ws-dd/ns/discovery/2009/01}Discovery from WSDL: classpath:/org/apache/cxf/ws/discovery/wsdl/wsdd-discovery-1.1-wsdl-os.wsdl
二月 11, 2018 2:55:38 下午 org.apache.cxf.endpoint.ServerImpl initDestination
信息: Setting the server's publish address to be soap.udp://239.255.255.250:3702
二月 11, 2018 2:55:38 下午 org.apache.cxf.wsdl.service.factory.ReflectionServiceFactoryBean buildServiceFromClass
信息: Creating Service {http://docs.oasis-open.org/ws-dd/ns/discovery/2009/01}DiscoveryProxy from class org.apache.cxf.jaxws.support.DummyImpl
5.打开浏览器,输入如下网址:http://localhost:8081/helloworld?wsdl
![](https://oscdn.geek-share.com/Uploads/Images/Content/202007/06/0820e89b600bf1aa3675f827ab9b26d4)
展示出如上所示的XML报文,则表示webservice发布成功
注意,Java发布webservice有多种方法,其中包括使用CXF、axis2等第三方库,和Java自带的jaxws工具。这里使用的是Apache 下的开源项目 CXF第三方库发布Java webservice。
1.下载CXF依赖包(或者使用maven,本篇不使用maven),导入到项目中。
新建Java接口,并且添加一个带参数的方法:package com.lavendor.service;
import javax.jws.WebService;
/**
* cxf接口
* @author admin
*
*/
@WebService
public interface ICXFService {
public String sayHi(String name);
}
注意:@WebService 的注解是必须的,这表示这是一个webservice接口
2.实现上面的接口和对应的方法:package com.lavendor.service;
import javax.jws.WebService;
/**
* 使用CXF框架发布webservice服务
* @author admin
*
*/
@WebService
public class CXFWebSerivce implements ICXFService{
@Override
public String sayHi(String name) {
// TODO Auto-generated method stub
return "Hello,Welcome " + name;
}
}
3.使用CXF发布webservice:package com.lavendor.service;
import org.apache.cxf.endpoint.Server;
import org.apache.cxf.jaxws.JaxWsServerFactoryBean;
/**
* 发布service的类
* @author admin
*
*/
public class Main {
public static void main(String[] args) {
JaxWsServerFactoryBean factory = new JaxWsServerFactoryBean();
factory.setServiceClass(CXFWebSerivce.class);
factory.setAddress("http://localhost:8081/helloworld"
4000
);
Server server = factory.create();
server.start();
}
}
4.运行项目,在打印台看到如下信息,则表明发布成功:二月 11, 2018 2:55:36 下午 org.apache.cxf.wsdl.service.factory.ReflectionServiceFactoryBean buildServiceFromClass
信息: Creating Service {http://service.lavendor.com/}CXFWebSerivceService from class com.lavendor.service.ICXFService
二月 11, 2018 2:55:37 下午 org.apache.cxf.endpoint.ServerImpl initDestination
信息: Setting the server's publish address to be http://localhost:8081/helloworld 二月 11, 2018 2:55:38 下午 org.apache.cxf.wsdl.service.factory.ReflectionServiceFactoryBean buildServiceFromWSDL
信息: Creating Service {http://docs.oasis-open.org/ws-dd/ns/discovery/2009/01}Discovery from WSDL: classpath:/org/apache/cxf/ws/discovery/wsdl/wsdd-discovery-1.1-wsdl-os.wsdl
二月 11, 2018 2:55:38 下午 org.apache.cxf.endpoint.ServerImpl initDestination
信息: Setting the server's publish address to be soap.udp://239.255.255.250:3702
二月 11, 2018 2:55:38 下午 org.apache.cxf.wsdl.service.factory.ReflectionServiceFactoryBean buildServiceFromClass
信息: Creating Service {http://docs.oasis-open.org/ws-dd/ns/discovery/2009/01}DiscoveryProxy from class org.apache.cxf.jaxws.support.DummyImpl
5.打开浏览器,输入如下网址:http://localhost:8081/helloworld?wsdl
展示出如上所示的XML报文,则表示webservice发布成功
相关文章推荐
- webservice接口常见问题1:客户端使用SOAP方式调用CXF服务时异常
- 使用CXF 开发SOAP 的webService接口客户端
- 将Java编写的WebService接口转换成WSDL文件(CXF)
- 使用CXF实现Webservice的服务接口提供以及相关的客户端实现
- java调用基于SOAP的CXF 框架的WebService客户端和服务器段helloworld例子
- Java使用SOAP获取webservice实例解析
- 使用cxf发布webservice(JavaApplication)
- 【Java通过Cxf创建webService接口】
- Java使用SOAP获取webservice实例解析
- java使用cxf webservice
- java使用soap方式简单实现webservice
- java使用axis2调用webservice接口实例
- .NET 访问JAVA的WebService使用SOAP头
- java的webservice的CXF客户端使用
- Java使用XFire调用WebService接口
- Java使用SOAP获取webservice实例解析
- 使用CXF框架发布SOAP格式的webservice
- java编写webService与使用jquery调用
- Java使用XFire调用WebService接口
- 使用CXF编写WebService