struts2结合axis开发webservice
第一步:引入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的更多相关文章
- 6. 使用Axis开发WebService程序
转自:http://www.itkeyword.com/doc/7529577946427268306/Apache-Servlet-WebSOAPWebService 所谓Web Service就是 ...
- Axis1.4开发webservice个人笔记
Axis1.4开发webservice SOAP 是基于 XML 的简易协议,SOAP 即Simple Object Access Protocol(简单对象访问协议),可使应用程序在 HTTP 之上 ...
- 【知识积累】服务器端获取客户端的IP地址(当客户端调用由Axis开发的WebService)
一.前言 由于项目中一个小的模块需要获取客户端的IP地址以保证安全调用webservice接口,项目中客户端使用C#编写,服务器端使用Java编写,服务器端与客户端采用Axis开发的WebServic ...
- Java开发Webservice的组件
参考:http://bbs.csdn.net/topics/390900831 转自:http://blog.csdn.net/dragoo1/article/details/50759222 htt ...
- Apache axis2 + Eclipse 开发 WebService
yd小结注意:1.axis2的2个插件的版本必须与引入的jar包匹配,如果不同则可能报以下错误 “没有实现序列化方法”或 “org.apache.axis2.databinding.utils.wri ...
- Java开发WebService的几种方法--转载
webservice的应用已经越来越广泛了,下面介绍几种在Java体系中开发webservice的方式,相当于做个记录. 1.Axis2 Axis是apache下一个开源的webservice开发组件 ...
- java开发webservice的几种方式(转载)
webservice的应用已经越来越广泛了,下面介绍几种在Java体系中开发webservice的方式,相当于做个记录. 1.Axis2方式 Axis是apache下一个开源的webservice开发 ...
- java开发webservice的几种方式
webservice的应用已经越来越广泛了,下面介绍几种在Java体系中开发webservice的方式,相当于做个记录. 1.Axis2 Axis是apache下一个开源的webservice开发组件 ...
- axis1.4开发webservice服务端(快速入门)-基于jdk1.4
写在前面: 现在有很多开发webservice的方法以及框架,什么cxf等,但是这些在你编写服务类的时候都要用到注解这个功能.如果现在的jdk是1.4的,那么就不能使用注解这个功能了.所以这里可以用到 ...
随机推荐
- 关于socket绑定INADDR_ANY
其中INADDR_ANY就是指定地址为0.0.0.0的地址,这个地址事实上表示不确定地址,或“所有地址”.“任意地址”. 一般情况下,如果你要建立网络服务器,则你要通知服务器操作系统:请在某地址 xx ...
- mac 电脑学习笔记 -
新买了个mac mini,第一次用mac,有点linux基础,借此机会记录一下自己的学习过程. 1.个人设置文件 .profile export LS_OPTIONS='--color=auto' # ...
- LINUX 命令—netstat [简单实用]
1.--当我们在检查程序是否启动或者网络状况的时候 会查看本机活跃的端口,就需要这个命令: |--"netstat – Print network connections, routing ...
- 动态加载css、js引用
在js代码中动态的加载js.css文件的引用 function addJsCssByLink(type,url) { var doc=document; if(type="js") ...
- HihoCoder 1104 : Suzhou Adventure(树形DP)
Suzhou Adventure 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 Little Hi is taking an adventure in Suzhou n ...
- test20181219 奇怪的函数
题意 奇怪的函数 [问题描述] 使得x^x达到或超过n位数字的最小正整数x是多少? [文件输入] 输入一个正整数n(n<=2*10^9). [文件输出] 输出使得x^x达到n位数字的最小正整数x ...
- loj 572 Misaka Network 与求和 —— min_25筛
题目:https://loj.ac/problem/572 推式子:https://www.cnblogs.com/cjoieryl/p/10150718.html 又学习了一下杜教筛hh: 原来 u ...
- (转)android adb pull and push
adb命令下pull的作用是从手机端向电脑端拷文件. 命令:adb pull /sdcard/**.txt D:\ 说明:将手机卡中的某个文本文件 ...
- JVM知识整理和学习(转载并修改)
JVM是虚拟机,也是一种规范,他遵循着冯·诺依曼体系结构的设计原理. 冯·诺依曼体系结构中,指出计算机处理的数据和指令都是二进制数,采用存储程序方式不加区分的存储在同一个存储器里,并且顺序执行,指令由 ...
- OPCDAAuto.dll的C#使用方法浅析
上次研究了.Net版本的OPC API dll,这次我采用OPCDAAuto.dll来介绍使用方法.以下为我的源代码,有详细的注释无需我多言.编译平台:VS2008SP1.WINXP.KEPServe ...