由于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>
分享到:
相关推荐
【整合XFire与Spring进行Web Service开发】 XFire是一个基于Java的SOAP Web Service框架,而Spring是一个广泛应用的轻量级框架,它提供了依赖注入、面向切面编程等特性。将两者集成可以方便地构建和消费Web Service...
标题 "xfire 与Spring完整集成实例(WebService)" 提示我们关注的是如何将XFire框架与Spring框架整合,以实现Web服务的功能。XFire是一个早期的Java Web Service框架,它提供了快速、轻量级的方式来创建和消费SOAP...
XFire支持多种协议,包括SOAP、REST(Representational State Transfer)、JMS(Java Message Service)等,并且与Spring框架有良好的集成。 三、XFire环境搭建 首先,你需要在项目中引入XFire的依赖库。如果是...
然而,在这个特定的案例中,我们使用的是XFire,因为它在早期被广泛使用,并且与Spring有良好的集成。 1. **安装和配置XFire**: 在开始之前,确保你的开发环境中已经包含了XFire的库。你可以通过Maven或Gradle将...
将XFire与Spring集成,可以方便地在Spring应用中创建和消费Web服务。 **Web服务基础** Web服务基于开放标准,如SOAP(简单对象访问协议)和WSDL(Web服务描述语言),使得服务提供者可以通过HTTP协议暴露功能,服务...
在Web服务领域,Spring提供了对Web服务的支持,可以与XFire无缝集成,允许开发者在Spring环境下创建、配置和管理Web服务。 结合XFire和Spring,有以下两种主要的方式来开发Web服务: 1. **基于注解的方式**:...
- Spring通过`org.springframework.remoting.jaxws`包中的类与XFire进行集成,例如`LocalXFireWebServiceProxyFactoryBean`和`XFireWebServiceExporter`。前者用于创建Web服务客户端代理,后者用于暴露服务。 - ...
“工具”:暗示文章可能介绍了一些用于构建和测试Web服务的工具或库,如XFire,以及如何将这些工具与Spring集成。 【内容详解】 Web服务是一种通过网络交换结构化信息的方式,通常基于SOAP(Simple Object Access ...
标题中的“xfire+spring+webservice+client”是一个关于集成XFire、Spring框架和Web服务客户端的专题,这涉及到Java开发中的一项重要技术——Web服务的消费与提供。在这个主题下,我们将深入探讨以下几个核心知识点...
【标题】中的“webservice xfire整合spring(webservice配置采用注解)”是指将Xfire,一个早期的Web服务框架,与Spring框架结合使用,其中Web服务的配置通过Spring的注解方式进行。这种方式简化了配置,提高了开发...
本篇文章将详细探讨XFire如何用于在MyEclipse环境中开发Web服务,以及它如何与Spring框架集成,同时也会讲解常用的数据格式映射。 1. **XFire简介** XFire是Apache CXF项目的一部分,它提供了基于Java的轻量级Web...
标题“使用xfire+spring构建webservice”指出的是一个关于如何利用XFire和Spring框架创建Web服务的教程。XFire是早先的一个用于构建Web服务的开源Java库,它简化了SOAP(简单对象访问协议)服务的开发。而Spring框架...
这篇博客“Java使用XFire调用WebService接口”显然是讨论如何利用XFire这个开源框架来与Web服务交互。 XFire是Apache CXF项目的前身,它提供了一种简单的方式来创建和消费SOAP Web服务。XFire的强项在于其轻量级和...
为了深入了解和学习,你可以查看这些源代码,研究它们是如何与Spring和XFire集成的,以及如何定义和调用Web服务。 总结起来,XFire和Spring的结合为Java开发者提供了强大的Web服务实现手段。无论选择XML配置还是...
XFire还集成了Spring框架,使得与企业级应用的整合变得更加方便。 **三、XFire的主要特性** 1. **简单易用**:XFire提供了直观的API和XML配置,使得创建和消费WebService变得简单。 2. **高性能**:XFire利用高效的...
在本文中,我们将探讨XFire与Spring框架集成以实现WebService客户端的两种开发方式。XFire是一个流行的Java Web服务实现库,而Spring是一个广泛使用的应用程序框架,可以方便地管理和配置Web服务客户端。 ### 方式...
标题中的“xfire+spring+maven构建webservice服务器和客户端”揭示了本教程将围绕三个主要技术进行讨论:XFire、Spring和Maven。这三者都是Java开发中不可或缺的工具,尤其在构建Web服务方面。 XFire是早期的一个...
**Xfire开发Web服务与Java Web集成实例** 在软件开发中,Web服务是一种基于标准的、平台无关的方式,使得不同的应用程序之间能够交换数据和协同工作。Xfire是早期的一个流行的Web服务框架,它允许开发者快速地创建...