`
yuanqingfei
  • 浏览: 870 次
  • 来自: ...
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

怎样做才能在同一个Web容器内同时发布和消费webservice呢?(CXF)

阅读更多
大家好,第一次提问:
利用CXF发布Webservice没有问题,同样只是接受webservice服务也没有问题。但是我这里,只要把他们两个的xml文件配置同时放在web容器内,就报空指针异常,请哪位大哥指点一下:

1、client的配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:util="http://www.springframework.org/schema/util"
	xsi:schemaLocation="http://www.springframework.org/schema/beans 
	http://www.springframework.org/schema/beans/spring-beans-2.0.xsd 
	http://www.springframework.org/schema/aop 
	http://www.springframework.org/schema/aop/spring-aop-2.0.xsd 
	http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd 
	http://cxf.apache.org/simple http://cxf.apache.org/schemas/simple.xsd 
	http://www.springframework.org/schema/util
    http://www.springframework.org/schema/util/spring-util-2.5.xsd
	http://cxf.apache.org/bindings/soap http://cxf.apache.org/schemas/configuration/soap.xsd 
	http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd"
	default-lazy-init="true" default-autowire="byName">
	
	
	<jaxws:client xmlns:jaxws="http://cxf.apache.org/jaxws"
		id="commodityServiceClient" serviceClass="com.XXX.XXX"
		address="${webservice.client.host}/XXXervice">
		<jaxws:binding>
			<soap:soapBinding xmlns:soap="http://cxf.apache.org/bindings/soap"
				mtomEnabled="true" version="1.2" />
		</jaxws:binding>
		<jaxws:dataBinding>
			<bean class="org.apache.cxf.xmlbeans.XmlBeansDataBinding" />
		</jaxws:dataBinding>
</jaxws:client>
</benas>



2. server的配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:jaxws="http://cxf.apache.org/jaxws"
	xmlns:soap="http://cxf.apache.org/bindings/soap" xmlns:simple="http://cxf.apache.org/simple"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
            http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
            http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd 
            http://cxf.apache.org/simple http://cxf.apache.org/schemas/simple.xsd
            http://cxf.apache.org/bindings/soap http://cxf.apache.org/schemas/configuration/soap.xsd 
            http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd"
	default-lazy-init="false" default-autowire="byName">
	<import resource="classpath:META-INF/cxf/cxf.xml" />
	<import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" />
	<import resource="classpath:META-INF/cxf/cxf-extension-local.xml" />
	<import resource="classpath:META-INF/cxf/cxf-servlet.xml" />
	<jaxws:server xmlns:jaxws="http://cxf.apache.org/jaxws" id="configServiceWebServer" serviceBean="#XXXService" address="/XXXService">
		<jaxws:serviceFactory>
			<bean class="org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean" scope="prototype">
				<property name="dataBinding">
					<bean id="xmlBean" class="org.apache.cxf.xmlbeans.XmlBeansDataBinding" scope="prototype" />
				</property>
			</bean>
		</jaxws:serviceFactory>
	</jaxws:server>
</beans>



3. 报出的异常是:
java.lang.NullPointerException
        at org.apache.cxf.frontend.AbstractWSDLBasedEndpointFactory.createEndpoi
ntInfo(AbstractWSDLBasedEndpointFactory.java:160)
        at org.apache.cxf.frontend.AbstractWSDLBasedEndpointFactory.createEndpoi
nt(AbstractWSDLBasedEndpointFactory.java:102)
        at org.apache.cxf.frontend.ClientFactoryBean.create(ClientFactoryBean.ja
va:51)
        at org.apache.cxf.frontend.ClientProxyFactoryBean.create(ClientProxyFact
oryBean.java:97)
        at org.apache.cxf.jaxws.JaxWsProxyFactoryBean.create(JaxWsProxyFactoryBe
an.java:93)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at org.springframework.beans.factory.support.SimpleInstantiationStrategy
.instantiate(SimpleInstantiationStrategy.java:115)
分享到:
评论
4 楼 yuanqingfei 2008-07-24  
问题已经解决, 问题的关键在于Web容器对多个spring xml配置文件的加载顺序,对于webservice的xml文件,由于其加载时间长,必须放在前面先行加载,这样后面的引用才可以。。。个人再多猜想一下:如果整合成一个大的xml文件,应该就没有这样的问题了。。
3 楼 yuanqingfei 2008-07-23  
补充一下:也就是说发布的webservice和消费的webservice不是同一个webservice。。。
2 楼 yuanqingfei 2008-07-23  
是有原因的: 它消费别人的webservice, 同时提供自己的webservice给别人,这样不是很正常吗?
1 楼 alexma 2008-07-23  
胡乱猜一下,是否和配置文件加载的顺序有关。正常来说应该先加载server的,并且 server 完全启动起来之后,再加载client的才可以,否则应该会有问题。
不明白你为什么把server/client同时部署到一个web容器里。

相关推荐

    springboot整合CXF发布webservice和客户端调用

    这个项目提供了一个很好的示例,通过详细注释帮助开发者理解如何在SpringBoot应用中发布和调用Web服务。 1. **SpringBoot简介** SpringBoot简化了Spring应用程序的初始设置和配置,通过自动配置和“起步依赖”...

    webService(基于cxf)的完整例子

    CXF是一个流行的开源Java框架,用于构建和消费Web服务。它提供了丰富的功能,包括SOAP、RESTful API支持以及多种协议和标准的实现。在这个基于CXF的Web服务完整例子中,我们将深入探讨CXF的核心概念、配置、以及如何...

    CXF框架发布webservice

    学习这些内容后,开发者将能够熟练地使用CXF框架和Spring框架来构建和发布高质量的Web服务,同时也能掌握服务的测试、安全性和事务管理等关键环节。通过实践,你可以更好地理解和掌握这些技术,提升你的Web服务开发...

    SpringBoot框架及CXF发布WebService

    Apache CXF是一个开源服务框架,它允许开发者构建和部署Web服务。CXF支持多种协议,如SOAP、RESTful、WS-*等,并且与Spring框架有很好的集成。 1. **服务器端Web服务发布**:CXF允许开发者通过JAX-WS或JAX-RS接口...

    Spring+CXF 发布WebService服务

    1. **配置Spring上下文**:首先,我们需要创建一个Spring配置文件,例如`spring-cxf.xml`,在这个文件中,我们会定义CXF的bean,如`JaxWsServerFactoryBean`,用于创建和发布WebService服务。 2. **定义WebService...

    用cxf开发webservice

    Apache CXF是一个强大的开源框架,专门用于构建和实现Web服务。它遵循Java Community Process (JCP)和Web服务的相关标准,使得开发面向服务架构(SOA)的应用变得更加简单和高效。CXF支持多种模型,包括JAX-WS(Java...

    CXF+Spring+Tomcat发布WebService

    【标题】"CXF+Spring+Tomcat发布WebService"涉及的是使用Apache CXF框架与Spring框架结合,在Tomcat服务器上部署和消费Web服务的过程。这是一个常见的企业级应用开发场景,特别是对于实现基于SOAP协议的Web服务。...

    cxf+spring发布webservice和restservice

    Apache CXF是一个开源的、功能丰富的服务栈,它使得开发者能够轻松地构建和部署SOAP和RESTful Web服务。 首先,让我们深入理解SOAP Web服务。SOAP是一种XML格式的协议,用于在Web上交换结构化的和类型化的信息。...

    CXF发布WebService,jboss和tomcat都能发布

    Apache CXF 是一个开源的Java框架,它允许开发人员创建和部署Web服务。CXF提供了一种简单的方式来构建SOAP(Simple Object Access Protocol)服务器和客户端,使得开发者可以专注于业务逻辑,而不是底层通信细节。在...

    webservice_cxf Demo

    这个"webservice_cxf Demo"项目是一个基于 Apache CXF 的 Web 服务示例,旨在帮助开发者理解如何使用 CXF 来创建、部署和消费 Web 服务。在这个示例中,我们将探讨 CXF 的核心概念、工作流程以及如何通过它来实现...

    WebService CXF 详细教程

    Apache CXF是一个开源的Java框架,用于构建和部署WebServices。CXF不仅支持SOAP,还支持RESTful风格的服务。它提供了丰富的功能,包括WS-*协议栈支持、客户端和服务端的生成工具、多种传输方式(HTTP、JMS等)、以及...

    webservice-cxf-spring-jar.zip

    【标题】"webservice-cxf-spring-jar.zip" 是一个包含了使用Apache CXF与Spring框架集成开发Web服务的Java库集合。这个压缩包提供了一整套必要的JAR文件,以便于开发者在他们的项目中快速搭建和运行基于CXF的Web服务...

    springBoot完整整合WebService框架CXF示例

    SpringBoot与CXF整合是构建基于Web服务的应用程序的一个常见实践。CXF是一个开源的Java框架,用于构建和开发服务导向架构(SOA)应用程序,它支持SOAP和RESTful服务。SpringBoot则简化了Spring应用的初始化和配置,...

    CXF webservice Demo

    【CXF Webservice Demo】是基于Apache CXF框架的一个示例项目,用于演示如何使用CXF来创建和消费Web服务。Apache CXF是一个开源的Java框架,它允许开发者构建和集成Web服务,支持多种Web服务标准,如SOAP、RESTful ...

    webservice使用cxf的实例

    CXF(Code First eXtensible Framework)是Apache软件基金会的一个开源项目,它提供了一种方便的方式来创建和消费Web服务。CXF支持多种协议,如SOAP、RESTful HTTP、WS-*规范等,并且可以与Java EE、Spring框架无缝...

    cxf做的webservice对外提供接口调用

    【描述】中提到的“webservice对外发布接口全部源码拿起来就能用”,这表明这是一个关于使用Apache CXF框架创建和发布的Web服务项目。Apache CXF是一个开源的Java框架,主要用于构建和开发Web服务。它支持SOAP、...

    cxf webservice demo

    此"CXF Webservice Demo"是一个实例,展示了如何使用CXF来创建和消费Web服务。CXF允许开发者通过SOAP(简单对象访问协议)和RESTful(Representational State Transfer)接口进行通信,支持多种协议和绑定,如HTTP、...

    使用CXF开发WebService

    在开发Web服务时,Apache CXF是一个非常强大的框架,它提供了与Spring的紧密集成,使得开发者可以方便地通过注解和Spring配置来暴露和消费Web服务。本篇内容将深入探讨如何使用CXF和Spring来创建和使用Web服务。 ...

    maven项目 cxf webservice

    Apache CXF是一个开源的Java框架,它允许开发者创建和消费各种Web服务,包括SOAP和RESTful服务。Maven作为项目管理和构建工具,通过管理项目的依赖关系和提供标准化的构建过程,简化了项目的开发流程。 【描述】...

    Cxf+webservice(客服端和服务端)

    综上所述,"Cxf+webservice(客服端和服务端)"项目是一个理想的起点,帮助开发者了解和实践使用Apache CXF创建和消费Web Service。通过这个简洁的示例,我们可以深入理解Web Service的工作原理,以及CXF提供的强大...

Global site tag (gtag.js) - Google Analytics