注:这是我在网上找到的一篇文章,我按文章的步骤操作,还是有不少问题,在此我进行了修改. 原来文章地址 http://www.java-asp.net/java/200601/t_56635.html
用eclipse+xdoclet+axis开发WebService
在eclipse下开发基于axis的WebService其实很简单,但也有不少步骤,以下对每个步骤进行说明
/**
*
* @author honghao
* @axis.service scope = "Request" urn = "TestService"
*/
public class TestService {
/**
* @param name
* @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文件的部署文件。
这里需要注意的是,如果类文件是放在某个包下的时候,我无法生成deploy-TestService.xml文件,但是将类文件放在根路径下就可以生成了,原因不名.
6) 生成server-config.wsdd部署文件.这个文件其实是由axis的一个工具生成的,但是直接运行这个工具太麻烦,所以我们还需要生成一个ant构建文件,使其能自动生成:
在web项目的根路径下新建build.xml,输入以下文本:
<?xml version="1.0" encoding="UTF-8"?>
<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"> <!--dir对应生成文件的位置-->
<classpath refid="axis.lib.path" />
<arg value="server" />
<arg value="${wsdl.dir}/deploy-TestHandler.xml" /> <!--TestHandler对应上面的xml文件名TestService-->
</java>
</target>
</project>
注意:wsdl是刚才生成的deploy-TestService.xml所在的目录,org.apache.axis.utils.Admin是axis提供的工具类,其他路径设置请根据实际项目进行适当调整。
保存后,右击build.xml执行Run->Ant 构建,如果配置正确,则会在WEB-INF目录下生成server-config.wsdd文件
还有ant编译的时候需要axis的lib。
7) 仿造axis提供的sample工程在tomcat中进行部署,在浏览器中输入
http://localhost:8080/axis/services
会列出所有的WebService
输入http://localhost:8080/axis/services/TestService?wsdl
会输出相应的wsdl内容
然后就可以用相应的工具进行测试了。
posted on 2006-09-06 08:24
小小~咖啡豆 阅读(2324)
评论(0) 编辑 收藏 所属分类:
其他