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

Xfire在Weblogic10.3上发布的问题

    博客分类:
  • SOA
阅读更多
Xfire在Weblogic10.3上发布的问题

最近项目的Xfire的WebService要从tomcat6.0.18上移动到weblogic10.3上,平时跑得多欢的soap,到了这时,连WSDL文件都不能访问了。
当我访问WSDL文件
http://localhost:7001/services/BpmEventService?wsdl
时报错如下:

Root cause of ServletException.

java.lang.ExceptionInInitializerError
at org.codehaus.xfire.util.jdom.StaxBuilder.<init>(StaxBuilder.java:150)
at org.codehaus.xfire.wsdl.AbstractWSDL.<clinit>(AbstractWSDL.java:43)
at org.codehaus.xfire.wsdl11.builder.DefaultWSDLBuilderFactory.createWSDLBuilder(DefaultWSDLBuilderFactory.java:25)
at org.codehaus.xfire.wsdl11.builder.WSDLBuilderAdapter.write(WSDLBuilderAdapter.java:40)
at org.codehaus.xfire.DefaultXFire.generateWSDL(DefaultXFire.java:104)
Truncated. see log file for complete stacktrace

java.lang.ClassCastException: weblogic.xml.stax.XMLStreamInputFactory cannot be cast to javax.xml.stream.XMLInputFactory
at javax.xml.stream.XMLInputFactory.newInstance(XMLInputFactory.java:136)
at org.codehaus.xfire.util.STAXUtils.<clinit>(STAXUtils.java:48)
at org.codehaus.xfire.util.jdom.StaxBuilder.<init>(StaxBuilder.java:150)
at org.codehaus.xfire.wsdl.AbstractWSDL.<clinit>(AbstractWSDL.java:43)
at org.codehaus.xfire.wsdl11.builder.DefaultWSDLBuilderFactory.createWSDLBuilder(DefaultWSDLBuilderFactory.java:25)

四处搜索半天,还是对比了一下以前发布的xfire原始demo,发现差异在于少了一个jar包,加在ivy配置中
<dependency org="org/codehaus/woodstox" name="wstx-asl" rev="3.2.9"/>

一切恢复正常了。

对了,还忘记了记录,我的WEB-INF下,很早就由同事放了一个weblogic.xml如下:
<?xml version="1.0" encoding="UTF-8"?>

<weblogic-web-app xmlns="http://www.bea.com/ns/weblogic/90"
xmlns:j2ee="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.bea.com/ns/weblogic/90 http://www.bea.com/ns/weblogic/90/weblogic-web-app.xsd">
<context-root>/</context-root>
<container-descriptor>
   <prefer-web-inf-classes>true</prefer-web-inf-classes>
</container-descriptor>
</weblogic-web-app>

奇怪了,服务器这样修改就OK了。

但是我本机的weblogic10.3用目录方式发布或者用war方式发布都要报如下错误:
<2009-12-7 下午07时31分19秒 CST> <Error> <Deployer> <BEA-149265> <Failure occurr
ed in the execution of deployment request with ID '1260185449734' for task '0'.
Error is: 'weblogic.application.ModuleException: 'weblogic.application.ModuleException:
at weblogic.servlet.internal.WebAppModule.prepare(WebAppModule.java:387)
at weblogic.application.internal.flow.ScopedModuleDriver.prepare(ScopedModuleDriver.java:176)
at weblogic.application.internal.flow.ModuleListenerInvoker.prepare(ModuleListenerInvoker.java:93)
at weblogic.application.internal.flow.DeploymentCallbackFlow$1.next(DeploymentCallbackFlow.java:387)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:37)
Truncated. see log file for complete stacktrace

java.lang.ClassCastException: com.ctc.wstx.stax.WstxInputFactory cannot be cast to javax.xml.stream.XMLInputFactory
at javax.xml.stream.XMLInputFactory.newInstance(XMLInputFactory.java:137)
at weblogic.servlet.internal.TldCacheHelper$TldIOHelper.parseXML(TldCacheHelper.java:124)
at weblogic.descriptor.DescriptorCache.parseXML(DescriptorCache.java:380)
at weblogic.servlet.internal.TldCacheHelper.parseTagLibraries(TldCacheHelper.java:65)
at weblogic.servlet.internal.War.getTagInfo(War.java:891)
Truncated. see log file for complete stacktrace

删除下面的
<dependency org="org/codehaus/woodstox" name="wstx-asl" rev="3.2.9"/>
这个包,然后再加上,就对了。。。。诡异啊。

这个有点前后矛盾,以后再仔细检查吧。
我删除了我机器上weblogic的domain测试了一下。整个流程如下:
新建domain,发布不含有wstx-asl的jar包,发布成功,但是WSDL文件无法访问,要报错;
然后添加上wstx-asl的jar包,再在这个domain上发布,发布成功,访问WSDL文件也没有问题。呵呵。诡异了。以后再仔细检查吧。我在windows上weblogic10.3和redhat上weblogic10.3都测试了一次,都是这样的。
分享到:
评论
2 楼 sillycat 2011-03-08  
^_^。确实比较迷惑。

是这样的,我先发布了一个 a.war,我删除了里面的wstx-asl.jar,可以发布并启动成功。

然后我再发布一次 a.war,这时,里面加上了wstx-asl.jar,就OK了。

我证实了这样可以使用,但是为啥,我其实也很迷惑。
1 楼 mylazygirl 2011-03-04  
引用
新建domain,发布不含有wstx-asl的jar包,发布成功,但是WSDL文件无法访问,要报错;
然后添加上wstx-asl的jar包,再在这个domain上发布,发布成功,访问WSDL文件也没有问题。

这两句话什么意思啊,看不懂

