MyEcipse实现XFire+Spring

xiaoxiao2026-03-17  6

<!--StartFragment -->

 1.MyEclipse下新建Web Service项目,选择Xfire......

 

 2.编写Service,分别写接口类和其实现类。

接口类:

package edu.tyut.caiqm.services;//Generated by MyEclipse

public interface IHello {  public String example(String message);  public String sayHello(String s);}

 

实现类:

package edu.tyut.caiqm.services;//Generated by MyEclipse

public class HelloImpl implements IHello {  public String example(String message) {  return message; }

 public String sayHello(String s) {  return "Hello, "+s+" !"; }  }

 

 3.加入对Spring的支持,这里选择Spring 1.2版本。

 

4.编写配置文件。

     4.1 Web.xml(加入对Spring的监听和XFire的Servlet)

<?xml version="1.0" encoding="UTF-8"?><web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.5" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee   http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">  <context-param>        <param-name>contextConfigLocation</param-name>        <param-value>            classpath:org/codehaus/xfire/spring/xfire.xml                    /WEB-INF/applicationContext.xml        </param-value>    </context-param>           <listener>        <listener-class>            org.springframework.web.context.ContextLoaderListener        </listener-class>    </listener><!--    <servlet>    <servlet-name>XFireServlet</servlet-name>    <servlet-class>org.codehaus.xfire.transport.http.XFireConfigurableServlet</servlet-class>    <load-on-startup>0</load-on-startup>  </servlet>    -->    <servlet>        <servlet-name>XFireServlet</servlet-name>        <servlet-class>             org.springframework.web.servlet.DispatcherServlet             <!--  org.codehaus.xfire.spring.XFireSpringServlet   -->        </servlet-class>    </servlet>    <servlet-mapping>    <servlet-name>XFireServlet</servlet-name>    <url-pattern>/services/*</url-pattern>  </servlet-mapping>  <welcome-file-list>    <welcome-file>index.jsp</welcome-file>  </welcome-file-list></web-app>

 

4.2  Spring配置文件:

  <?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="mathBean" class="edu.tyut.caiqm.services.HelloImpl" />

</beans>

 

4.3 XFire服务定义配置:

文件名为:XFireServlet-servlet.xml   绿色标记部分为web.xml中org.springframework.web.servlet.DispatcherServlet 项配置的名称。

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN""http://www.springframework.org/dtd/spring-beans.dtd"><beans>    <bean        class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">        <property name="urlMap">            <map>                <entry key="/MathService">                        服务名                    <ref bean="math" />                </entry>            </map>        </property>    </bean>    <bean id="math"        class="org.codehaus.xfire.spring.remoting.XFireExporter">        <property name="serviceFactory">            <ref bean="xfire.serviceFactory" />        </property>        <property name="xfire">            <ref bean="xfire" />        </property>        <property name="serviceBean">            <ref bean="mathBean" />        </property>        <property name="serviceClass">            <value>edu.tyut.caiqm.services.IHello</value>                   接口的全路径        </property>    </bean></beans>

5. 目录结构为:

6. 测试部分:

6.1 先测试wsdl: 启动Tomcat后,浏览器中输入:http://localhost:9090/ServicesSpring/services/MathService?wsdl

6.2 编写测试类:

package edu.tyut.caiqm.Client;

import org.codehaus.xfire.XFireFactory;import org.codehaus.xfire.client.XFireProxyFactory;import org.codehaus.xfire.service.Service;import org.codehaus.xfire.service.binding.ObjectServiceFactory;

import edu.tyut.caiqm.services.IHello;

public class test { public static void main(String [] args){  Service servModel=new ObjectServiceFactory().create(IHello.class);  XFireProxyFactory factory=new XFireProxyFactory(XFireFactory.newInstance().getXFire());      String endpoint="http://localhost:9090/ServicesSpring/services/MathService";  try{   IHello service=(IHello)factory.create(servModel, endpoint);   String s=service.sayHello("caiqm");   System.out.println(s);  }catch(Exception e){   System.out.println("error");  } }}结果:Hello, caiqm !

相关资源:webservice xfire整合spring(webservice配置采用注解)例子
转载请注明原文地址: https://www.6miu.com/read-5046068.html

最新回复(0)