首页
诗词
字典
板报
句子
名言
友答
励志
学校
网站地图
Web前端
Dreamweaver
Fireworks
Flash
ASP
asp.net
PHP
JSP
SEO优化
源码建站
CSS
Web开发
Web前端
JavaScript
vbScript
Ajax
网页设计
跨浏览器开发
高性能WEB开发
Web Service
XML SOAP
当前位置:
首页
>
教程频道
>
网站开发
>
Web前端
>
WebService框架收拾(二) Axis1+Spring
2012-09-27
WebService框架整理(二) Axis1+SpringWebService框架整理(二)?Axis1+Spring?(2010-11-18 16:13:06)转载▼标
WebService框架整理(二) Axis1+Spring
WebService框架整理(二)?Axis1+Spring?
(2010-11-18 16:13:06)
转载
▼
标签:?
杂谈?
文章分类:Java编程
初识Axis1就要把它集成到Spring框架上。一方面是当时的项目要求,在一方面更是我对于Spring情有独钟。?
Axis1+Spring比较简单,这种便利得益于Spring的ServletEndpointSupport类支持。?
相关链接:?
WebService框架整理(一) Axis1?
WebService框架整理(二) Axis1+Spring?
我们将用到以下Jar:?
引用
activation.jar?
axis.jar?
commons-discovery.jar?
commons-logging.jar?
jaxrpc.jar?
log4j-1.2.15.jar?
mail.jar?
wsdl4j.jar?
spring.jar?
主要就是加入了spring.jar包!?
再看看web.xml,加入了Spring的相关内容。大家都熟悉Spring,我就不废话了!?
Xml代码??spring-axis-1 log4jConfigLocation classpath:log4j.xml log4jRefreshInterval 60000 contextConfigLocation /WEB-INF/applicationContext.xml UTF-8 Filter org.springframework.web.filter.CharacterEncodingFilter encoding UTF-8 forceEncoding true UTF-8 Filter public interface CalcService { int add(int a, int b); } " quality="high" allowscriptaccess="always" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer">
??
public?interface?CalcService?{??
??
??????
????int?add(int?a,?int?b);??
??
}??
给出对应的实现内容:?
Java代码?
import?org.zlex.axis.service.CalcService;??
??
??
public?class?CalcServiceImpl?implements?CalcService?{??
??
????@Override??
????public?int?add(int?a,?int?b)?{??
????????return?a?+?b;??
????}??
??
}??
再简单不过的1+1问题!
?
将其注入到Spring的容器中,applicationContext.xml如下所示:?
Xml代码??" quality="high" allowscriptaccess="always" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer">
<?xml?version="1.0"?encoding="UTF-8"?>??
<beans??
????xmlns="http://www.springframework.org/schema/beans"??
????xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"??
????xmlns:context="http://www.springframework.org/schema/context"??
????xsi:schemaLocation="http://www.springframework.org/schema/beans?http://www.springframework.org/schema/beans/spring-beans.xsd??
????????http://www.springframework.org/schema/context?http://www.springframework.org/schema/context/spring-context.xsd">??
????<bean??
????????id="calcService"??
????????class="org.zlex.axis.service.impl.CalcServiceImpl"?/>??
</beans>??
作为spring与axis1对接,需要做一个ServletEndpointSupport继承实现WebService,如下所示:?
Java代码?
import?javax.xml.rpc.ServiceException;??
??
import?org.springframework.context.ApplicationContext;??
import?org.springframework.remoting.jaxrpc.ServletEndpointSupport;??
import?org.zlex.axis.service.CalcService;??
??
??
public?class?WebService?extends?ServletEndpointSupport?{??
??
????private?ApplicationContext?applicationContext;??
????private?CalcService?calcService;??
??
??????
????@Override??
????protected?void?onInit()?throws?ServiceException?{??
????????//?初始化Spirng?配置??
????????applicationContext?=?super.getApplicationContext();??
??
????????calcService?=?(CalcService)?applicationContext.getBean("calcService");??
??
????}??
??
??????
????public?String?add(int?a,?int?b)?{??
????????return?String.valueOf(calcService.add(a,?b));??
????}??
??
}??
这里为了便于在eclipse演示,将返回值定为String类型!?
现在我们将该服务植入Axis中,修改server-config.wsdd文件,在原文件中加入如下内容:?
Xml代码??" quality="high" allowscriptaccess="always" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer">
<!--?自定义服务?-->??
<service??
????name="WebService"??
????provider="java:RPC">??
????<parameter??
????????name="className"??
????????value="org.zlex.axis.WebService"?/>??
</service>??
修改后的server-config.wsdd文件如下所示:?
Xml代码??http://xml.apache.org/axis/wsdd/ " quality="high" allowscriptaccess="always" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer">
<?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="adminPassword"??
????????????value="admin"?/>??
????????<parameter??
????????????name="sendXsiTypes"??
????????????value="true"?/>??
????????<parameter??
????????????name="sendMultiRefs"??
????????????value="true"?/>??
????????<parameter??
????????????name="sendXMLDeclaration"??
????????????value="true"?/>??
????????<parameter??
????????????name="axis.sendMinimizedElements"??
????????????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="Authenticate"??
????????type="java:org.apache.axis.handlers.SimpleAuthenticationHandler"?/>??
????<handler??
????????name="LocalResponder"??
????????type="java:org.apache.axis.transport.local.LocalResponder"?/>??
????<handler??
????????name="URLMapper"??
????????type="java:org.apache.axis.handlers.http.URLMapper"?/>??
????<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>??
????</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>??
????</transport>??
????<transport??
????????name="local">??
????????<responseFlow>??
????????????<handler??
????????????????type="LocalResponder"?/>??
????????</responseFlow>??
????</transport>??
??
????<!--?自定义服务?-->??
????<service??
????????name="WebService"??
????????provider="java:RPC">??
????????<parameter??
????????????name="className"??
????????????value="org.zlex.axis.WebService"?/>??
????</service>??
</deployment>??
我们随机抽取2个数进行求和运算,并验证WebService和本地计算结果是否一致,测试用例WebServiceTest如下:?
查看更多
下一篇
本文网址:
https://www.reader8.com/jiaocheng/20120927/1360471.html
读书人精选
热点排行
jquery的after与insertAfter的差异
牛角尖啊牛角尖
weblogic 认证回绝 Authentication for
菜鸟阅读Servlet源码值得注意的地方
[转]Remote Debugging with Eclipse + W
(四)事件处理——(6)给.ready()回调
(四)事件处理——(8)一个简单的风格
元素正中的几种方法
判断iframe是不是加载完毕的方法(兼容i
velocity获取session值并判断是不是成