1、服务端
1.1、新建web工程,复制需要的jar包到lib文件夹
1.2、web.xml
- <?xml version="1.0" encoding="UTF-8"?>
- <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaeehttp://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
- <display-name>XFireTest</display-name>
- <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>/services/*</url-pattern>
- </servlet-mapping>
- </web-app>
1.3.1、写service接口
- package service;
- import entity.User;
- public interface IHelloWorld {
- public String getHello();
- public User getUser(User user);
- }
- package service;
- import entity.User;
- public class HelloWorld implements IHelloWorld {
- public String getHello() {
- return "Hello";
- }
- public User getUser(User user) {
- User helloUser = new User();
- helloUser.setName("hello," + user.getName());
- return helloUser;
- }
- }
- package entity;
- public class User {
- private String name;
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- }
1.3.4、写services.xml
services.xml的路径:src/META-INF/xfire/
- <?xml version="1.0" encoding="UTF-8"?>
- <beans>
- <service xmlns="http://xfire.codehaus.org/config/1.0">
- <!-- 服务名称,客户端调用时需要这个 -->
- <name>HelloWorld</name>
- <!-- 一般是网址,意义不大 -->
- <namespace>http://www.hello.com</namespace>
- <!-- 接口类 -->
- <serviceClass>service.IHelloWorld</serviceClass>
- <!-- 实现类 -->
- <implementationClass>service.HelloWorld</implementationClass>
- </service>
- </beans>
服务端程序完成。
1.4、测试服务端
将项目部署到tomcat中,并启动tomcat
在浏览器中输入:
http://localhost:8080/XfireTest/services/HelloWorld?wsdl
看到如下即服务端部署成功
2、写客户端
2.1、客户端和服务端在同一项目中;或者客户端有服务端的接口和实体类,例如:IHelloWorld.java、User.java
路径:/XFireTest/src/client/ClientTest.java
- package client;
- import java.net.MalformedURLException;
- import org.codehaus.xfire.XFireFactory;
- import org.codehaus.xfire.client.XFireProxyFactory;
- import org.codehaus.xfire.service.Service;
- import org.codehaus.xfire.service.binding.ObjectServiceFactory;
- import service.IHelloWorld;
- import entity.User;
- public class ClientTest {
- public static void main(String[] args) throws MalformedURLException {
- Service service = new ObjectServiceFactory().create(IHelloWorld.class);
- XFireProxyFactory factory = new XFireProxyFactory(XFireFactory.newInstance().getXFire());
- String url = "http://localhost:8080/XFireTest/services/HelloWorld";
- IHelloWorld helloWorld = (IHelloWorld)factory.create(service, url);
- //String
- String str = helloWorld.getHello();
- System.out.println(str);
- //User
- User user = new User();
- user.setName("张三");
- String userName = helloWorld.getUser(user).getName();
- System.out.println(userName);
- }
- }
运行结果:
Hello
hello,张三