当前位置:编程学习 > JAVA >>

axis2开发webservice之将Spring的装配JavaBean发布成WebService

 前些阵子刚好学会了spring,现在来把axis2和spring结合一下,这也是做企业开发的时候必须的,结合教程来学习一遍。    

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

 

[java] 
<span style="font-size:14px;">package springWS; 
 
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; 
    } 

</span> 
   其中Person也是一个JavaBean,代码如下:

[java]
<span style="font-size:14px;">package springWS; 
 
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; 
    } 

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

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

[html] 
<span style="font-size:14px;"><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> 
</span> 
    在<Tomcat安装目录>\webapps\axis2\WEB-INF目录中建立一个applicationContext.xml文件,该文件是Spring框架用于装配JavaBean的配置文件,内容如下:

[html] 
<span style="font-size:14px;"><?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: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="shi" /> 
     <property name="job" value="payment" /> 
  </bean>    
</beans> 
</span> 
      在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文件,内容如下:

[html]
<span style="font-size:14px;"><service name="springService"> 
    <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>      
</span> 

 

      在Windows控制台进入axi2-spring-ws目录,并使用jar命令将axi2-spring-ws目录中的内容打包成axi2-spring-ws.aar,然后将该文件复制到<Tomcat安装目录>\webapps\axis2\WEB-INF\services目录中,启动Tomcat后,就可以访

补充:Web开发 , 其他 ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,