? ? ?相对来讲,使用XFire发布webService是一种比较简单的方式。
? ? ?首先,访问地址http://xfire.codehaus.org/Download,下载所需的jar包。
class="MsoNormal" style="text-indent: 21.0pt;">新建web项目webServiceXfire,向系统中添加之前下载的文件所包含的jar包。其中包括xfire-all-1.2.6.jar及lib文件夹中所包含的jar文件。?
新建接口类:
package com.sdjxd; /** * @description 简单接口 * @author lizhen */ public interface SayHello { public void sayHello(); public String sayHelloToSomeone(String name); }
? ? ? ? 新建实现类:
package com.sdjxd; /** * @description 简单接口实现类 * @author lizhen */ public class SayHelloImpl implements SayHello{ public void sayHello() { System.out.println("Hello WebService"); } public String sayHelloToSomeone(String name) { System.out.println("Hello " + name); return "Zhen"; } }
在web.xml中增加XFire配置:
<!-- XFire配置 begin --> <servlet> <servlet-name>XFireServlet</servlet-name> <servlet-class> org.codehaus.xfire.transport.http.XFireConfigurableServlet </servlet-class> </servlet> <servlet-mapping> <servlet-name>XFireServlet</servlet-name> <url-pattern>/servlet/XFireServlet/*</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>XFireServlet</servlet-name> <url-pattern>/services/*</url-pattern> </servlet-mapping> <!-- XFire配置 end -->
? ? ? ?在src目录下建文件夹:
? ? ? ?service.xml配置文件:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://xfire.codehaus.org/config/1.0"> <service> <!-- Xfire发布webService名称 --> <name>XFireService</name> <!-- 接口配置--> <serviceClass>com.sdjxd.SayHello</serviceClass> <!-- 实现类配置 --> <implementationClass>com.sdjxd.SayHelloImpl</implementationClass> </service> </beans>
? ? ? ?访问http://127.0.0.1:8080/webServiceXfire/services,可以看到发布的接口服务
? ? ??点击上图的链接wsdl可以看到配置文件
新建项目webServiceXfireClient作为客户端。导入所需的jar包,并编写客户端访问方法:
package com.sdjxd; import java.net.URL; import org.codehaus.xfire.client.Client; public class ComeToSayHi { public static String comeToSay() throws Exception{ String str=""; Client client = new Client(new URL("http://127.0.0.1:8080/webServiceXfire/services/XFireService?wsdl")); Object[] results = client.invoke("sayHelloToSomeone", new Object[] {"Li"}); str = (String) results[0]; return str; } public static void sayHi() throws Exception{ String str=""; Client client = new Client(new URL("http://127.0.0.1:8080/webServiceXfire/services/XFireService?wsdl")); client.invoke("sayHello", new Object[] {}); } public static void main(String args[]) throws Exception { sayHi(); String str = comeToSay(); System.out.println(str); } }
? ? ? ?运行上述方法,可以看到控制台输出,表示接口调用成功。
?