CXF框架学习,发布webservice服务
2017-09-21 15:04
567 查看
笔记:
CXF框架,发布webservice服务,并使用客户端远程访问WebserviceApache CXF是一个开园的Services框架,CXF帮助您来构建和开发 Services这些Services可以支持多种协议,比如SOAP、POST/HTTP、RESTful HTTP CXF大大简化了Service可以天然的和Spring进行无缝集成1.CXF介绍:soa框架是Celtrix(ESB框架)和XFile(webservice)合并而成,并且捐给了apache核心是org.apache.cxf.Bus(总线),类似于Spring的ApplicationContext默认是依赖于SpringApache CXF发行包中的jar,如果全部放到lib中,需要JDK1.6及以上,否则会报JAX-WS版本不一致的问题CXF内置了Jetty服务器,他是servlet容器,好比tomcat2.CXF特点与Spring、Servlet做了无缝对接,CXF框架里面集成了Servlet容器Jetty;支持注解的方式来发布WebService能够显示webservice的服务列表能够添加拦截器:输入拦截器、输出拦截器、输入日志信息拦截器、输出日志拦截器、用户权限认证的拦截器3.配置CXF--客户端访问发布:org.apache.cxf.frontend.ServerFactoryBean;//不够规范org.apache.cxf.jaxws.JaxWsServerFactoryBean;//可以用注解 推荐
4.jar包地址:http://download.csdn.net/download/qq510372845/9988794
也可以到apache官网下载
例子:实现:根据排名查询开发语言
package com.zhijiao.lkm.language;
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;
@WebService(serviceName="languageManager")
public interface LanguageService {
/**
* 可以修改返回类型、方法明、方法参数
* @param position
* @return
*/
//@WebMethod(operationName="getlang")
public @WebResult(name="languageResult")String getLanguage(@WebParam(name="position")int position);
}
CXF框架,发布webservice服务,并使用客户端远程访问WebserviceApache CXF是一个开园的Services框架,CXF帮助您来构建和开发 Services这些Services可以支持多种协议,比如SOAP、POST/HTTP、RESTful HTTP CXF大大简化了Service可以天然的和Spring进行无缝集成1.CXF介绍:soa框架是Celtrix(ESB框架)和XFile(webservice)合并而成,并且捐给了apache核心是org.apache.cxf.Bus(总线),类似于Spring的ApplicationContext默认是依赖于SpringApache CXF发行包中的jar,如果全部放到lib中,需要JDK1.6及以上,否则会报JAX-WS版本不一致的问题CXF内置了Jetty服务器,他是servlet容器,好比tomcat2.CXF特点与Spring、Servlet做了无缝对接,CXF框架里面集成了Servlet容器Jetty;支持注解的方式来发布WebService能够显示webservice的服务列表能够添加拦截器:输入拦截器、输出拦截器、输入日志信息拦截器、输出日志拦截器、用户权限认证的拦截器3.配置CXF--客户端访问发布:org.apache.cxf.frontend.ServerFactoryBean;//不够规范org.apache.cxf.jaxws.JaxWsServerFactoryBean;//可以用注解 推荐
4.jar包地址:http://download.csdn.net/download/qq510372845/9988794
也可以到apache官网下载
例子:实现:根据排名查询开发语言
package com.zhijiao.lkm.language;
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;
@WebService(serviceName="languageManager")
public interface LanguageService {
/**
* 可以修改返回类型、方法明、方法参数
* @param position
* @return
*/
//@WebMethod(operationName="getlang")
public @WebResult(name="languageResult")String getLanguage(@WebParam(name="position")int position);
}
package com.zhijiao.lkm.language; import org.apache.cxf.frontend.ServerFactoryBean; import org.apache.cxf.jaxws.JaxWsServerFactoryBean; /** * 开发语言排行榜描述服务 * @author lenovo * */ public class LanguageServiceImpl implements LanguageService { /* (non-Javadoc) * @see com.zhijiao.lkm.language.LanguageService#getLanguage(int) */ @Override public String getLanguage(int postion) { String language = null; switch (postion) { case 1: language = "java"; break; case 2: language = "c"; break; case 3: language = "Objective-C"; break; case 4: language = "C#"; break; default: break; } return language; } /** * 通过cxf框架 ServerFactoryBean 发布webservice * @param address * @param languageService */ private void testWebService1(String address,LanguageService languageService) { ServerFactoryBean serverFactoryBean = new ServerFactoryBean(); serverFactoryBean.setAddress(address);// serverFactoryBean.setServiceClass(LanguageService.class);//对外提供webservice的业务类或者接口,有接口的就写接口,没有接口的就写类 serverFactoryBean.setServiceBean(languageService);//服务的实现bean serverFactoryBean.create(); System.out.println("地址:"+address); } /** * 通过 框架发布webservice * @param address * @param languageService */ private void testWebService2(String address,LanguageService languageService) { JaxWsServerFactoryBean jaxWsServerFactoryBean = new JaxWsServerFactoryBean(); jaxWsServerFactoryBean.setAddress(address); jaxWsServerFactoryBean.setServiceClass(LanguageService.class); jaxWsServerFactoryBean.setServiceBean(languageService); jaxWsServerFactoryBean.create(); System.out.println("地址:"+address); } /** 通过cxf框架发布webservice * 1.ServerFactoryBean * --不设置注解就可以发布webservice服务,但是不够规范,不支持注解,不可以通过注解的方式来修改wsdl在标签信息 * --不支持拦截器在添加 * 2.JaxWsServerFactoryBean * @param args */ public static void main(String[] args) { LanguageService languageService = new LanguageServiceImpl(); String address="http://127.0.0.1:8080/ws/cxf/languangeService"; LanguageServiceImpl service = new LanguageServiceImpl(); //service.testWebService1(address,languageService); service.testWebService2("http://127.0.0.1:8080/ws/cxf/languangeService2",languageService); } }
相关文章推荐
- Spring 集成CXF框架发布Webservice服务 和 使用jdk生成Webservice clinet
- WebService的CXF框架与Spring的整合发布服务入门
- 使用CXF框架,发布webservice服务,并使用客户端远程访问webservice
- webservice(三) 使用JDK的EndPoint和cxf框架分别发布webservice服务
- 用java语言,不用任何框架发布一个基于WSDL的WebService服务
- Hello Mr.J——用CXF框架发布WebService
- spring boot整合cxf发布webservice服务和spring boot整合cxf客户端调用webservice服务
- webservice--CXF发布REST的服务
- webservice--CXF+Spring整合发布REST的服务
- 使用cxf,spring,mybatis框架完成restful风格的webservice服务
- 转:CXF学习笔记一:如何创建、发布和访问基于CXF的服务
- webservice--cxf和spring结合,发布restFull风格的服务
- CXF发布webService、tomcat用户验证、axis2(http/https)调用服务
- 利用resteasy框架构建rest webservice----第四波:resteasy与spring真正集成发布我们的restful webservice 服务(实例、教程)
- cxfspring boot整合cxf发布webservice服务和cxf客户端调用
- CXF学习笔记(1)-HelloWorld!-发布webservice
- 用cxf框架在ssm架构中发布webservice
- 转:CXF学习笔记二:如何在Tomcat中创建、发布和访问基于CXF的服务
- 使用CXF(JaxWsServerFactoryBean、ServerFactoryBean)编码的方式发布WebService服务
- cxf+spring发布webservice服务(服务器端)