在eclipse下开发基于axis的WebService其实很简单,但也有不少步骤,以下对每个步骤进行说明
准备工作
1) 下载JBossIDE,用JBossIDE配置和运行xdoclet将会非常方便
2) 下载axis,不必多说,这是必不可少的实现步骤
1) 创建一个web项目(可以用手头的任务工具),将axis库文件导入到该项目中。
2) 创建一个纯Java类,用于实现WebService功能
3) 在这个Java类中,使用xdoclet的axis标签,用于指示生成webservice部署文件
/**
*
* @author honghao
* @axis.service scope = "Request" urn = "TestService"
*/
public class TestService {
/**
* @param hello
* @axis.method
*/
public String test(String name){
return "hello " + name;
}
}
其中@axis.service表示TestService作为服务类,@axis.method表示输出test()方法作为WebService.
4) 配置xdoclet
打开project->properties,在XDoclet Configurations中添加一个新的配置,可以任意取名,此处为"webservice",在这个配置中添加ejbdoclet,在其中再添加fileset用于指定对哪些文件执行xdoclet,和axisdeploy,axisdeploy不用进行任何设置。在ejbdoclet中需要指定destdir生用于指示生成的文件所在的路径。
5) 运行xdoclet.右击项目工程,执行Run Xdoclet菜单,如果配置没有错误的话,应该在目标路径下生成deploy-TestService.xml,这是一个axis用于生成server-config.wsdd文件的部署文件。
6) 生成server-config.wsdd部署文件.这个文件其实是由axis的一个工具生成的,但是直接运行这个工具太麻烦,所以我们还需要生成一个ant构建文件,使其能自动生成:
在web项目的根路径下新建build.xml,输入以下文本:
<?xml version="1.0" encoding="UTF-8"?>
<project default="deploy" name="WSDD Generator" basedir=".">
<property name="axis_lib_path" value="${axis.lib}"/>
<property name="wsdl.dir" location="wsdl" />
<path id="axis.lib.path">
<fileset dir="${axis_lib_path}">
<include name="*.jar" />
</fileset>
</path>
<path id="project.classpath">
<pathelement location="wsdl"/>
</path>
<target name="deploy">
<java classname="org.apache.axis.utils.Admin" fork="true" dir="WEB-INF">
<classpath refid="axis.lib.path" />
<arg value="server" />
<arg value="${wsdl.dir}/deploy-TestHandler.xml" />
</java>
</target>
</project>
注意:wsdl是刚才生成的deploy-TestService.xml所在的目录,org.apache.axis.utils.Admin是axis提供的工具类,其他路径设置请根据实际项目进行适当调整。
保存后,右击build.xml执行Run->Ant 构建,如果配置正确,则会在WEB-INF目录下生成server-config.wsdd文件
7) 仿造axis提供的sample工程在tomcat中进行部署,在浏览器中输入
http://localhost:8080/axis/services
会列出所有的WebService
输入http://localhost:8080/axis/services/TestService?wsdl
会输出相应的wsdl内容
然后就可以用相应的工具进行测试了。