`
wujianjun
  • 浏览: 144080 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

java webservice之xfire与spring2集成(三)

阅读更多

由于xfire的支持库中是以spring1.2.6.jar 作为spring 的支持库所以这种方式不能正常的集成.

所以:

1: 删除xfire下的spring1.2.6. jar再加入spring2的支持库。

2:在web.xml中编写如下代码

 

 <!-- 配置文件路径 开始-->
 <context-param>
  <param-name>contextConfigLocation</param-name>
  <param-value>
   classpath:applicationContext.xml,
   classpath:org/codehaus/xfire/spring/xfire.xml</param-value>
 </context-param>
 <context-param>
  <param-name>log4jConfigLocation</param-name>
  <param-value>classpath:log4j.properties</param-value>
 </context-param>


 <!-- 启动时加载SpringContextServlet-->
 <listener>
  <listener-class>org.springframework.web.context.ContextLoaderListener
  </listener-class>
 </listener>
 <listener>
  <listener-class>org.springframework.web.util.Log4jConfigListener
  </listener-class>
 </listener>
 <listener>
  <listener-class>org.springframework.web.util.IntrospectorCleanupListener
  </listener-class>
 </listener>


 <!-- XFire 配置-->
 <servlet>
  <servlet-name>XFireServlet</servlet-name>
  <servlet-class>org.codehaus.xfire.spring.XFireSpringServlet
  </servlet-class>
 </servlet>
 <servlet-mapping>
  <servlet-name>XFireServlet</servlet-name>
  <url-pattern>/servlet/XFireServlet/*</url-pattern>
 </servlet-mapping>
 <servlet-mapping>
  <servlet-name>XFireServlet</servlet-name>
  <url-pattern>/services/*</url-pattern>
 </servlet-mapping>

classpath:org/codehaus/xfire/spring/xfire.xml是一定要加入到context-param中的.

3: 编写服务的接口和具体的实现类.举例如下:

package com.wujianjun.xfire.spring;

import java.util.List;

import com.wujianjun.xfire.domain.Person;

public interface IPersonService {
	Person getMyInfo(String name);
	String sayHello(String name);
	List<Person> getPersons(String name);
}

 

package com.wujianjun.xfire.spring;

import java.util.ArrayList;
import java.util.List;

import com.wujianjun.xfire.domain.Person;

public class PersonServiceImpl implements IPersonService {
	
	private String job;

	public void setJob(String job) {
		this.job = job;
	}

	@Override
	public Person getMyInfo(String name) {
		Person res = new Person();
		res.setJob(job);
		res.setName(name);
		return res;
	}
	
	@Override
	public String sayHello(String name) {
		return "你好: "+name+",job="+job;
	}

	@Override
	public List<Person> getPersons(String name) {
		List<Person> res = new ArrayList<Person>();
		Person p = new Person();
		p.setJob("卖饼的");
		p.setName("大郎");
		res.add(p);
		p = new Person();
		p.setJob("卖水的");
		p.setName(name);
		res.add(p);
		return res;
	}

}

 

4: 编写applicationContext.xml文件在里面进行配置:

 

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd" >
<beans>
 <bean id="personService" class="com.wujianjun.xfire.spring.PersonServiceImpl">
  <property name="job" value="JAVA" />
 </bean>
 <bean name="PersonService" class="org.codehaus.xfire.spring.ServiceBean" >
        <property name="serviceBean" ref="personService" />
        <property name="serviceClass" value="com.wujianjun.xfire.spring.IPersonService" /> 
  </bean> 
 
</beans>

5:发布程序,启动服务器访问http://localhost:8080/xfire/services/则可以看到我们发布的服务。如果我们做了配置而没有显示服务,我们要看一下我们applicationContext.xml里面的bean 是否有lazy-init="false"的。如果有,则我们要把以上的服务配置改成

 

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd" >
<beans>
 <bean id="personService" class="com.wujianjun.xfire.spring.PersonServiceImpl" lazy-init="false">
  <property name="job" value="JAVA" />
 </bean>
 <bean name="PersonService" class="org.codehaus.xfire.spring.ServiceBean" lazy-init="false">
        <property name="serviceBean" ref="personService" />
        <property name="serviceClass" value="com.wujianjun.xfire.spring.IPersonService" /> 
  </bean> 
 
</beans>

点击旁边的wsdl则可以访问到对应的wsdl文件了。

再通过我们前面的调用就可以了。

 

如果有复杂类型的返回值,则要在对应接口的同一个包下建立一个InterfaceName.aegis.xml文件其对应的写法如下:

*.aegis.xml文件的方法映射编写
1、void setList(int id ,java.util.List,boolean persist);
 <method name="setList"  >
        <parameter index="1" componentType="java.lang.String" />
        <parameter index="2" class="boolean" />
    </method>
2、Collection getCollection();
 <method name= "getCollection" >
        <return-type componentType="java.lang.Double" />
    </method>
3、Map getGiftList() ;
 <method name= "getGiftList" >
  <return-type keyType= "org.codehaus.xfire.NiceChild" componentType= "org.codehaus.xfire.Present" >
    </method>
4、  public List getListOfListOfDoubles {
     List l = new ArrayList();
     List doubles = new ArrayList();
     doubles.add(new Double (1.0));
     l.add(doubles);
     return l;
 }
 <mapping>
     <method name= "getListofListofDoubles" >
       <return-type componentType="#someDoubles" />
     </method>
     <component name="someDoubles" class="java.util.List" componentType="java.lang.Double" />
 </mapping>

分享到:
评论
2 楼 wujianjun 2011-12-15  
对不起,我不明白你说的复杂对象参数指的是什么?

通过cqwujianjun@163.com联系我
1 楼 jiaguwen123 2011-12-03  
请问,如果是服务端需要传入复杂对象参数,客户端要怎样写?

相关推荐

    整理xfire和spring的集成 web service 面向服务编程 java

    【整合XFire与Spring进行Web Service开发】 XFire是一个基于Java的SOAP Web Service框架,而Spring是一个广泛应用的轻量级框架,它提供了依赖注入、面向切面编程等特性。将两者集成可以方便地构建和消费Web Service...

    xfire 与Spring完整集成实例(WebService)

    标题 "xfire 与Spring完整集成实例(WebService)" 提示我们关注的是如何将XFire框架与Spring框架整合,以实现Web服务的功能。XFire是一个早期的Java Web Service框架,它提供了快速、轻量级的方式来创建和消费SOAP...

    java webservice基于xfire实例

    XFire支持多种协议,包括SOAP、REST(Representational State Transfer)、JMS(Java Message Service)等,并且与Spring框架有良好的集成。 三、XFire环境搭建 首先,你需要在项目中引入XFire的依赖库。如果是...

    spring+xfire( 编写webservice完整配置+案例)

    然而,在这个特定的案例中,我们使用的是XFire,因为它在早期被广泛使用,并且与Spring有良好的集成。 1. **安装和配置XFire**: 在开始之前,确保你的开发环境中已经包含了XFire的库。你可以通过Maven或Gradle将...

    webservice xfire jar包 spring

    将XFire与Spring集成,可以方便地在Spring应用中创建和消费Web服务。 **Web服务基础** Web服务基于开放标准,如SOAP(简单对象访问协议)和WSDL(Web服务描述语言),使得服务提供者可以通过HTTP协议暴露功能,服务...

    xfire+spring开发webservice

    在Web服务领域,Spring提供了对Web服务的支持,可以与XFire无缝集成,允许开发者在Spring环境下创建、配置和管理Web服务。 结合XFire和Spring,有以下两种主要的方式来开发Web服务: 1. **基于注解的方式**:...

    webservice xfire spring2.0完整实例

    - Spring通过`org.springframework.remoting.jaxws`包中的类与XFire进行集成,例如`LocalXFireWebServiceProxyFactoryBean`和`XFireWebServiceExporter`。前者用于创建Web服务客户端代理,后者用于暴露服务。 - ...

    webservice spring xfire的实例

    “工具”:暗示文章可能介绍了一些用于构建和测试Web服务的工具或库,如XFire,以及如何将这些工具与Spring集成。 【内容详解】 Web服务是一种通过网络交换结构化信息的方式,通常基于SOAP(Simple Object Access ...

    Java使用XFire调用WebService接口

    这篇博客“Java使用XFire调用WebService接口”显然是讨论如何利用XFire这个开源框架来与Web服务交互。 XFire是Apache CXF项目的前身,它提供了一种简单的方式来创建和消费SOAP Web服务。XFire的强项在于其轻量级和...

    xfire+spring+webservice+client

    标题中的“xfire+spring+webservice+client”是一个关于集成XFire、Spring框架和Web服务客户端的专题,这涉及到Java开发中的一项重要技术——Web服务的消费与提供。在这个主题下,我们将深入探讨以下几个核心知识点...

    webservice xfire整合spring(webservice配置采用注解)例子

    【标题】中的“webservice xfire整合spring(webservice配置采用注解)”是指将Xfire,一个早期的Web服务框架,与Spring框架结合使用,其中Web服务的配置通过Spring的注解方式进行。这种方式简化了配置,提高了开发...

    xfire-webservice数据格式及集成spring

    本篇文章将详细探讨XFire如何用于在MyEclipse环境中开发Web服务,以及它如何与Spring框架集成,同时也会讲解常用的数据格式映射。 1. **XFire简介** XFire是Apache CXF项目的一部分,它提供了基于Java的轻量级Web...

    使用xfire+spring构建webservice

    标题“使用xfire+spring构建webservice”指出的是一个关于如何利用XFire和Spring框架创建Web服务的教程。XFire是早先的一个用于构建Web服务的开源Java库,它简化了SOAP(简单对象访问协议)服务的开发。而Spring框架...

    webservice(xfire)+spring的二种实现方式

    为了深入了解和学习,你可以查看这些源代码,研究它们是如何与Spring和XFire集成的,以及如何定义和调用Web服务。 总结起来,XFire和Spring的结合为Java开发者提供了强大的Web服务实现手段。无论选择XML配置还是...

    xfire与spring集成案例

    本案例将详细介绍如何将XFire与Spring集成,构建一个高效的Web服务系统。 首先,我们需要理解XFire的基本概念。XFire是基于Axis2和JAX-WS规范的轻量级Web服务框架,它提供了一种简单的方式来创建、发布和调用Web...

    WebService之XFire开发文档和代码

    XFire还集成了Spring框架,使得与企业级应用的整合变得更加方便。 **三、XFire的主要特性** 1. **简单易用**:XFire提供了直观的API和XML配置,使得创建和消费WebService变得简单。 2. **高性能**:XFire利用高效的...

    XFire与Spring集成WebService客户端的两种开发方式.pdf

    在本文中,我们将探讨XFire与Spring框架集成以实现WebService客户端的两种开发方式。XFire是一个流行的Java Web服务实现库,而Spring是一个广泛使用的应用程序框架,可以方便地管理和配置Web服务客户端。 ### 方式...

    xfire+spring+maven构建webservice服务器和客户端

    标题中的“xfire+spring+maven构建webservice服务器和客户端”揭示了本教程将围绕三个主要技术进行讨论:XFire、Spring和Maven。这三者都是Java开发中不可或缺的工具,尤其在构建Web服务方面。 XFire是早期的一个...

Global site tag (gtag.js) - Google Analytics