WebService大讲堂之Axis2(7):将Spring的装配JavaBean发布成WebService
在现今的Web 应用中经常使用Spring 框架来装载JavaBean 。如果要想将某些在Spring 中装配的JavaBean 发布成WebService ,使用Axis2 的Spring 感知功能是非常容易做到的。
在本文的例子中,除了<Tomcat 安装目录>\webapps\axis2 目录及该目录中的相关库外,还需要Spring 框架中的spring.jar 文件,将该文件复制到<Tomcat 安装目录>\webapps\axis2\WEB-INF\lib 目录中。
下面先建立一个JavaBean (该JavaBean 最终要被发布成WebService ),代码如下:
import entity.Person;
public class SpringService
{
private String name;
private String job;
public void setName(String name)
{
this.name = name;
}
public void setJob(String job)
{
this.job = job;
}
public Person getPerson()
{
Person person = new Person();
person.setName(name);
person.setJob(job);
return person;
}
public String getGreeting(String name)
{
return "hello " + name;
}
}
其中Person也是一个JavaBean,代码如下:
public class Person
{
private String name;
private String job;
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
public String getJob()
{
return job;
}
public void setJob(String job)
{
this.job = job;
}
}
将上面两个Java源文件编译后,放到<Tomcat安装目录>\webapps\axis2\WEB-INF\classes目录中。
在<Tomcat安装目录>\webapps\axis2\WEB-INF\web.xml文件中加入下面的内容:
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
在<Tomcat安装目录>\webapps\axis2\WEB-INF目录中建立一个applicationContext.xml文件,该文件是Spring框架用于装配JavaBean的配置文件,内容如下:
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
<bean id="springService" class="service.SpringService">
<property name="name" value="姚明" />
<property name="job" value="职业男篮" />
</bean>
</beans>
在applicationContext.xml文件中装配了service.SpringService类,并被始化了name和job属性。在配置完SpringService类后,就可以直接在程序中FileSystemXmlApplicationContext类或其他类似功能的类读取applicationContext.xml文件中的内容,并获得SpringService类的对象实例。但现在我们并不这样做,而是将SpringService类发布成WebService。
在<Tomcat安装目录>\webapps\axis2\WEB-INF\lib目录中有一个axis2-spring-1.4.1.jar文件,该文件用于将被装配JavaBean的发布成WebService。在D盘建立一个axi2-spring-ws目录,并在该目录中建立一个META-INF子目录。在META-INF目录中建立一个services.xml文件,内容如下:
<description>
Spring aware
</description>
<parameter name="ServiceObjectSupplier">
org.apache.axis2.extensions.spring.receivers.SpringServletContextObjectSupplier
</parameter>
<parameter name="SpringBeanName">
springService
</parameter>
<messageReceivers>
<messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out"
class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
</messageReceivers>
</service>
在Windows控制台进入axi2-spring-ws目录,并使用jar命令将axi2-spring-ws目录中的内容打包成axi2-spring-ws.aar,然后将该文件复制到<Tomcat安装目录>\webapps\axis2\WEB-INF\services目录中,启动Tomcat后,就可以访问该WebService了,访问方式与前面几篇文章的访问方式相同。获得wsdl内容的URL如下:
http://localhost:8080/axis2/services/springService?wsdl
在将Spring中的装配JavaBean发布成WebService需要注意以下几点:
1. 由JavaBean编译生成的.class文件需要放在WEB-INF\classes目录中,或打成.jar包后放在WEB-INF\lib目录中,而WEB-INF\services目录中的.aar包中不需要包含.class文件,而只需要包含一个META-INF目录,并在该目录中包含一个services.xml文件即可。
2. services.xml的配置方法与前几篇文章的配置方法类似,只是并不需要使用ServiceClass参数指定要发布成WebService的Java类,而是要指定在applicationContext.xml文件中的装配JavaBean的名称(SpringBeanName参数)。
3. 在services.xml文件中需要通过ServiceObjectSupplier参数指定SpringServletContextObjectSupplier类来获得Spring的ApplicationContext对象。
http://www.blogjava.net/nokiaguy/archive/2009/01/archive/2009/01/archive/2009/01/archive/2009/01/archive/2009/nokiaguy/archive/2009/02/archive/2009/02/13/254499.html
WebService大讲堂之Axis2(7):将Spring的装配JavaBean发布成WebService相关推荐
- WebService大讲堂之Axis2(3):使用services.xml文件发布WebService
用Axis2 实现Web Service ,虽然可以将POJO 类放在axis2\WEB-INF\pojo 目录中直接发布成Web Service ,这样做不需要进行任何配置,但这些POJO 类不能在 ...
- WebService大讲堂之Axis2(6):跨服务会话(Session)管理
在<WebService大讲堂之Axis2(5):会话(Session)管理>一文中介绍了如何使用Axis2来管理同一个服务的会话,但对于一个复杂的系统,不可能只有一个WebService ...
- WebService大讲堂之Axis2(4):二进制文件传输
在< WebService大讲堂之Axis2(2):复合类型数据的传递 >中讲过,如果要传递二进制文件(如图像.音频文件等),可以使用byte[] 作为数据类型进行传递,然后客户端使用RP ...
- WebService大讲堂之Axis2(1):用POJO实现0配置的WebService
Axis2 是一套崭新的WebService 引擎,该版本是对Axis1.x 重新设计的产物.Axis2 不仅支持SOAP1.1 和SOAP1.2 ,还集成了非常流行的REST WebService ...
- SAP ECC EHP7 RFC 发布成WebService
http://www.cnblogs.com/mingdashu/p/6877622.html 1.说明介绍 本文将RFC发布成WebService的详细步骤 不介绍如何创建rfc. 2.WebSer ...
- WebService大讲堂之Axis2(5):会话(Session)管理
WebService给人最直观的感觉就是由一个个方法组成,并在客户端通过SOAP协议调用这些方法.这些方法可能有返回值,也可能没有返回值.虽然这样可以完成一些工具,但这些被调用的方法是孤立的,当一个方 ...
- WebService大讲堂之Axis2(8):异步调用WebService
在前面几篇文章中都是使用同步方式来调用WebService.也就是说,如果被调用的WebService方法长时间不返回,客户端将一直被阻塞,直到该方法返回为止.使用同步方法来调用WebService ...
- WebService大讲堂之Axis2(2):复合类型数据的传递
在实际的应用中,不仅需要使用WebService 来传递简单类型的数据,有时也需要传递更复杂的数据,这些数据可以被称为复合类型的数据.数组与类(接口)是比较常用的复合类型.在Axis2 中可以直接使用 ...
- WebService大讲堂之Axis2(9):编写Axis2模块(Module)
Axis2可以通过模块(Module)进行扩展.Axis2模块至少需要有两个类,这两个类分别实现了Module和Handler接口.开发和使用一个Axis2模块的步骤如下: 1. 编写实现Module ...
最新文章
- ImageView 控制图片大小
- 深入.NET 4.0之,LazyT点滴
- java servletcontext_Java ServletContext对象用法解析
- [JS]视频总结-第三部分_深入javascript
- 【图像修复】浅析:图像修复中的TV模型
- IIS 网站服务器性能优化指南
- Activity中的任务和返回站
- 唯品会Java核心项目VJTools开源了
- json学习系列(7)JSONBuilder的用法
- imx6 i2c分析
- 如何保证投票公平_从声音玩具淘汰、五条人复活,我看到了《乐队的夏天》的不公平...
- 熊猫烧香当年到底有多残忍?
- Python电影推荐系统
- IC前端设计使用的EDA软件
- 手把手教你配置国内镜像源
- 有没有不收费的恢复数据软件下载 分享人性化数据恢复工具
- MATLAB | 全网唯一 ,MATLAB绘制阴影柱状图(填充斜线)
- 周未特别节目《前赤壁赋》
- java中explain什么意思_explain详解
- LDUOJ spj 修改
热门文章
- 软件测试用python一般用来做什么-做软件测试的, python应该掌握成怎么样 ?
- 我在学python-我在大学毕业后学习Linux、python的一些经验
- 自学python推荐书籍同时找哪些来实践-机器学习:Python实践 PDF 原书完整版
- python3基础语法-Python3入门(三)——Python基础语法
- python填写excel-Python向excel中写入数据的方法
- python语言入门m-Python -m参数原理及使用方法解析
- python 单词发音-在python中的单词上拆分语音音频文件
- python写文件读文件-Python文件读写
- 8_Markdown和LaTex的使用中的一些小技巧
- 推荐!国外程序员整理的 C++ 资源大全(https://github.com/fffaraz/awesome-cpp)