在现今的 Web应用中经常使用 Spring框架来装载 JavaBean。如果要想将某些在 Spring中装配的 JavaBean发布成 WebService,使用 Axis2的 Spring感知功能是非常容易做到的。
在本文的例子中,除了 <Tomcat安装目录 >\webapps\axis2目录及该目录中的相关库外,还需要 Spring框架中的 spring.jar文件,将该文件复制到 <Tomcat安装目录 >\webapps\axis2\WEB-INF\lib目录中。
下面先建立一个 JavaBean(该 JavaBean最终要被发布成 WebService),代码如下:
package service;
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,代码如下:
package entity;
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 >
< 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的配置文件,内容如下:
<? 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/spring-beans-2.5.xsd
http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
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 >