XFire+Spring構建WebService接口服務端備忘


步驟:

1、創建web項目XFireDemo

2、配置web,xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
	http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
	<welcome-file-list>
		<welcome-file>index.jsp</welcome-file>
	</welcome-file-list>

	<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>
		<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>
	<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 XFire 配置 -->
</web-app>


3、/WEB-INF/applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
    "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
    <bean id="HelloWorldBean" class="webservice.HelloWorldImpl"/>
</beans>

4、/WEB-INF/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" />
    <!-- 定義訪問的url -->
    <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
       <property name="urlMap">             
           <map>                 
              <entry key="/HelloWorldService.ws">                  
                  <ref bean="HelloWorldService" />                 
              </entry>             
           </map>         
       </property>     
    </bean>     

    <!-- 使用XFire導出器 -->
    <bean id="baseWebService" class="org.codehaus.xfire.spring.remoting.XFireExporter" lazy-init="false" abstract="true">
       <!-- 引用xfire.xml中定義的工廠 -->
       <property name="serviceFactory" ref="xfire.serviceFactory" />
       <!-- 引用xfire.xml中的xfire實例 -->
       <property name="xfire" ref="xfire" />
    </bean>
    <bean id="HelloWorldService" parent="baseWebService">
       <!-- 業務服務bean -->
       <property name="serviceBean" ref="HelloWorldBean" />
       <!-- 業務服務bean的窄接口類 -->
       <property name="serviceClass" value="webservice.HelloWorld" />
    </bean>
</beans>

5、src/webservice/HelloWorld.java    、 src/webservice/HelloWorldImpl.java 

package webservice;

/**
 *HelloWorld的接口類.
 */
public interface HelloWorld {
	/**
	 *對名字爲name的人打招呼.
	 *@paramname名字
	 *@return返回打招呼的字符串
	 */
	String sayHelloWorld(String name);
}

package webservice;

/**
 *HelloWorld的實現類.
 */
public class HelloWorldImpl implements HelloWorld {
	public String sayHelloWorld(String name) {
		String helloWorld = "hello," + name;
		return helloWorld;
	}
}

6、測試

瀏覽器輸入 :  http://localhost:8080/XFireDemo/HelloWorldService.ws?wsdl





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章