一.使用myeclipse 新建一个web项目hello,添加xfire1.2.6的核心类库,再添加commons-httpclient-3.0.jar.
二. 配置xfire的核心servlet:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<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>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
三. 编写webservice接口:IHelloService.java
package cn.webservice;
public interface IHelloService {
public String sayHello(String name);
}
四.编写webservice接口的实现类: HelloServiceImpl.java
package cn.webservice;
public class HelloServiceImpl implements IHelloService {
public String sayHello(String name) {
return "hello,"+name;
}
}
五.配置webservice接口
1.在项目下新建一个与WebRoot同级的文件夹 WebService
2.在WebService下新建一个services.xml,配置前面写的webservice接口
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://xfire.codehaus.org/config/1.0">
<service>
<name>HelloWorldService</name>
<namespace>http://vivianj.org/HelloWorldService</namespace>
<serviceClass>cn.webservice.IHelloService</serviceClass>
<implementationClass>
cn.webservice.HelloServiceImpl
</implementationClass>
<style>wrapped</style>
<use>literal</use>
<scope>application</scope>
</service>
</beans>
六.把项目发布到tomcat上,并启动tomcat,访问路径:http://localhost:8080/hello/services/HelloWorldService?wsdl,如能看到XML格式的wsdl文档,则表示webservice测试成功!
七.编写客户端测试程序:
package cn.client;
import java.net.MalformedURLException;
import java.net.URL;
import org.codehaus.xfire.client.Client;
public class XfireClient {
public static void main(String[] args) {
String webserviceURL="http://localhost:8080/hello/services/HelloWorldService?wsdl";
try {
Client client=new Client(new URL(webserviceURL));
Object[] resutls=client.invoke("sayHello", new Object[]{"wenkun"});
System.out.println((String)resutls[0]);
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
如能输出 hello,wenkun.则表示测试成功.