xfire+spring配置webservice实例讲解
来源:互联网 发布:陈小春版鹿鼎记 知乎 编辑:程序博客网 时间:2024/06/05 11:10
web.xml::
<!-- begin xfire --> <servlet> <!-- 配合Spring容器中XFire一起工作的Servlet--> <servlet-name>xfireServlet</servlet-name> <servlet-class>org.codehaus.xfire.spring.XFireSpringServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>xfireServlet</servlet-name> <!-- 在这个URI下开放Web Service服务 --> <url-pattern>/service/*</url-pattern> </servlet-mapping> <!-- end xire -->
xfire-servlet.xml:
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"><beans> <!-- 引入XFire预配置信息 --> <import resource="classpath:org/codehaus/xfire/spring/xfire.xml" /> <!-- Web服务实现类,就是要发布成web服务的pojo,标注了@WebService注解 --> <bean id="userService" class="com.test.xfire.UserServiceImpl" /> <!-- 获得applicationContext中所有bean的JSR181 annotation --> <!-- 该Bean获取Spring容器中所有标注@WebService的Bean --> <bean id="webAnnotations" class="org.codehaus.xfire.annotations.jsr181.Jsr181WebAnnotations" /> <!-- 对标注@WebService的Bean进行处理,完成导出工作 --> <bean id="jsr181HandlerMapping" class="org.codehaus.xfire.spring.remoting.Jsr181HandlerMapping"> <property name="xfire" ref="xfire" /> <property name="webAnnotations" ref="webAnnotations" /> </bean></beans>
package com.test.xfire;public class User{ private String username; private int age; private String hobby; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getHobby() { return hobby; } public void setHobby(String hobby) { this.hobby = hobby; } public String toString() { return "用户:" + username + ",年龄" + age + "时,爱好:" + hobby; }}
package com.test.xfire;import javax.jws.WebService;@WebServicepublic interface IUserService{ public User findUserHobby(@WebParam(name="user") User user) throws Exception;}
package com.test.xfire;import java.util.HashMap;import java.util.Map;import javax.jws.WebService;/** * serviceName是这这个服务的名称,默认为接口实现类的名称,endpointInterface是该类实现的接口的类全名<BR> * 访问:http://localhost:8080/ssh/service/userServiceImpl?wsdl * * @author Administrator */@WebService(serviceName = "userServiceImpl", endpointInterface = "com.test.xfire.IUserService")public class UserServiceImpl implements IUserService{ private static final Map<String, String> mapUser = new HashMap<String, String>(); static { mapUser.put("jg.sun", "篮球"); mapUser.put("lcrystal", "足球"); mapUser.put("s0meb0dy", "游泳"); mapUser.put("猫来猫去", "睡觉"); mapUser.put("小刚", "唱歌"); } public User findUserHobby(User user) throws Exception { if (user == null) { return null; } String hobby = mapUser.get(user.getUsername()); if (hobby == null) { user.setHobby("无"); } else { user.setHobby(hobby); } return user; }}
客户端调用2种方式:
1、通过WSDL文件生成客户端调用程序,先在目录存放WSDL文件
package com.test.xfire.client;import org.codehaus.xfire.client.Client;import org.springframework.core.io.ClassPathResource;import org.springframework.core.io.Resource;import com.test.xfire.IUserService;import com.test.xfire.User;/** * 通过WSDL文件生成客户端调用程序 * * @author Administrator */public class WebServiceClientTestByWsdl{ IUserService iUserService = null; public static void main(String[] args) throws Exception { WebServiceClientTest test = new WebServiceClientTest(); test.testClient(); } public void testClient() throws Exception { String wsdl = "userServiceImpl.wsdl"; // 对应的WSDL文件 Resource resource = new ClassPathResource(wsdl); Client client = new Client(resource.getInputStream(), null); // 根据WSDL创建客户实例 User user = new User(); user.setUsername("猫来猫去"); Object[] objArray = new Object[1]; objArray[0] = user; // 调用特定的Web Service方法 Object[] results = client.invoke("findUserHobby", objArray); System.out.println("result: " + results[0]); }}
2、根据服务地址创建客户端调用程序
webserviceClient.xml
<?xml version="1.0" encoding="GBK"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd"> <bean id ="testWebService" class ="org.codehaus.xfire.spring.remoting.XFireClientFactoryBean"> <property name ="serviceClass"> <value>com.test.xfire.IUserService</value> </property> <property name ="wsdlDocumentUrl"> <value>http://localhost:8080/ssh/service/userServiceImpl?wsdl</value> </property> </bean></beans>
package com.test.xfire.client;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;import com.test.xfire.IUserService;import com.test.xfire.User;/** * 根据服务地址创建客户端调用程序 * * @author Administrator */public class WebServiceClientTest{ IUserService iUserService = null; public static void main(String[] args) { WebServiceClientTest test = new WebServiceClientTest(); test.testClient(); } public void testClient() { ApplicationContext ctx = new ClassPathXmlApplicationContext("webserviceClient.xml"); iUserService = (IUserService) ctx.getBean("testWebService"); try { User user = new User(); user.setUsername("猫来猫去"); System.out.println(iUserService.findUserHobby(user)); } catch (Exception e) { e.printStackTrace(); } }}
转自:http://coach.iteye.com/blog/894159
0 0
- xfire+spring配置webservice实例讲解
- xfire+spring webservice 配置
- xfire webservice spring 集成实例
- xfire webservice spring 集成实例
- WebService开发实例 (Xfire+Spring+Hibernate)
- WebService开发实例 (Xfire+Spring+Hibernate)
- WebService开发实例 (Xfire+Spring+Hibernate)
- WebService开发实例 (Xfire+Spring+Hibernate)
- WebService开发实例 (Xfire+Spring+Hibernate)
- Spring集成XFire的WebService实例
- 手把手教你spring+xfire配置webservice
- spring配置xfire生成webservice接口 和 调用webservice接口
- xfire webservice 实例
- XFire开发WebService实例
- Xfire实现webservice实例
- XFire创建WebService实例
- XFire创建WebService实例
- XFire WebService 开发实例
- maven中央仓库地址
- 单链表的19种基本操作 函数,末尾添加元素
- java 排序算法
- MySql避免重复插入记录方法
- 有意思的字符串查找函数strchr,strrchr,strstr,strrstr
- xfire+spring配置webservice实例讲解
- android Activity实现从底部弹出或滑出选择菜单或窗口
- C++对文件的操作
- 《电路基础》电源变换
- 范围内的变量是什么鬼?
- ScrollView反弹效果 仿小米私密短信效果
- 如果在一个工程中有两个vhd文件,就相当于有两个模块,那么对于这个工程整体的bdf文件生成,怎么把这两个模块都加到同一个bdf文件中。bdf文件中两个模块之间的连线及输入输出,是自己输进去的还是自动生
- Nutch1.11 + Hadoop 2.7.2 + Solr 6.0 问题总结(NoSuchFieldError INSTANCE)
- C#检查Windows是否安装了某个服务的方法