在学习之前,一直以为WebService就是一个工具,在两个服务器之间建立一个通信,帮我们把需要传输的数据组织成规范的XML数据并发送到目的地,实际情况也确实是这样的,不过更高级一点的是,XFire不但可以帮我们生成XML发送,而且可以在接收了xml之后还可以直接返回对象给我们用。
环境配置
1. jdk1.6
2. MyEclipse7.5
3. jar包全部使用MyEclipse自带
步骤
我们先让WebService跑起来,看看它到底长什么样~~
1. 建立Web项目XFire
2. 配置web.xml
1)方法1:首先要配置一个contextConfigLocation,告诉Spring应该加载哪些配置文件
然后配置ContextLoaderListener和IntrospectorCleanupListener两个监听器
最后配置一个XFireSpringServlet就可以了
2)方法2:还有一种配置方式,就是使用Spring的DispatcherServlet来配置XFire监听。
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"version="2.4"xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"><display-name>XFireService</display-name><!-- begin Spring配置 --><context-param><param-name>contextConfigLocation</param-name><param-value>/WEB-INF/applicationContext.xml,/WEB-INF/xfire-servlet.xml</param-value></context-param><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener><listener><listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class></listener><!-- end Spring配置 --><!-- 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服务 页面访问方式为:http://localhost:8888/XFire/service--><url-pattern>/service/*</url-pattern></servlet-mapping><!-- end XFire 配置 --><!--这里提供一种使用Spring来配置XFire的方式页面访问方式为http://localhost:8888/XFire/HelloWorldService.ws?wsdl与xfire-servlet.xml中的urlMap配置相对应,两种方式可以自由选择--><servlet><servlet-name>xfire</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class></servlet><servlet-mapping><servlet-name>xfire</servlet-name><url-pattern>*.ws</url-pattern></servlet-mapping>
</web-app>
3. 配置/WEB-INFO/xfire-servlet.xml
1)方法1:这个文件用来配置具体的XFire服务,所有的服务都要在这个文件里声明。指定服务的名字和具体实现的接口和类。
2)方法2:这里也可以使用Spring的SimpleUrlHandlerMapping来配置一个urlMap,与web.xml中的DispatcherServlet配合使用。
<?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" /> <!-- 定义访问的url --><bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"><property name="urlMap"><map><entry key="/HelloWorldService.ws"><ref bean="HelloWorldService" /></entry><entry key="/DoAJobService.ws"><ref bean="DoAJobService" /></entry></map></pro