注:這是我在網上找到的一篇文章,我按文章的步驟操作,還是有不少問題,在此我進行了修改. 原來文章地址 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內容
然后就可以用相應的工具進行測試了。