第一步:引入axis的依赖jar包
第二步:修改web.xml文件
<listener> <listener-class>org.apache.axis.transport.http.AxisHTTPSessionListener</listener-class> </listener> <servlet> <display-name>Apache-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>/servlet/AxisServlet</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>AxisServlet</servlet-name> <url-pattern>/services/*</url-pattern> </servlet-mapping>
第三步:在struts.properties文件中新增 struts.action.excludePattern=/services/.*,/servlet/AxisServlet
第四部:server-config.wsdd编写
server-config.wsdd代码编写:
<?xml version="1.0" encoding="UTF-8"?> <deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"> <globalConfiguration> <parameter name="sendMultiRefs" value="true"/> <parameter name="disablePrettyXML" value="true"/> <parameter name="adminPassword" value="admin"/> <parameter name="attachments.Directory" value="D:apache-tomcat-6.0.24webappsCHIMSWEBWEB-INFattachments"/> <parameter name="dotNetSoapEncFix" value="true"/> <parameter name="enableNamespacePrefixOptimization" value="false"/> <parameter name="sendXMLDeclaration" value="true"/> <parameter name="attachments.implementation" value="org.apache.axis.attachments.AttachmentsImpl"/> <parameter name="sendXsiTypes" value="true"/> <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> </requestFlow> </globalConfiguration> <handler name="URLMapper" type="java:org.apache.axis.handlers.http.URLMapper"/> <handler name="LocalResponder" type="java:org.apache.axis.transport.local.LocalResponder"/> <handler name="Authenticate" type="java:org.apache.axis.handlers.SimpleAuthenticationHandler"/> <service name="chimsBoneServer" provider="java:RPC"> <parameter name="allowedMethods" value="*"/> <parameter name="className" value="com.zhongzhi.chims.service.chimswebservice.server.ChimsBoneServer"/> <beanMapping languageSpecificType="java:com.zhongzhi.chims.model.EvalBoneAge" qname="ns1:EvalBoneAge" xmlns:ns1="urn:EvalBoneAge"/> </service> <!-- 手机app调用 name="className" value="webservice接口实现类" name="allowedMethods" value="*"表示可以调用类里面的所有方法 --> <service name="ChimsAppImplService" provider="java:RPC"> <parameter name="allowedMethods" value="*"/> <parameter name="className" value="com.zhongzhi.chims.service.App.service.ChimsAppImplService"/> </service> <service name="AdminService" provider="java:MSG"> <parameter name="allowedMethods" value="AdminService"/> <parameter name="enableRemoteAdmin" value="false"/> <parameter name="className" value="org.apache.axis.utils.Admin"/> <namespace>http://xml.apache.org/axis/wsdd/</namespace> <namespace>http://xml.apache.org/axis/wsdd/</namespace> </service> <service name="Version" provider="java:RPC"> <parameter name="allowedMethods" value="getVersion"/> <parameter name="className" value="org.apache.axis.Version"/> </service> <transport name="http"> <requestFlow> <handler type="URLMapper"/> <handler type="java:org.apache.axis.handlers.http.HTTPAuthHandler"/> </requestFlow> <parameter name="qs:list" value="org.apache.axis.transport.http.QSListHandler"/> <parameter name="qs:wsdl" value="org.apache.axis.transport.http.QSWSDLHandler"/> <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:method" value="org.apache.axis.transport.http.QSMethodHandler"/> <parameter name="qs.wsdl" value="org.apache.axis.transport.http.QSWSDLHandler"/> </transport> <transport name="local"> <responseFlow> <handler type="LocalResponder"/> </responseFlow> </transport> </deployment>
下面就可以开始webservice接口开发了
webservice接口:
package com.zhongzhi.chims.service.App.service; /*** * * @author pxh</br> * * 2015-12-9 上午11:50:26</br> * * chims系统与手机APP对接服务 */ public interface ChimsAppInterfaceService extends java.rmi.Remote{ /** * 获取儿童信息 * @param appChildInfo * @throws java.rmi.RemoteException */ public void getChildBasicInfo(java.lang.String childInfoXml) throws java.rmi.RemoteException; /*** * 身高、体重对比 * @param childId 儿童id * @param height 身高 * @param weight 体重 * @param boneAge 骨龄 * @return * @throws java.rmi.RemoteException */ public java.lang.String sendHeightAndWeight(java.lang.String childId,java.lang.String height,java.lang.String weight,String boneAge)throws java.rmi.RemoteException; /*** * 五年长高目标(成长跑道) * @param childId * @param currentHeight * @return * @throws java.rmi.RemoteException */ public java.lang.String longHighTarget(java.lang.String childId,java.lang.String currentHeight)throws java.rmi.RemoteException; /*** * 风险评估 * @param childId * @param riskXml * @return * @throws java.rmi.RemoteException */ public java.lang.String riskAssessment(java.lang.String childId,java.lang.String riskXml) throws java.rmi.RemoteException; }
webservice接口实现类:
package com.zhongzhi.chims.service.App.service; import java.rmi.RemoteException; public class ChimsAppImplService implements ChimsAppInterfaceService { public void getChildBasicInfo(String childInfoXml) throws RemoteException { System.out.println(childInfoXml); } /*** * 儿童身高、体重对比 */ public String sendHeightAndWeight(String childId, String height, String weight, String boneAge) throws RemoteException { //String str="<returns><state>0</state><heightStandard></heightStandard></returns>"; StringBuffer buffer=new StringBuffer(); buffer.append("<returns>"); buffer.append("<state>0</state>"); buffer.append("<heightStandard>84</heightStandard>"); buffer.append("<ageHeight>2</ageHeight>"); buffer.append("<boneAgeHeight>2</boneAgeHeight>"); buffer.append("<weightStandard>34</weightStandard>"); buffer.append("<ageweight>2</ageweight>"); buffer.append("<heightAndWeight>2</heightAndWeight>"); buffer.append("</returns>"); return buffer.toString(); } /*** * 五年成长目标(成长跑道) */ public String longHighTarget(String childId, String currentHeight)throws RemoteException { StringBuffer buffer=new StringBuffer(); buffer.append("<returns>"); buffer.append("<state>0</state>"); buffer.append("<forecastHeights>"); buffer.append("<forecastHeight age="1" targetHeight="65">-161.2</forecastHeight>"); buffer.append("<forecastHeight age="2" targetHeight="71.4">161.2</forecastHeight>"); buffer.append("<forecastHeight age="3" targetHeight="90.8">163.1</forecastHeight>"); buffer.append("<forecastHeight age="4" targetHeight="99.1">164.9</forecastHeight>"); buffer.append("<forecastHeight age="5" targetHeight="107.1">166.7</forecastHeight>"); /*buffer.append("<forecastHeight age='6' targetHeight='114.6'>168.6</forecastHeight>"); buffer.append("<forecastHeight age='7' targetHeight='122.3'>170.6</forecastHeight>"); buffer.append("<forecastHeight age='8' targetHeight='130'>172.7</forecastHeight>"); buffer.append("<forecastHeight age='9' targetHeight='137.3'>174.8</forecastHeight>"); buffer.append("<forecastHeight age='10' targetHeight='144.4'>176.8</forecastHeight>"); buffer.append("<forecastHeight age='11' targetHeight='151.3'>178.7</forecastHeight>"); buffer.append("<forecastHeight age='12' targetHeight='158.9'>180.5</forecastHeight>"); buffer.append("<forecastHeight age='13' targetHeight='166.2'>182.3</forecastHeight>"); buffer.append("<forecastHeight age='14' targetHeight='173.6'>184.2</forecastHeight>"); buffer.append("<forecastHeight age='15' targetHeight='181.5'>+184.2</forecastHeight>");*/ buffer.append("</forecastHeights></returns>"); return buffer.toString(); } /*** * 风险评估 */ public String riskAssessment(String childId, String riskXml)throws RemoteException { StringBuffer buffer=new StringBuffer(); buffer.append("<returns>"); buffer.append("<state>0</state>"); buffer.append("<shortRisk score="60">6</shortRisk>"); buffer.append("<obesityRisk score="40">4</obesityRisk>"); buffer.append("<precociousRisk score="60">6</precociousRisk>"); buffer.append("<diseaseRisk score="100">10</diseaseRisk>"); buffer.append("</returns>"); return buffer.toString(); } }