相关推荐

    xfire开发在weblogic8上需要的jar包

    在本场景中,我们将探讨如何在WebLogic 8服务器上配置和运行XFire开发的Web服务,以及所需的JAR包和环境配置。 首先,WebLogic Server 8是Oracle公司的一款企业级应用服务器,支持J2EE 1.4规范。与较新版本相比,它...

    Xfire调用webservice无法传递参数问题

    在本文中,我们将深入探讨Xfire调用Web服务时遇到的参数传递问题以及解决策略。 首先,让我们了解Web服务的基本概念。Web服务基于SOAP(Simple Object Access Protocol)协议,通过HTTP协议进行通信,使得不同的...

    xfire发布webservice服务

    【标题】:“xfire发布webservice服务” 在Java开发中,XFire是一个早期流行的Web服务框架,用于创建和消费Web服务。XFire是Apache CXF的前身,它提供了简单、高性能的方式来实现基于SOAP的Web服务。这篇博客文章...

    xfire发布和调用demo

    总的来说,Xfire"发布和调用demo"提供了一个实用的起点,帮助开发者理解如何在Java环境中创建和使用Web服务,特别是在遇到特定服务器兼容性问题时。通过深入研究这个示例,可以进一步提升对Web服务和相关框架的理解...

    使用XFire发布WebService

    【标题】: 使用XFire发布WebService 在Web服务的世界中,XFire是一个强大的开源框架,它使得开发和部署Web服务变得简单。XFire是Apache CXF的前身,它提供了全面的WS-*支持,包括SOAP、WSDL、UDDI、MTOM等标准,...

    xfire发布webservice

    通过上述步骤,我们可以清晰地看到如何利用XFire框架在服务器端发布一个简单的WebService,以及如何在客户端调用该服务。整个过程涉及项目创建、服务类编写、服务配置、以及客户端的调用,每个环节都是构建一个功能...

    xfire发布webservice实例无需设置地址和端口号

    xfire简单实例发布webservice,引用到2个jar包的简单例子

    xfire整合spring发布web services

    【Xfire整合Spring发布Web Services】是将Xfire——一个基于Java的Web服务实现框架,与Spring——一个广泛使用的轻量级应用框架相结合,用于构建和发布Web服务的过程。这个整合使得开发人员能够利用Spring的强大功能...

    使用xfire发布的webservice完整实例

    5. **发布服务**:通过调用Xfire提供的API或启动配置文件,将你的服务发布到一个HTTP服务器上,使得其他应用程序可以通过网络访问。 6. **测试与调用**:发布服务后,可以使用Xfire的测试工具,或者其他的SOAP...

    xFire发布和调用WebService所用包少

    这个自己写的xFire发布WebService,包含发布和调用,可以用在企业中,而且所用的jar也比较少,不会出现很多jar的问题,一共才9个jar,[commons-codec-1.3.jar,commons-httpclient-3.0.jar,commons-logging-1.0.4.jar,...

    MyEclipse下通过Xfire实现Web服务发布的注意事项

    在本文中,我们将探讨如何在MyEclipse环境下利用Xfire框架发布Web服务,并进行客户端调用。Xfire是一个轻量级的Java Web服务框架,它简化了服务的创建和部署过程。 首先,确保你的开发环境准备就绪。安装Java ...

    Xfire调用webservice无法接收到参数问题解决

    标题"Xfire调用webservice无法接收到参数问题解决"指出的核心问题是:当使用Xfire作为客户端调用Web服务时,服务端无法正确接收到传递的参数。这可能是由于多种原因引起的,如: 1. **XML序列化与反序列化问题**:...

    XFire与Spring组合发布webservices

    XFire和Spring都是Java领域中的重要框架,它们在构建和管理Web服务方面具有强大的能力。本篇文章将深入探讨如何利用XFire与Spring的组合来发布Web服务,并提供具体的实例和所需资源。 首先,XFire(现在称为Apache ...

    xfire发布webservice实例

    用java通过xfire框架实现ws,实现正向生成wsdl文件,并由wsdl逆向生成java ws客户端代码 测试输入:http://localhost:8080/webservice-xfire/services/CalculatorService?wsdl

    XFire在MyEclipse中配置图文讲解

    ### XFire在MyEclipse中配置详解 #### XFire与MyEclipse的融合:搭建高效Web Service开发环境 XFire是一款高性能的Java SOAP框架,以其轻量级、易用性及对多种标准的支持(如JAXB、XMLBeans、Java5和JAX-WS等)而...

    Java使用XFire调用WebService接口

    6. **异常处理**:在调用Web服务时,可能会遇到网络问题或服务端错误,XFire会将这些异常封装成特定的Java异常,方便开发者捕获并处理。 7. **日志和调试**:为了调试和优化,XFire支持日志记录,开发者可以通过...

    xfire-all-1.2.6 xfire所需的全部包

    通过与各种游戏的深度整合,Xfire能够在游戏运行时自动检测并显示好友的状态,允许玩家在游戏内实时聊天、组队,甚至查看好友的游戏进度。1.2.6版本作为一款经典版本,它稳定且功能齐全,是许多老玩家心中的经典。 ...

    xfire依赖jar包

    2. **xfire-aegis**: Aegis绑定器是xfire的一个组件,它允许直接在Java对象上进行SOAP绑定,无需编写额外的接口或类。Aegis使用了XFire的代码生成器,可以自动生成WSDL(Web服务描述语言)文档。 3. **xfire-...

    cxf和xfire的jar包冲突解决

    这个问题在标题“cxf和xfire的jar包冲突解决”中得到了明确指出。 Apache CXF是一个全面的服务开发框架,它支持SOAP、RESTful Web服务,以及多种协议和绑定。而XFire是CXF的前身,也是一个强大的Web服务框架,但它...

Global site tag (gtag.js) - Google Analytics