`
seara
  • 浏览: 624772 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

WebService大讲堂之Axis2(7):将Spring的装配JavaBean发布成WebService

阅读更多

本文为原创,如需转载,请注明作者和出处,谢谢!

上一篇:WebService大讲堂之Axis2(6):跨服务会话(Session)管理

在现今的Web应用中经常使用Spring框架来装载JavaBean。如果要想将某些在Spring中装配的JavaBean发布成WebService,使用Axis2Spring感知功能是非常容易做到的。
在本文的例子中,除了<Tomcat安装目录>\webapps\axis2目录及该目录中的相关库外,还需要Spring框架中的spring.jar文件,将该文件复制到<Tomcat安装目录>\webapps\axis2\WEB-INF\lib目录中。
下面先建立一个JavaBean(该JavaBean最终要被发布成WebService),代码如下:

<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> -->packageservice;
importentity.Person;
publicclassSpringService
{
privateStringname;
privateStringjob;
publicvoidsetName(Stringname)
{
this.name=name;
}
publicvoidsetJob(Stringjob)
{
this.job=job;
}
publicPersongetPerson()
{
Personperson
=newPerson();
person.setName(name);
person.setJob(job);
returnperson;
}
publicStringgetGreeting(Stringname)
{
return"hello"+name;
}
}

其中Person也是一个JavaBean,代码如下:

<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> -->packageentity;
publicclassPerson
{
privateStringname;
privateStringjob;
publicStringgetName()
{
returnname;
}
publicvoidsetName(Stringname)
{
this.name=name;
}
publicStringgetJob()
{
returnjob;
}
publicvoidsetJob(Stringjob)
{
this.job=job;
}
}

将上面两个Java源文件编译后,放到<Tomcat安装目录>\webapps\axis2\WEB-INF\classes目录中。

<Tomcat安装目录>\webapps\axis2\WEB-INF\web.xml文件中加入下面的内容:

<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><listener>
<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的配置文件,内容如下:

<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><?xmlversion="1.0"encoding="UTF-8"?>
<beansxmlns="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/beanshttp://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop-2.5.xsd
http://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx-2.5.xsd"
>
<beanid="springService"class="service.SpringService">
<propertyname="name"value="姚明"/>
<propertyname="job"value="职业男篮"/>
</bean>
</beans>

applicationContext.xml文件中装配了service.SpringService类,并被始化了namejob属性。在配置完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文件,内容如下:

<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><servicename="springService">
<description>
Springaware
</description>
<parametername="ServiceObjectSupplier">
org.apache.axis2.extensions.spring.receivers.SpringServletContextObjectSupplier
</parameter>
<parametername="SpringBeanName">
springService
</parameter>
<messageReceivers>
<messageReceivermep="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参数指定要发布成WebServiceJava类,而是要指定在applicationContext.xml文件中的装配JavaBean的名称(SpringBeanName参数)。

3.services.xml文件中需要通过ServiceObjectSupplier参数指定SpringServletContextObjectSupplier类来获得SpringApplicationContext对象。

下一篇:
WebService大讲堂之Axis2(8):异步调用WebService



国内最棒的Google Android技术社区(eoeandroid),欢迎访问!

《银河系列原创教程》发布

《Java Web开发速学宝典》出版,欢迎定购

分享到:
评论

相关推荐

    WebService大讲堂之Axis2

    WebService大讲堂之Axis2(7):将Spring的装配JavaBean发布成WebService ................................... 26 WebService大讲堂之Axis2(8):异步调用WebService ..................................................

    WebService之AXIS传递javabean.7z

    WebService之AXIS传递javabean

    axis2_WebService_开发指南

    Axis的简单准备 Axis的入门实例 Axis复杂对象类型的WebService ...Axis用Spring的JavaBean发布WebService Axis异步调用WebService Axis 的Module模块 Axis使用SoapMonitar监视WebService的请求和响应信息

    axis2;WebService

    Axis的简单准备 Axis的入门实例 Axis复杂对象类型的WebService ...Axis用Spring的JavaBean发布WebService Axis异步调用WebService Axis 的Module模块 Axis使用SoapMonitar监视WebService的请求和响应信息

    Axis2教程 包含描述目录的内容

    WebService大讲堂之Axis2系列教程 1. 用POJO实现0配置的WebService... 将Spring的装配JavaBean发布成WebService 8. 异步调用WebService 9. 编写Axis2模块(Module) 10. 使用soapmonitor模块监视soap请求与响应消息

    axis2-1.4.1及教程

    1):用POJO实现0配置的WebService 2):复合类型数据的传递 ...7):将Spring的装配JavaBean发布成 8):异步调用WebService 9):编写Axis2模块(Module) 10):使用soapmonitor模块监视soap请求与响应消息

    axis2_webservice

    Axis的简单准备 Axis的入门实例 Axis复杂对象类型的WebService ...Axis用Spring的JavaBean发布WebService Axis异步调用WebService Axis的Module模块 Axis使用SoapMonitar监视WebService的请求和响应信息

    Axis2 WebService 开发指南 技术文档 入门文档

    Axis的简单准备 Axis的入门实例 Axis复杂对象类型的WebService ... Axis用Spring的JavaBean发布WebService Axis异步调用WebService Axis 的Module模块 Axis使用SoapMonitor监视WebService的请求和响应信息

    Webservice之Axis高级编程

    1.1 AXIS第一课:最简单的发布AXIS的Web Service 1.2 AXIS第二课:工程应用中的AXIS的发布方法Stub 1.3 AXIS第三课:AXIS高级应用,使用Handler来增强Web服务的功能 1.4 AXIS第四课:AXIS高级应用,建立安全的AXIS...

    axis2 教程_个人备用文档

    1. 用POJO实现0配置的WebService 2. 复合类型数据的传递 ... 将Spring的装配JavaBean发布成WebService 8. 异步调用WebService 9. 编写Axis2模块(Module) 10. 使用soapmonitor模块监视soap请求与响应消息

    Axis webService 教程.pdf

    1 如何发布自己的webService 2 1.1 即时发布 JWS (Java Web Service) Files - Instant Deployment 2 1.2 定制发布 Custom Deployment - Introducing WSDD 4 2 WSDD的一些高级特性 7 2.1 取消发布一个webService 7 ...

    编程入门_Eclipse教程

    3.1.4. 用Spring创建的JavaBean发布成WebService 29 3.1.5. 异步调用WebService 32 4. Eclipse中安装 Lomboz 35 4.1. 持久化对象与OID 35 4.1.1. 对持久化对象的要求 35 4.1.2. OID 36 5. Eclipse使用技巧 36 5.1. ...

    Axis高级编程

    最简单的发布AXIS的Web Service 工程应用中的AXIS的发布方法Stub AXIS高级应用,使用Handler来增强Web服务的功能 AXIS高级应用,建立安全的AXIS服务 AXIS高级应用,在AXIS服务间传递JavaBean及其安全解决 使用...

Global site tag (gtag.js) - Google Analytics