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的,那么就不能使用注解这个功能了.所以这里可以用到 ...
随机推荐
- Selenium-xapth定位
xpath 的定位方法, 非常强大. 使用这种方法几乎可以定位到页面上的任意元素. 什么是xpath xpath 是XML Path的简称, 由于HTML文档本身就是一个标准的XML页面,所以我们可 ...
- linux之文件操作
1. 文件操作思维导图 2. linux系统目录结构及简单说明 linux目录图: root --- 启动Linux时使用的一些核心文件.如操作系统内核.引导程序Grub等. home --- 存储普 ...
- rhel7+apache+c cgi+动态域名实现web访问
1. 申请动态域名/安装no-ip客户端 https://blog.csdn.net/lee244868149/article/details/44095835 2. yum安装httpd 两种方法安 ...
- Winform、WPF、Silverlight、MFC区别与联系
WinForm 在Windows中,诸如窗体绘制等功能由GDI(图形设备接口)实现,放在操作系统内核中.Windows Forms在底层使用的是GDI+.GDI+是GDI的“面向对象包装”,使用C++ ...
- spring源码学习之:springAOP实现底层原理
一:springAOP底层实现是基于动态代理实现的.增强和切面,以及通知.是在动态代理生成的代理类inoke方法中调用实现 //+++++++++++++aop动态代理++++++++++++++++ ...
- linux基础命令复习
1.ls 查看文件和文件夹 1).ls -a 查看文件和文件夹,包括隐藏的 2).ls -l 查看文件和文件夹详情 3).ls -lh 查看文件和文件夹详情,自动生成文件大小单位 4).ls ...
- VUE API 重点
VUE API 重点 生命周期方法 每个组件都有生命周期,是向 ReactJs 学习的. computed 在一个组件声明一个人,人有名,人有姓,输入姓和名.((&--&%--& ...
- art-template前端高性能模板
template.js资源 /*!art-template - Template Engine | http://aui.github.com/artTemplate/*/!function(){fu ...
- 【Http认证方式】——Basic认证
访问请求:http://192.168.2.113:8080/geoserver/rest/workspaces时,浏览器弹出窗口需要输入用户名和密码 ,并且,如果不输入或者输入错误,浏览器返回 ...
- DM8127-UART驱动
一.重要文件 1./arch/arm/plat-omap/include/plat/omap-serial.h ##串口名称 1)宏定义#define OMAP_MAX_HSUART_PORTS ...