`
jake0719
  • 浏览: 90355 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

XFire在Websphere Application Server5.1里运行的空指针异常的解决

    博客分类:
  • Java
阅读更多

最近在部署Server方面碰到了一个非常棘手的问题,在WAS5.1上部署App server成功没有任何异常,客户端连接和操作没有任何问题。当用到了一个特殊的服务时,出现了问题,这个服务又和Web Service相关,项目里用到了Web Service作为另一部分的业务支持。但是有意思的是在RAD+WAS Test Environment的开发环境下没有一点问题,却偏偏在本地QA环境下不行。后来发现请求wsdl文件时也会出类似异常。

 

本地QA环境如下:(真实QA环境部署在Soloris下)

OS: Windows XP

软件架构:WAS 5.1+Sonic MQ6.1 + Oracle10g (全部都是单服务器)

XFire 1.2.5

 

抛出异常:

[Servlet Error]-[org/codehaus/xfire/xmlbeans/XmlBeansWSDLBuilder]: java.lang.NoClassDefFoundError: org/codehaus/xfire/xmlbeans/XmlBeansWSDLBuilder

 at org.codehaus.xfire.xmlbeans.XmlBeansWSDLBuilderFactory.createWSDLBuilder(XmlBeansWSDLBuilderFactory.java:20)
 at org.codehaus.xfire.wsdl11.builder.WSDLBuilderAdapter.write(WSDLBuilderAdapter.java:40)
 at org.codehaus.xfire.DefaultXFire.generateWSDL(DefaultXFire.java:104)
 at org.codehaus.xfire.transport.http.XFireServletController.generateWSDL(XFireServletController.java:380)
 at org.codehaus.xfire.transport.http.XFireServletController.doService(XFireServletController.java:125)
 at org.codehaus.xfire.transport.http.XFireServlet.doGet(XFireServlet.java:107)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
 at com.ibm.ws.webcontainer.servlet.StrictServletInstance.doService(StrictServletInstance.java:110)
 at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet._service(StrictLifecycleServlet.java:174)
 at com.ibm.ws.webcontainer.servlet.IdleServletState.service(StrictLifecycleServlet.java:313)
 at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet.service(StrictLifecycleServlet.java:116)
 at com.ibm.ws.webcontainer.servlet.ServletInstance.service(ServletInstance.java:283)
 at com.ibm.ws.webcontainer.servlet.ValidServletReferenceState.dispatch(ValidServletReferenceState.java:42)
 at com.ibm.ws.webcontainer.servlet.ServletInstanceReference.dispatch(ServletInstanceReference.java:40)
 at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.handleWebAppDispatch(WebAppRequestDispatcher.java:974)
 at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.dispatch(WebAppRequestDispatcher.java:555)
 at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:200)
 at com.ibm.ws.webcontainer.srt.WebAppInvoker.doForward(WebAppInvoker.java:119)
 at com.ibm.ws.webcontainer.srt.WebAppInvoker.handleInvocationHook(WebAppInvoker.java:276)
 at com.ibm.ws.webcontainer.cache.invocation.CachedInvocation.handleInvocation(CachedInvocation.java:71)
 at com.ibm.ws.webcontainer.cache.invocation.CacheableInvocationContext.invoke(CacheableInvocationContext.java:114)
 at com.ibm.ws.webcontainer.srp.ServletRequestProcessor.dispatchByURI(ServletRequestProcessor.java:186)
 at com.ibm.ws.webcontainer.oselistener.OSEListenerDispatcher.service(OSEListener.java:334)
 at com.ibm.ws.webcontainer.http.HttpConnection.handleRequest(HttpConnection.java:56)
 at com.ibm.ws.http.HttpConnection.readAndHandleRequest(HttpConnection.java:618)
 at com.ibm.ws.http.HttpConnection.run(HttpConnection.java:443)
 at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:593)

 

看到这个异常一般大家都会以为是classpath没配置好或者缺少相应jar包。我也是这么做的,于是检查了下,但是该jar确实存在,classpath理论上没有问题。于是重新打包重新部署,几次折腾之后,异常出现了变化:

 

E SRVE0026E: [Servlet Error]-[Provider null could not be instantiated: java.lang.NullPointerException]: javax.xml.stream.FactoryConfigurationError: Provider null could not be instantiated: java.lang.NullPointerException
 at javax.xml.stream.FactoryFinder.newInstance(FactoryFinder.java:75)
 at javax.xml.stream.FactoryFinder.find(FactoryFinder.java:136)
 at javax.xml.stream.FactoryFinder.find(FactoryFinder.java:92)
 at javax.xml.stream.XMLInputFactory.newInstance(XMLInputFactory.java:136)
 at  at org.codehaus.xfire.util.STAXUtils.<clinit>(STAXUtils.java:48).null(Unknown Source)
 at org.codehaus.xfire.util.jdom.StaxBuilder.<init>(StaxBuilder.java:150)
 at  at org.codehaus.xfire.wsdl.AbstractWSDL.<clinit>(AbstractWSDL.java:43).null(Unknown Source)
 at org.codehaus.xfire.xmlbeans.XmlBeansWSDLBuilderFactory.createWSDLBuilder(XmlBeansWSDLBuilderFactory.java:20)
 at org.codehaus.xfire.wsdl11.builder.WSDLBuilderAdapter.write(WSDLBuilderAdapter.java:40)
 at org.codehaus.xfire.DefaultXFire.generateWSDL(DefaultXFire.java:104)
 at org.codehaus.xfire.transport.http.XFireServletController.generateWSDL(XFireServletController.java:380)
 at org.codehaus.xfire.transport.http.XFireServletController.doService(XFireServletController.java:125)
 at org.codehaus.xfire.transport.http.XFireServlet.doGet(XFireServlet.java:107)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
 at com.ibm.ws.webcontainer.servlet.StrictServletInstance.doService(StrictServletInstance.java:110)
 at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet._service(StrictLifecycleServlet.java:174)
 at com.ibm.ws.webcontainer.servlet.IdleServletState.service(StrictLifecycleServlet.java:313)
 at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet.service(StrictLifecycleServlet.java:116)
 at com.ibm.ws.webcontainer.servlet.ServletInstance.service(ServletInstance.java:283)
 at com.ibm.ws.webcontainer.servlet.ValidServletReferenceState.dispatch(ValidServletReferenceState.java:42)
 at com.ibm.ws.webcontainer.servlet.ServletInstanceReference.dispatch(ServletInstanceReference.java:40)
 at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.handleWebAppDispatch(WebAppRequestDispatcher.java:974)
 at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.dispatch(WebAppRequestDispatcher.java:555)
 at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:200)
 at com.ibm.ws.webcontainer.srt.WebAppInvoker.doForward(WebAppInvoker.java:119)
 at com.ibm.ws.webcontainer.srt.WebAppInvoker.handleInvocationHook(WebAppInvoker.java:276)
 at com.ibm.ws.webcontainer.cache.invocation.CachedInvocation.handleInvocation(CachedInvocation.java:71)
 at com.ibm.ws.webcontainer.srp.ServletRequestProcessor.dispatchByURI(ServletRequestProcessor.java:182)
 at com.ibm.ws.webcontainer.oselistener.OSEListenerDispatcher.service(OSEListener.java:334)
 at com.ibm.ws.webcontainer.http.HttpConnection.handleRequest(HttpConnection.java:56)
 at com.ibm.ws.http.HttpConnection.readAndHandleRequest(HttpConnection.java:618)
 at com.ibm.ws.http.HttpConnection.run(HttpConnection.java:439)
 at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java(Compiled Code))

 

 这次没辙了,Google了下,发现中文资料还真是稀少(用这种架构的不多,毕竟都是狂贵的东东),在一堆英文网页里挖掘发现还是有人碰到类似的问题,其中MS有个是IBM的人说把WAS里java/jre/lib里的两个properties文件:jaxp.properties和Xerces.properties里最下面被注释的属性去掉注释,给设置回来可以解决。看了下,是下面三行属性设置。

 

#javax.xml.transform.TransformerFactory=org.apache.xalan.processor.TransformerFactoryImpl
#javax.xml.parsers.SAXParserFactory=org.apache.xerces.jaxp.SAXParserFactoryImpl
#javax.xml.parsers.DocumentBuilderFactory=org.apache.xerces.jaxp.DocumentBuilderFactoryImpl

 

看这些类还真像回事,蛮以为去掉注释,哈雷路亚搞定了,不想,试了下还是不行。继续搜索着偶然发现了下面的一段话:

I've seen some posts which relate to this issue, so I've tried to add an '
xml.stream.properties' file with these settings:

javax.xml.stream.XMLInputFactory=com.ctc.wstx.stax.WstxInputFactory
javax.xml.stream.XMLOutputFactory=com.ctc.wstx.stax.WstxOutputFactory
javax.xml.stream.XMLEventFactory=com.ctc.wstx.stax.WstxEventFactory

into my web app lib directory, but I'm still getting the error.

 

想了想,把他的属性设置拷贝进那个IBM的人说的两个文件的,然后stop server,保存文件,重启server,再试了一次,OK搞定,yeah!

 

但是想不通的是,在RAD的开发环境里也是一样的设置,为什么那个没有问题。由于IBM的那套东西不能debug,折腾这个剩下的矛盾已没有意义。WAS6已经出来,希望在新的版本平台上没有这个问题:-)

分享到:
评论

相关推荐

    Xfire案例,webserver——Xfire案例

    这个“Xfire案例,webserver——Xfire案例”的主题可能涉及Xfire服务端的实现,特别是它如何作为web服务器运行以及与其他技术的集成。 在深入探讨Xfire的webserver方面之前,我们先理解一下什么是web服务器。Web...

    xfire接口项目(Server+Client)

    Xfire接口项目,作为一个融合了Server端和Client端的完整工程,旨在提供一个高效、稳定的游戏通信解决方案。该项目的核心在于利用Xfire这一游戏社区软件的API,实现游戏服务器与客户端之间的实时通信,为玩家带来...

    eclipse 使用xfire开发webservices server

    标题中的“eclipse使用xfire开发webservices server”意味着我们将使用Eclipse IDE和XFire来创建和部署一个Web服务服务器。以下是一步步的操作步骤: 1. **安装Eclipse和XFire插件**:首先确保你的Eclipse已经安装...

    android使用xfire操作sqlserver用jar包们(包括xfire、sqlserver驱动、ksoap2)

    在本实例中,我们将探讨如何在Android项目中集成xfire,利用它通过Web服务与SQL Server数据库进行通信。同时,我们还会涉及ksoap2库,这是一个用于Android的SOAP客户端实现,用于处理Web服务调用。 首先,`xfire ...

    Xfire的client.zip_Xfire客户端代码_webservice

    在本案例中,"Xfire的client.zip"是一个包含了Xfire客户端代码的压缩包,主要用于调用Web服务。 Xfire客户端代码是实现与Xfire服务器通信的代码库,它可能包含了多种语言的实现,如Java、C#或Python等。这些代码...

    在WebSphere发布CXF注意事项

    在WebSphere上发布CXF(Camel XFire)服务是一个涉及多个步骤的过程,需要注意一系列细节以确保服务能够正常运行。CXF是一个流行的开源框架,用于构建和开发基于Java的Web服务。以下是一些关键的注意事项: 1. **...

    在Eclipse下用xfire创建webserver服务器demo

    在这个“在Eclipse下用xfire创建webserver服务器demo”中,我们学习了如何在Eclipse环境中配置Xfire,创建一个简单的Web服务,以及如何启动和测试这个服务。这只是一个基础的起点,Xfire还支持许多高级特性,如WS-...

    android用xfire操作sqlserver源完整代码+数据库脚本

    xfire是一个古老的开源项目,它提供了在Java中实现SOAP(Simple Object Access Protocol)服务的能力,可以方便地帮助Android应用程序与SQL Server数据库进行通信。这篇内容将深入探讨如何使用xfire在Android上操作...

    xfire 的webservice_server端和client端代码,包括复杂类型.

    这个小实例有server和client的代码,server直接用myeclipse导入,然后添加spring2.0 aop和core,xfire1.2即可.client也是直接导入项目,然后导入jax-ws2.1api和jax-ws2.1 runtime libraries即可.这些包通过点击项目...

    android用xfire操作sqlserver源代码

    本文将详细讲解如何在Android应用中利用XFire库操作远程SQL Server数据库。 首先,XFire是一个基于Java的Web服务框架,它提供了简单的API和XML绑定工具,使得开发RESTful Web服务和SOAP服务变得非常容易。在本项目...

    XFire容易配置出现的几个异常信息

    虽然它现在可能已被其他更现代的解决方案取代,但理解如何解决配置中遇到的问题仍然有价值,特别是对于那些还在使用或研究XFire的老项目而言。 标题“XFire容易配置出现的几个异常信息”暗示了我们在配置XFire时...

    xfire生成webservice

    本文将详细讲解如何在Eclipse集成开发环境中使用XFire生成Web服务,并在JBoss 5.1应用服务器上进行部署和运行。 首先,我们需要理解Web服务的基本概念。Web服务是基于开放标准(如SOAP、WSDL和UDDI)的自包含、自...

    xfire-webservice实例(下载即可运行)

    在这个实例中,我们将会深入探讨如何利用Xfire快速构建一个可运行的Web服务,并了解其核心概念和技术特点。 一、Xfire简介 Xfire是基于Apache CXF的早期版本,它提供了一个轻量级、高效的框架,用于构建SOAP和...

    cxf和xfire的jar包冲突解决

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

    Xfire Spring Hibernate 发布WebService(源码)

    2、下载安装MySQL Server 5.1 3、下载MySQL驱动 mysql-connector-java-5.0.8-bin.jar 4、 使用MySQL管理工具创建数据库easyLife和一张user表。我使用的是EMS SQL Manager 2007 for MySQL。 表结构如下: id ...

    xfire与cxf包冲突解决方案

    1、以下四个类调用了XmlSchema-1.1.jar包 因与cxf包xmlschema-core-*.jar... xfire-all-1.2.6-incomplete.jar 替换 xfire-all-1.2.6.jar 3、XmlSchema-1.1.jar 可以与 xmlschema-core-*.jar 共存避开同路径同名类冲突

    xfire-1.2.6.rar xfire-1.2.6.rar xfire-1.2.6.rar

    XFire,全称XFire Game Server Communication,是一款开源的游戏服务器通信框架,主要用于游戏服务器之间的实时通信和数据交换。在1.2.6版本中,它提供了稳定、高效的服务,为游戏开发者提供了一种便捷的方式来构建...

    xfire server

    xfire server是一个基于xfire工具构建的服务器系统,主要用于实现客户端和服务器之间的高效数据传输。Xfire是一款曾经流行的游戏通信软件,它允许玩家在多款游戏中进行即时通讯、好友管理以及游戏统计等功能。xfire ...

    XFire在MyEclipse中配置图文讲解

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

Global site tag (gtag.js) - Google Analytics