《推荐-XFire-WebService例子》由会员分享,可在线阅读,更多相关《推荐-XFire-WebService例子(19页珍藏版)》请在金锄头文库上搜索。
1、XFire WebService开发快速起步 XFire WebService开发快速起步环境:XFire-1.2.6JDK1.5MyEclipse 6.5Tomcat-5.5.27Windows XP Professional简体中文版软件下载地址:urlhttp:/repository.codehaus.org/org/codehaus/xfire/xfire-distribution/1.2.6/xfire-distribution-1.2.6.zip/urlurlhttp:/ World例子。以下是开发步骤:1、创建工程打开MyEclipse 6.5,新建一个WebService工程。
2、如下图推荐精选推荐精选然后一路next,直到完成。创建完成后,打开生成的web.xml文件,可以看到,XFire已经配置好了。 XFireServlet org.codehaus.xfire.transport.http.XFireConfigurableServlet 0 XFireServlet /services/* 推荐精选 index.jsp 2、创建WebService服务创建两个个包“wstest.server”和“wstest.client”,用来保存服务端和客户端程序。然后开始创建服务端程序,如下图推荐精选完成后,生成了一个Service的配置services.xml: My
3、Service wstest.server.IMyService wstest.server.MyServiceImpl wrapped literal application 推荐精选也生成了接口和默认实现,改写后如下:package wstest.server; /Generated by MyEclipse public interface IMyService public String sayHello(String user); package wstest.server; /Generated by MyEclipse public class MyServiceImpl imp
4、lements IMyService public String sayHello(String user) return 您好,+user; 至此,服务端代码已经完成。3、测试服务端代码测试依赖与Servlet容器Tomcat,需要将做好的服务端打包部署到tomcat上,然后启动。才可以进行测试。假设你已经配置了Tomcat服务器,并完成了WebService服务端的部署。那么,现在就启动Tomcat,然后:推荐精选输入访问地址:urlhttp:/localhost:8080/xfire126Demo/services/MyService?wsdl/url ,然后go一把!推荐精选推荐精选这
5、样,出现上上面的结果,表明测试成功了。4、生成客户端代码推荐精选推荐精选很郁闷,这个生成的客户端代码一部分跑到服务端的包里面了。真是垃圾,rubbish!但是,这就是MyEclipse的功能,我改变不了。5、客户端测试下面就耐心看怎么用这个客户端代码。打开生成的代码如下:package wstest.client; import .MalformedURLException; import java.util.Collection; import java.util.HashMap; import javax.xml.namespace.QName; import org.codehaus.x
6、fire.XFireRuntimeException; import org.codehaus.xfire.aegis.AegisBindingProvider; import org.codehaus.xfire.annotations.AnnotationServiceFactory; import org.codehaus.xfire.annotations.jsr181.Jsr181WebAnnotations; import org.codehaus.xfire.client.XFireProxyFactory; import org.codehaus.xfire.jaxb2.Jax
7、bTypeRegistry; import org.codehaus.xfire.service.Endpoint; import org.codehaus.xfire.service.Service; import org.codehaus.xfire.soap.AbstractSoapBinding; import org.codehaus.xfire.transport.TransportManager; 推荐精选public class MyServiceClient private static XFireProxyFactory proxyFactory = new XFirePr
8、oxyFactory(); private HashMap endpoints = new HashMap(); private Service service0; public MyServiceClient() create0(); Endpoint MyServicePortTypeLocalEndpointEP = service0 .addEndpoint(new QName(http:/server.wstest, MyServicePortTypeLocalEndpoint), new QName(http:/server.wstest, MyServicePortTypeLoc
9、alBinding), xfire.local:/MyService); endpoints.put(new QName(http:/server.wstest, MyServicePortTypeLocalEndpoint), MyServicePortTypeLocalEndpointEP); Endpoint MyServiceHttpPortEP = service0 .addEndpoint(new QName(http:/server.wstest, MyServiceHttpPort), new QName(http:/server.wstest, MyServiceHttpBi
10、nding), http:/localhost:8080/xfire126Demo/services/MyService); endpoints.put(new QName(http:/server.wstest, MyServiceHttpPort), MyServiceHttpPortEP); public Object getEndpoint(Endpoint endpoint) try return proxyFactory.create(endpoint).getBinding(), (endpoint).getUrl(); catch (MalformedURLException e) throw new XFireRuntimeException(Invalid URL, e); public Object getEndpoint(QName name) Endpoi