第一类:在一个项目中实现服务端和客户端
第一步:新建一个接口:package pack.java.demo;
public interface IHelloWorld {
public String hello(String name);
}
第二步:接口实现类package pack.java.demo;
public class Hello implements IHelloWorld {
@Override
public String hello(String name) {
if (null == name){
return "How are you Guest";
}
return "How are you , " + name;
}
}
第三步:在src下新建META-INF/xfire/service.xml
service.xml具体内容
HelloWorld_FristXFire
http://pack.java.demo/Hello
pack.java.demo.IHelloWorld
pack.java.demo.Hello
request
第四步:配置web.xml文件
Xfile
org.codehaus.xfire.transport.http.XFireConfigurableServlet
0
Xfile
/servlet/XFireServlet/*
Xfile
/service/*
第五步:写客户端测试:package pack.java.demo.cilent;
import java.net.MalformedURLException;
import org.codehaus.xfire.client.XFireProxyFactory;
import org.codehaus.xfire.service.Service;
import org.codehaus.xfire.service.binding.ObjectServiceFactory;
import pack.java.demo.IHelloWorld;
public class XFireCilentDemo {
public static void main(String[] args) {
String url="http://localhost:8080/z_xfire/service/HelloWorld_FristXFire";
Service serviceModel=new ObjectServiceFactory().create(IHelloWorld.class);
try {
IHelloWorld service=(IHelloWorld)new XFireProxyFactory().create(serviceModel, url);
String resultString=service.hello("lucifur");
System.out.println(resultString);
} catch (MalformedURLException e) {
e.printStackTrace();
}
}
}
部署项目,运行客户端类,打印 how are you lucifur
启动项目后,在浏览器中输入
http://localhost:8080/z_xfire/service/HelloWorld_FristXFire?wsdl
可以测试webservice,是否成功
第二类:在两个不同的服务器下的两个项目之间的webservice调用
按照第一类的建立两个项目,分别为A和B(本机的话,可以修改端口号,实现两个项目处于不同的服务器)
A:http://localhost:8080/A_xfire/service/A_FristXFire?wsdl
B:http://localhost:9080/B_xfire/service/B_FristXFire?wsdl
假如B的webservice要调用A的webservice,按照以下步骤
一:启动A的服务器
二:选中B的项目,右击new->other->web services->web service client
-->输入http://localhost:8080/A_xfire/service/A_FristXFire?wsdl-->finish
实现以上操作,会发现在B项目下多了一个包,包里装了5个类文件
三:在B的接口实现类的方法里,可以实例化生成上面自动生成以proxy结尾的类的类对象,从而调用A里的接口实现类里的方法。
四:启动B服务器,执行,B里的客户端。查看控制台打印。
由最代码官方编辑于2015-3-16 13:47:57