XFire创建WebService实例
XFire使得在JavaEE应用中发布Web服务变得轻而易举。和其他Web服务引擎相比,XFire的配置非常简单,可以非常容易地和Spring集成。那么XFire怎么创建WebService,下面yjbys小编为大家分享XFire创建WebService简单实例:
一. 使用XFire发布WebService
1. 创建service接口
Java代码
1. package com.test.service;
2. import com.test.service.bean.User;
3.
4. public interface IHelloService {
5. public String sayHello(String name);
6. public User getUser(User user);
7. }
8. }
2.创建Service接口的实现类
Java代码
1. package com.test.service;
2. import com.test.service.bean.User;
3. public class HelloService implements IHelloService{
4. public String sayHello(String name){
5. return "Hello, "+name;
6. }
7. public User getUser(User user) {
8. User userNew = new User();
9. userNew.setId("new:"+user.getId());
10. userNew.setName("new:"+user.getName());
11. return userNew;
12. }
13.}
Java代码
1. package com.test.service.bean;
2. public class User {
3. private String id;
4. private String name;
5. public String getId() {
6. return id;
7. }
8. public void setId(String id) {
9. this.id = id;
10. }
11. public String getName() {
12. return name;
13. }
14. public void setName(String name) {
15. this.name = name;
16. }
17.}
3.在web.xml文件中进行XFire拦截配置,可参照网提供的sample。
Xml代码
1.
2. 3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4. xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 5. http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> 6. 7. 8. 9. 10. org.codehaus.xfire.transport.http.XFireConfigurableServlet 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 4.在class目录下建立META-INF目录,如(META-INF>xifre->services.xml), 在services.xml文件中进行webservice服务的发布,可参照网提供的sample。 Xml代码 1. 2. 3. 4. 5. 6. 7. 8. 5.将xfire的Jar包和相关依赖包拷到系统应用中,在Tomcat下部署应用。 启动tomcat后访问服务(需在应用后加上/services,webservice才会进行拦截): 例:http://localhost:8080/ws2/services。(IE下有时无法显示列表,可用其它浏览器显示或指定接口名称) 界面如下: 点击后查看详细的wsdl文档,不同的浏览器下访问会有区别,展示效果不一致。 二.建立XFire客户端进行调用 1.本地客户端调用,与webservice服务在同一应用。 Java代码 1. package com.test.client; 2. 3. import java.net.MalformedURLException; 4. import org.codehaus.xfire.XFireFactory; 5. import org.codehaus.xfire.client.XFireProxyFactory; 6. import org.codehaus.xfire.service.Service; 7. import org.codehaus.xfire.service.binding.ObjectServiceFactory; 8. import com.test.service.IHelloService; 9. import com.test.service.bean.User; 10. 11.public class ClientTest { 12. public static void main(String args[]) throws MalformedURLException { 13. Service service = new ObjectServiceFactory().create(IHelloService.class); 14. XFireProxyFactory factory = new XFireProxyFactory(XFireFactory 15. .newInstance().getXFire()); 16. String url = "http://localhost:8080/ws2/services/HelloService"; 17. IHelloService helloService = (IHelloService) factory.create(service,url); 18. System.out.println(helloService.sayHello("张三")); 19. User user = new User(); 20. user.setName("张三"); 21. System.out.println(helloService.getUser(user).getName()); 22. } 23.} 执行结果如下: Java代码 1. Hello, 张三 2. new:张三 2. 利用XFire创建build.xml文件生成客户端代码调用webservice服务 2.1在src目录下创建build.properties文件,配置如下: Java代码 1. src.dir=${basedir} 2. lib.dir=D:/myspace/ws2/WebRoot/WEB-INF/lib 3. wsdl.dir=http://localhost:8080/ws2/services/HelloService?wsdl 2.2在src目录下创建build.xml文件,配置如下: Xml代码 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. classpathref="project-classpath" /> 13. 14. package="stub.test.client" overwrite="true"/> 15. 16. 用ant构建生成代码,生成后的目录如下: 2.3编写客户端代码进行调用 Java代码 1. package com.test.client; 2. import stub.test.client.HelloServiceClient; 3. import stub.test.client.HelloServicePortType; 4. import com.test.service.bean.ObjectFactory; 5. import com.test.service.bean.User; 6. 7. public class HelloServiceTest { 8. 9. public static void main(String args[]){ 10. HelloServiceClient service = new HelloServiceClient(); 11. HelloServicePortType portType = service.getHelloServiceHttpPort(); 12. System.out.println(portType.sayHello("张三")); 13. 14. ObjectFactory factory = new ObjectFactory(); 15. User user = factory.createUser(); 16. user.setName(factory.createUserName("张三")); 17. System.out.println(portType.getUser(user).getName().getValue()); 18. } 19.} 执行结果如下: Java代码 1. Hello, 张三 2. new:张三
版权声明:此文自动收集于网络,若有来源错误或者侵犯您的合法权益,您可通过邮箱与我们取得联系,我们将及时进行处理。
本文地址:https://www.gunzhua.com/fanwen/gongzuojihua/709705.html