首页 > Web开发 > 详细

struts2结合axis开发webservice

时间:2015-12-15 12:24:51      阅读:114      评论:0      收藏:0      [点我收藏+]

第一步:引入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.24\webapps\CHIMSWEB\WEB-INF\attachments"/>
  <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();
	}
	
	
}

  

  

 

struts2结合axis开发webservice

原文:http://www.cnblogs.com/ph123/p/5047551.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!