关于CXFServlet的应用
2015-04-20 23:34
197 查看
一、简介:
在开发javawebservice时,有两个比较流行的框架:axis2和cxf。cxf可以无缝的和spring集成,而axis2需要打包成aar文件,在tomcat下面跑。ApacheCXF是一个开放源代码框架,提供了用于方便地构建和开发Web服务的可靠基础架构。它允许创建高性能和可扩展的服务,您可以将这样的服务部署在Tomcat和基于Spring的轻量级容器中,以及部署在更高级的服务器上,例如Jboss、IBM®WebSphere®或BEAWebLogic。
该框架提供了以下功能:
Web服务标准支持:CXF支持以下Web服务标准:
JavaAPIforXMLWebServices(JAX-WS)
SOAP
Web服务描述语言(WebServicesDescriptionLanguage,WSDL)
消息传输优化机制(MessageTransmissionOptimizationMechanism,MTOM)
WS-BasicProfile
WS-Addressing
WS-Policy
WS-ReliableMessaging
WS-Security
前端建模:CXF提供了前端建模的概念,允许您使用不同的前端API来创建Web服务。API允许您使用简单的工厂Bean并通过JAX-WAS实现来创建Web服务。它还允许您创建动态Web服务客户端。
工具支持:CXF提供了用于在JavaBean、Web服务和WSDL之间进行转换的不同工具。它提供了对Maven和Ant集成的支持,并无缝地支持Spring集成。
RESTful服务支持:CXF支持代表性状态传输(RepresentationalStateTransfer,RESTful)服务的概念,并支持Java平台的JAX-RS实现。(本系列的第2部分将提供有关RESTful服务的更多信息。)
对不同传输和绑定的支持:CXF支持不同种类的传输,从XML到逗号分隔值(CSV)。除了支持SOAP和HTTP协议绑定之外,它还支持JavaArchitectureforXMLBinding(JAXB)和AEGIS数据绑定。
对非XML绑定的支持:CXF支持非XML绑定,例如JavaScriptObjectNotation(JSON)和CommonObjectRequestBrokerArchitecture(CORBA)。它还支持Java业务集成(JavaBusinessIntegration,JBI)体系架构和服务组件体系架构(ServiceComponentArchitecture,SCA)。
codefirst或者xmlfirst:支持使用codefirst或者xmlfirst的方式来创建web服务。
二、以银联无线POS为例,现实简单的CXFServlet应用
(去网上下载CXF的jar包,我下载的是cxf2.7.4的)
1、开发服务的接口类和实现类
接口类:
importjavax.jws.WebService;
publicinterfaceBankServicePortType{
publicjava.lang.StringconsumeApplication(java.lang.Stringmsg);
publicjava.lang.StringtakeApplication(java.lang.Stringmsg);
}
实现类:
importjavax.jws.WebService;
publicclassBankServicePortTypeImplimplementsBankServicePortType{
publicjava.lang.StringconsumeApplication(java.lang.Stringmsg){
System.out.println(msg);
}
publicjava.lang.StringtakeApplication(java.lang.Stringmsg){
System.out.println(msg);
}
2、新增webservice.xml文件,配置如下,并将webservice.xml引入到applicationContext.xml中
applicationContext.xml:
<importresource="webservice.xml"/>
webservice.xml:
<?xmlversion="1.0"encoding="UTF-8"?>
<beansxmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
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://cxf.apache.org/jaxws
http://cxf.apache.org/schemas/jaxws.xsd">
<importresource="classpath:META-INF/cxf/cxf.xml"/>
<importresource="classpath:META-INF/cxf/cxf-extension-soap.xml"/>
<importresource="classpath:META-INF/cxf/cxf-servlet.xml"/>
<jaxws:endpointid="bankService"
implementor="com.isoftstone.pcis.policy.movePos.ws.BankServicePortTypeImpl"
address="/BankService">
</jaxws:endpoint>
</beans>
在开发javawebservice时,有两个比较流行的框架:axis2和cxf。cxf可以无缝的和spring集成,而axis2需要打包成aar文件,在tomcat下面跑。ApacheCXF是一个开放源代码框架,提供了用于方便地构建和开发Web服务的可靠基础架构。它允许创建高性能和可扩展的服务,您可以将这样的服务部署在Tomcat和基于Spring的轻量级容器中,以及部署在更高级的服务器上,例如Jboss、IBM®WebSphere®或BEAWebLogic。
该框架提供了以下功能:
Web服务标准支持:CXF支持以下Web服务标准:
JavaAPIforXMLWebServices(JAX-WS)
SOAP
Web服务描述语言(WebServicesDescriptionLanguage,WSDL)
消息传输优化机制(MessageTransmissionOptimizationMechanism,MTOM)
WS-BasicProfile
WS-Addressing
WS-Policy
WS-ReliableMessaging
WS-Security
前端建模:CXF提供了前端建模的概念,允许您使用不同的前端API来创建Web服务。API允许您使用简单的工厂Bean并通过JAX-WAS实现来创建Web服务。它还允许您创建动态Web服务客户端。
工具支持:CXF提供了用于在JavaBean、Web服务和WSDL之间进行转换的不同工具。它提供了对Maven和Ant集成的支持,并无缝地支持Spring集成。
RESTful服务支持:CXF支持代表性状态传输(RepresentationalStateTransfer,RESTful)服务的概念,并支持Java平台的JAX-RS实现。(本系列的第2部分将提供有关RESTful服务的更多信息。)
对不同传输和绑定的支持:CXF支持不同种类的传输,从XML到逗号分隔值(CSV)。除了支持SOAP和HTTP协议绑定之外,它还支持JavaArchitectureforXMLBinding(JAXB)和AEGIS数据绑定。
对非XML绑定的支持:CXF支持非XML绑定,例如JavaScriptObjectNotation(JSON)和CommonObjectRequestBrokerArchitecture(CORBA)。它还支持Java业务集成(JavaBusinessIntegration,JBI)体系架构和服务组件体系架构(ServiceComponentArchitecture,SCA)。
codefirst或者xmlfirst:支持使用codefirst或者xmlfirst的方式来创建web服务。
二、以银联无线POS为例,现实简单的CXFServlet应用
(去网上下载CXF的jar包,我下载的是cxf2.7.4的)
1、开发服务的接口类和实现类
接口类:
importjavax.jws.WebService;
publicinterfaceBankServicePortType{
publicjava.lang.StringconsumeApplication(java.lang.Stringmsg);
publicjava.lang.StringtakeApplication(java.lang.Stringmsg);
}
实现类:
importjavax.jws.WebService;
publicclassBankServicePortTypeImplimplementsBankServicePortType{
publicjava.lang.StringconsumeApplication(java.lang.Stringmsg){
System.out.println(msg);
}
publicjava.lang.StringtakeApplication(java.lang.Stringmsg){
System.out.println(msg);
}
2、新增webservice.xml文件,配置如下,并将webservice.xml引入到applicationContext.xml中
applicationContext.xml:
<importresource="webservice.xml"/>
webservice.xml:
<?xmlversion="1.0"encoding="UTF-8"?>
<beansxmlns="
xmlns:xsi="
xmlns:jaxws="
xsi:schemaLocation="
<importresource="classpath:META-INF/cxf/cxf.xml"/>
<importresource="classpath:META-INF/cxf/cxf-extension-soap.xml"/>
<importresource="classpath:META-INF/cxf/cxf-servlet.xml"/>
<jaxws:endpointid="bankService"
implementor="com.isoftstone.pcis.policy.movePos.ws.BankServicePortTypeImpl"
address="/BankService">
</jaxws:endpoint>
</beans>
3、在web.xml中配置如下:
<context-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/applicationContext.xml</param-value> </context-param>
<!--银联无限POS-->
<servlet>
<servlet-name>CXFServlet</servlet-name>
<servlet-class>
org.apache.cxf.transport.servlet.CXFServlet
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>CXFServlet</servlet-name>
<!--==这个设置很重要,那么我们的webservice的地址就是http://localhost:8080/yourProgramName/webservice/===-->
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
相关文章推荐
- 关于servlet中出现GET方法不能应用于此url的解决办法
- jsp/servlet/jsf:关于tomcat下应用jms
- 关于TOMCAT APACHE整合后的servlet应用!
- 关于Web容器,servlet容器和web应用的关系
- 关于servlet的一个简单应用
- 关于测试jsp、servlet应用的一道试题
- 关于“Could not open ServletContext resource [/WEB-INF/applicationContext.xml]”解决方案
- 关于iOS6应用中第三方类库不支持armv7s的问题解决
- 关于在前台.aspx页面中应用变量的方法
- PHP中关于系统相关函数的应用
- 关于ContentProvider的理解与简单应用
- 关于举办 2015年 Autodesk 助力云应用项目开发活动通知
- 关于应用的Splash启动页
- 关于__defineGetter__ 和__defineSetter__的说明_应用技巧
- 关于《Java Web开发教程——入门与提高篇(JSP+Servlet)》
- Servlet中的Listener的应用
- Java_乔晓松_Servlet--ServletContext的总结以及应用实例
- 关于smary数组遍历的基本应用
- 关于javaScript Array数组方法的应用
- 关于跨应用读取程序的SharedPreferences