一、框架介绍
1.Apache CXF 是由XFire和 Celtix 两个现有的项目进行了重组而形成的新框架,能够与spring完美衔接。支持WS-Addressing、WS-Policy、WS-RM、WS-Security和WS-I BasicProfile
2.Axis 为早起版本。
3.Axis2是对Axis 进行了彻底的重写的一个新项目了,它使用了新的模块化架构,更方便于功能性的扩展等等。Axis2 支持WS-Addressing、WS-RM、WS-Security和WS-I BasicProfile,WS-Policy将在新版本里得到支持。
二、Axis 的服务端搭建。
与普通的web项目区别为:web.xml里边的sevlert的配置及WEB-INF里边的server-config.wsdd配置文件。
web.xml里边要配置行webservice的映射。
<servlet>
<display-name>Apach-Axis servlet</display-name>
<servlet-name>AxisServlet</servlet-name>
<servlet-class>org.apache.axis.transport.http.AxisServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>AxisServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
然后就是server-config.wsdd配置文件了。
此文件中:
<?xml version="1.0" encoding="UTF-8"?>
<deployment name="defaultClientConfig"
xmlns="http://xml.apache.org/axis/wsdd/"
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"
xmlns:handler="http://xml.apache.org/axis/wsdd/providers/handler">
<globalConfiguration>
<parameter name="disablePrettyXML" value="true"/>
<parameter name="dotNetSoapEncFix" value="true"/>
<parameter name="enableNamespacePrefixOptimization" value="false"/>
<requestFlow>
<handler type="java:org.apache.axis.handlers.JWSHandler">
<parameter name="scope" value="session"/>
</handler>
<handler type="java:org.apache.axis.handlers.JWSHandler">
<parameter name="scope" value="request"/>
<parameter name="extension" value=".jwr"/>
</handler>
<!-- uncomment this if you want the SOAP monitor -->
<!--
<handler type="java:org.apache.axis.handlers.SOAPMonitorHandler"/>
-->
</requestFlow>
<!-- uncomment this if you want the SOAP monitor -->
<!--
<responseFlow>
<handler type="java:org.apache.axis.handlers.SOAPMonitorHandler"/>
</responseFlow>
-->
</globalConfiguration>
<handler type="java:org.apache.axis.handlers.http.URLMapper" name="URLMapper"/>
<handler type="java:org.apache.axis.transport.local.LocalResponder" name="LocalResponder"/>
<handler type="java:org.apache.axis.handlers.SimpleAuthenticationHandler" name="Authenticate"/>
<service name="AdminService" provider="java:MSG">
<namespace>http://xml.apache.org/axis/wsdd/</namespace>
<parameter name="allowedMethods" value="AdminService"/>
<parameter name="enableRemoteAdmin" value="false"/>
<parameter name="className" value="org.apache.axis.utils.Admin"/>
</service>
<service name="Version" provider="java:RPC">
<parameter name="allowedMethods" value="getVersion"/>
<parameter name="className" value="org.apache.axis.Version"/>
</service>
<!-- ======================以上内容一般不需要修改===========================-->
<!-- ======================================================================
Services:Demo,此段包含Sevice配置实例
=======================-->
<!--
示例1: 简单 Service
情境: 包含下例代码中基本属性.所有参数传递均为元数据,即int、float、double、String、boolean等非对象数据;
可以访问此Service中所有的方法
引用: 在C#中借助于IDE引用。
-->
<service name="WSTest1" provider="java:RPC"> <!-- name: 此WebService的名称;provider:工作模式 -->>
<parameter name="className" value="org.tp.SayHello"/><!-- 此Service对应的实现类 -->
<parameter name="allowedMethods" value="*"/><!-- 可以访问这个Service中所有的方法 -->
</service>
<!-- ======================以下内容一般不需要修改===========================-->
<transport name="http">
<parameter name="qs:list"
value="org.apache.axis.transport.http.QSListHandler"/>
<parameter name="qs:method"
value="org.apache.axis.transport.http.QSMethodHandler"/>
<parameter name="qs:wsdl"
value="org.apache.axis.transport.http.QSWSDLHandler"/>
<requestFlow>
<handler type="URLMapper"/>
<handler type="java:org.apache.axis.handlers.http.HTTPAuthHandler">
</handler>
</requestFlow>
</transport>
<transport name="local">
<responseFlow>
<handler type="LocalResponder"/>
</responseFlow>
</transport>
将服务端的业务类配置到上述文件中即可。