`
小笨熊
  • 浏览: 63740 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

如何用xfire做一个webService用jaxb2绑定

阅读更多
我是一个SOA新学者,用xfire的jaxb2绑定做了一个例子,总是报错,也不清楚为什么了!
希望大家多给我一点意见,谢谢!

例子如下:
PO类:
package com.xxx.services;

import java.io.Serializable;

public class User implements Serializable {
	private String name;
	private int age;
	
	public int getAge() {
		return age;
	}
	......//getter() or setter();
}


Service Interface类:
package com.xxx.services;

import java.util.List;

import javax.jws.WebMethod;
import javax.jws.WebService;

@WebService(name="UserServiceIntf", targetNamespace="http://www.webservicex.net")
public interface UserService {
	@WebMethod
	public User getUser();
	@WebMethod
	public List getUsers();
}


Service Interface Implement类:
package com.xxx.services;

import java.util.List;
import java.util.Vector;

import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
@WebService(endpointInterface="org.codehaus.xfire.jaxb.UserService", serviceName="UserService")
@SOAPBinding(parameterStyle=SOAPBinding.ParameterStyle.BARE)
public class UserServiceImpl implements UserService {
	public User getUser(){
		User user = new User("tom",23);
		return user;
	}
	public List getUsers(){
		List list=new Vector();
		User user1 = new User("tom",23);
		User user2 = new User("jerry",26);
		list.add(user1);
		list.add(user2);
		return list;
	}
}


src\META-INF\xfire\services.xml:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://xfire.codehaus.org/config/1.0">
    <service>
    	<name>UserService</name>
    	<namespace>http://com.xxx.services/UserService</namespace>
    	<serviceBean>com.xxx.services.UserServiceImpl</serviceBean>
		<serviceFactory>#jaxbServiceFactory</serviceFactory>
    </service>
    
    <bean name="jaxbServiceFactory" class="org.codehaus.xfire.jaxb2.JaxbServiceFactory">
    	<constructor-arg ref="xfire.transportManager"/>
  	</bean>
</beans>


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">

	<servlet>
         <servlet-name>XFireServlet</servlet-name>
         <servlet-class>
                 org.codehaus.xfire.transport.http.XFireConfigurableServlet
         </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>
</web-app>


报如下错误:
exception 

javax.servlet.ServletException: Error initializing XFireServlet.
	org.codehaus.xfire.transport.http.XFireServlet.init(XFireServlet.java:50)
	javax.servlet.GenericServlet.init(GenericServlet.java:211)
	org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
	org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
	org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
	org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
	org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
	org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
	org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
	java.lang.Thread.run(Thread.java:595)


root cause 

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.codehaus.xfire.spring.ServiceBean' defined in class path resource [META-INF/xfire/services.xml]: Initialization of bean failed; nested exception is org.codehaus.xfire.annotations.AnnotationException: Class javax.xml.namespace.QName does not have a WebService annotation
	org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:370)
	org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:226)
	org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:147)
	org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:275)
	org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:320)


在xfire的官网上看好象还需要一个.xsd,然后再配到services.xml中,我也试了!错误一样!
希望大家可以帮我一下,看看什么问题,给点意见!最好说的具体点,谢谢!
分享到:
评论
7 楼 JonyUabka 2013-06-17  
与楼主 同样的经历 ,经过 各种 变态 的 解决 测试 ,终于成功。供大家 一个出路:
1.楼主 看下 你的sping jar包 是否有冲突 ,参考(http://www.blogjava.net/zhb8015/articles/377905.html)。
2.分析过程 最好将引用的 地址 贴到地址栏,我的问题如:
java.lang.NoSuchMethodError: org.springframework.beans.factory.xml.XmlBeanDefinitionReader.setValidationMode(I)V
为什么spring 的 类都没初始化 ,是个问题在写 client客户端测试 的时候是测试不到的。
如果其他问题可参考:http://hi.baidu.com/goylsf/item/44fac52468eb8f0d76272c8b
6 楼 ghlong 2011-11-24  
现在刚学这个,也遇到同样的问题,请问楼主怎么解决……谢过
5 楼 yangpeihai 2008-06-11  
谢谢。。。。你们的意见对我很有用。。。。
4 楼 caroline12 2008-05-22  
没有对数据进行初始化赋值吧
3 楼 wangpx 2008-05-21  
你这个问题解决了吗
我现在用这个也出现问题
2 楼 peigen 2008-01-22  
如果使用的是tomcat&jetty&resin请在web-inf同一级目录copy META-INF\xfire\services.xml

如果是weblogic请在web-inf/classes下copy META-INF\xfire\services.xml

如还未解决,请直接联系peigen_peigen @ 163.com
1 楼 小笨熊 2008-01-18  
哪怕是不成熟的意见也可以呀!大家一起研究下!

相关推荐

    使用XFire发布WebService

    接着,我们将了解如何创建一个客户端,使用XFire提供的客户端API来调用这个Web服务。 **发布WebService服务器端** 1. **定义服务接口**: 首先,我们需要定义一个Java接口,它代表我们的Web服务。例如,我们可以...

    xfire框架构建webservice应用(myecllipse自动代码生成 )

    XFire是一个轻量级的WebService框架,它提供了一种简单的方式来开发基于Java的Web服务和客户端应用程序。XFire支持SOAP 1.1和1.2协议,并且能够很好地与其他标准兼容,如WSDL和UDDI等。它具有以下特点: 1. **简洁...

    用XFire开发Webservice简单实例

    4. **配置XFire**:在项目中添加XFire的依赖库,然后创建一个配置文件(如`xfire-config.xml`),用于定义服务端点和服务绑定信息。 5. **发布服务**:使用XFire提供的API,将服务暴露为Web服务,发布到一个指定的...

    使用XFire+Spring构建WebService

    2. **定义服务接口和实现**: 创建一个符合Java API for XML Web Services (JAXWS)规范的服务接口,然后实现该接口。服务接口定义了可供调用的Web方法。 3. **绑定接口到Spring Bean**: 在Spring配置文件中,通过`...

    使用XFire实现SOAP的webservice数据传输源码(java)

    XFire通过XML绑定(XML Binding,如JAXB)和依赖注入(Dependency Injection,如Spring)等技术,为开发者提供了创建和消费Web服务的强大工具。 首先,我们来看标题中的"使用XFire实现SOAP的webservice数据传输源码...

    WebService之XFire开发文档和代码

    XFire以其轻量级、高效和易于使用的特性,成为开发者在构建WebService时的一个优选。XFire支持多种协议,包括SOAP、RESTful风格的服务,以及JAXB、DOM、StAX等多种XML解析方式。XFire还集成了Spring框架,使得与企业...

    xfire webservice 完整实例下载

    XFire Webservice是一个基于Java的开源工具,它简化了创建、部署和消费Web服务的过程。在深入探讨这个完整实例之前,我们首先需要了解Web服务的基本概念。Web服务是一种通过网络进行通信的应用程序接口(API)。它们...

    xfire webservice集成最少8个包

    `xfire1.2.6`这个文件名可能是XFire的一个版本号,表示使用的是1.2.6版本的框架,这个版本可能包含了上述提及的一些核心功能和依赖。不过,随着技术的发展,XFire已经被Apache CXF所取代,后者提供了更多的功能和更...

    xfire+spring+webservice入门例子

    4. **注册服务**: 在Spring配置文件中,使用`ServiceExporter`将服务接口及其实现绑定到一个特定的URL,这样XFire就能暴露这个服务。 5. **创建客户端**: Spring的`WebServiceTemplate`可以用来创建和发送SOAP请求...

    Xfire整合webservice jar包

    支持将Web服务绑定到POJO、XMLBeans、JAXB1.1、JAXB2.0和Castor; 支持基于HTTP、JMS、XMPP等多种协议访问Web服务; 支持多种Web服务业界重要标准如SOAP、WSDL、Web服务寻址(WS-Addressing)、Web服务安全(WS-...

    spring+axis2_xfire整合的webservice

    - XFire是一个轻量级的Web服务框架,它提供了简洁的API和易于使用的工具,使得开发者能够快速地创建和部署Web服务。 - 特点: - 简化的API和配置,降低开发复杂度。 - 优秀的性能,通过高效的XML解析和处理。 -...

    Xfire Webservice的例子

    Xfire Webservice是一个基于Java平台的服务框架,它允许开发者创建和使用Web服务。这个框架的主要目的是简化Web服务的开发过程,使开发人员可以快速地构建分布式应用程序。在本例中,我们将探讨Xfire Webservice与...

    WebService(二):XFire实现WebService

    在本篇中,我们将聚焦于XFire,一个早期流行的Java WebService框架,用于构建和消费SOAP服务。 XFire,由Apache CXF的前身开发,是Java开发者创建高效、灵活的Web服务的一种工具。它提供了对SOAP、WSDL(Web服务...

    webservice的xfire

    XFire是Java平台上一个曾经流行的Web服务框架,它简化了创建、部署和消费Web服务的过程。本篇文章将深入探讨XFire在实现Web服务方面的原理、用法以及如何在服务器端和客户端进行简单的调用。 首先,让我们理解什么...

    webservice xfire架包

    3. **客户端调用**:在客户端,你可以使用XFire的ClientProxyFactory来创建一个对服务的代理对象,通过这个代理对象调用远程Web服务就像调用本地方法一样简单。 4. **错误处理和异常转换**:XFire会自动处理Web服务...

    xfire 访问webservice 需要的jar

    1. **XFire简介**: XFire是基于Spring框架的,它提供了一个轻量级、高性能的SOAP引擎,使得Java对象能够方便地暴露为Web服务,并且可以消费其他Web服务。XFire通过XML绑定(如JAXB)和数据绑定框架(如Aegis)将Java...

    xfire webservice jar包

    标题中的“xfire webservice jar包”指的是XFire,一个早期流行的Java Web服务(Web Service)框架。在Java开发中,Web服务允许不同系统间的应用程序通过网络进行通信。XFire,现已被Apache CXF所取代,是实现这些...

    xfire访问webservice客户端用到的jar包

    下面我们将详细探讨XFire以及如何使用它来创建一个Web服务客户端。 1. **XFire简介** XFire是Apache CXF项目的前身,它提供了全面的Web服务支持,包括SOAP 1.1和1.2、WSDL(Web服务描述语言)、UDDI(统一描述、...

Global site tag (gtag.js) - Google Analytics