用XFire开发Java的Webservice:
如果使用MyEclipse开发XFire则相当容易,它提供了非常好用的webservice开发工具.具体操作方法可以参见MyEclipse的文档(可以通过 Help -> Help Contents查看).
下面简单介绍一下手动配置XFire开发Webservice的步骤:
0. 准备:
a) 下载 xfire-distribution-1.2.6.zip;
b) 解压后将 xfire-1.2.6\文件夹中的xfire-all-1.2.6.jar和xfire-1.2.6\lib\文件夹中的所有.jar包添加到自己的工程中去,也可以根据自己的需要相应的去除一些不需要的jar包;
1. 开服务器端:
a) 在src中建立文件夹 META-INF\xfire 和文件 services.xml .该文件的简单示例如下:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://xfire.codehaus.org/config/1.0">
<service>
<name>Test</name>
<serviceClass>cn.com.umessage.webservice.ITest</serviceClass>
<implementationClass>
cn.com.umessage.webservice.impl.TestImpl
</implementationClass>
<style>wrapped</style>
<use>literal</use>
<scope>application</scope>
</service>
</beans>
b) 修改web.xml文件,添加如下内容:
<servlet>
<servlet-name>XFireServlet</servlet-name>
<servlet-class>org.codehaus.xfire.transport.http.XFireConfigurableServlet</servlet-class>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>XFireServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
c) 添加提供webservice服务的Java接口和类,比如cn.com.umessage.webservice.ITest和cn.com.umessage.webservice.impl.TestImpl类.
2. 开发客户端:
a) 开发客户端时还可以使用XFire提供的客户端生成工具,该工具和操作说明可以从XFire站点上取得.手动生成一般都会使用ant来进行,具体步骤可以如下进行:
(1) 建立文件夹 xfire ,然后在该文件夹中创建一个build.xml文件和WsGen文件夹;build.xml文件内容可以如下书写:
<project name="XFire-WsGen" basedir="./WsGen" default="wsgen">
<path id="maven.compile.classpath">
<fileset file="${basedir}/lib/*.jar" />
</path>
<!-- Remove classes directory for clean build -->
<target name="clean" description="Prepare for clean build">
<delete dir="${basedir}/client"/>
<mkdir dir="${basedir}/client"/>
</target>
<target name="wsgen" depends="clean">
<taskdef name='WsGenTask' classname="org.codehaus.xfire.gen.WsGenTask" classpathref="maven.compile.classpath"/>
<WsGenTask outputDirectory="${basedir}/client" wsdl="http://localhost:7001/testWebservice/services/Test?wsdl" package="cn.com.umessage.webservice.client" overwrite="true"/>
</target>
</project>
WsGen文件夹中建立client和lib文件夹,其中client中用来存放运行ant后会自动生成的Java代码,lib中存放xfire的所有相关jar包(xfire-1.2.6\文件夹中的xfire-all-1.2.6.jar和xfire-1.2.6\lib\文件夹中的所有.jar);
(2) 运行控制台窗口,转到xfire文件夹,输入 ant 并运行,这个命令就能自动生成webservice的客户端Java代码;其中webservice地址或者wsdl文档可以在build.xml文件中的<WsGenTask>的wsdl节点处指定.
b) 运行ant后,生成的文件中会存在xxxClient.java文件,如上面的配置会生成TestClient.java文件,这样就能测试该webservice客户端:
TestClient client = new TestClient();
TestPortType service = client.getTestHttpPort();
String str = service.hello("XFire");
System.out.println(str);
如果使用MyEclipse开发XFire则相当容易,它提供了非常好用的webservice开发工具.具体操作方法可以参见MyEclipse的文档(可以通过 Help -> Help Contents查看).
下面简单介绍一下手动配置XFire开发Webservice的步骤:
0. 准备:
a) 下载 xfire-distribution-1.2.6.zip;
b) 解压后将 xfire-1.2.6\文件夹中的xfire-all-1.2.6.jar和xfire-1.2.6\lib\文件夹中的所有.jar包添加到自己的工程中去,也可以根据自己的需要相应的去除一些不需要的jar包;
1. 开服务器端:
a) 在src中建立文件夹 META-INF\xfire 和文件 services.xml .该文件的简单示例如下:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://xfire.codehaus.org/config/1.0">
<service>
<name>Test</name>
<serviceClass>cn.com.umessage.webservice.ITest</serviceClass>
<implementationClass>
cn.com.umessage.webservice.impl.TestImpl
</implementationClass>
<style>wrapped</style>
<use>literal</use>
<scope>application</scope>
</service>
</beans>
b) 修改web.xml文件,添加如下内容:
<servlet>
<servlet-name>XFireServlet</servlet-name>
<servlet-class>org.codehaus.xfire.transport.http.XFireConfigurableServlet</servlet-class>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>XFireServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
c) 添加提供webservice服务的Java接口和类,比如cn.com.umessage.webservice.ITest和cn.com.umessage.webservice.impl.TestImpl类.
2. 开发客户端:
a) 开发客户端时还可以使用XFire提供的客户端生成工具,该工具和操作说明可以从XFire站点上取得.手动生成一般都会使用ant来进行,具体步骤可以如下进行:
(1) 建立文件夹 xfire ,然后在该文件夹中创建一个build.xml文件和WsGen文件夹;build.xml文件内容可以如下书写:
<project name="XFire-WsGen" basedir="./WsGen" default="wsgen">
<path id="maven.compile.classpath">
<fileset file="${basedir}/lib/*.jar" />
</path>
<!-- Remove classes directory for clean build -->
<target name="clean" description="Prepare for clean build">
<delete dir="${basedir}/client"/>
<mkdir dir="${basedir}/client"/>
</target>
<target name="wsgen" depends="clean">
<taskdef name='WsGenTask' classname="org.codehaus.xfire.gen.WsGenTask" classpathref="maven.compile.classpath"/>
<WsGenTask outputDirectory="${basedir}/client" wsdl="http://localhost:7001/testWebservice/services/Test?wsdl" package="cn.com.umessage.webservice.client" overwrite="true"/>
</target>
</project>
WsGen文件夹中建立client和lib文件夹,其中client中用来存放运行ant后会自动生成的Java代码,lib中存放xfire的所有相关jar包(xfire-1.2.6\文件夹中的xfire-all-1.2.6.jar和xfire-1.2.6\lib\文件夹中的所有.jar);
(2) 运行控制台窗口,转到xfire文件夹,输入 ant 并运行,这个命令就能自动生成webservice的客户端Java代码;其中webservice地址或者wsdl文档可以在build.xml文件中的<WsGenTask>的wsdl节点处指定.
b) 运行ant后,生成的文件中会存在xxxClient.java文件,如上面的配置会生成TestClient.java文件,这样就能测试该webservice客户端:
TestClient client = new TestClient();
TestPortType service = client.getTestHttpPort();
String str = service.hello("XFire");
System.out.println(str);