`
Jekey
  • 浏览: 25177 次
  • 性别: Icon_minigender_1
  • 来自: 海淀
社区版块
存档分类
最新评论

在WebLogic上部署使用xfire遇到问题解决方法

    博客分类:
  • JAVA
阅读更多

        在项目中要使用到XFIRE来建SERVICE,建好后,在tomcat上测试屡试不爽,万事大吉。可是到了现场部署的时候,问题就来了

        先说一下运行环境:AIX5.2++JDK1.4+WEBLOGIC8.1+ORACLE9I。当工程发不上去以后,启动WEBLOGIC,控制台报错:

    Error initializing XFireServlet. java.lang.NoSuchMethodError: javax.xml.namespace.QName: method <init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V not f ound……………………

        真是恼人啊.

        搜索了一个上午,才发现少了qname.jar这个包。下载以后放到lib里边,然后修改startWebLogic.sh,在CLASSPATH上指定qname.jar,启动成功,yeah!.

        接下来就是测试服务是否可用了,更郁闷的错误又来了:

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 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)
	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 weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:996)
	at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:419)
	at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:28)
	at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
	at com.icss.j2ee.servlet.filter.ChangeReqEncoding.doFilter(Unknown Source)
	at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
	at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:6458)
	at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
	at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:118)
	at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3661)
	at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2630)
	at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219)
	at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178)

       翻遍google,只找到了处相关的介绍,参考价值也不大。只好扩大搜索范围,终于发现了解决方案:

       由于在JDK1.4中javax.xml.stream.XMLInputFactory,javax.xml.stream.XMLOutputFactory,

 javax.xml.stream.XMLEventFactory 没有具体的实现,必须指定具体的实现才能使用。因此在startWebLogic.sh中加入

    

JAVA_OPTIONS="${JAVA_OPTIONS} 
-Djavax.xml.stream.XMLInputFactory=com.ctc.wstx.stax.WstxInputFactory
                              -Djavax.xml.stream.XMLOutputFactory=com.ctc.wstx.stax.WstxOutputFactory 
                              -Djavax.xml.stream.XMLEventFactory=com.ctc.wstx.stax.WstxEventFactory
                              "

  重新启动weblogic,成功!!!
  希望对大家有些帮助。

1
0
分享到:
评论
3 楼 赤道螞蟻 2010-06-23  
1 樓的你說一下啊  我這邊一台機器可以 一台不可以
2 楼 赤道螞蟻 2010-06-23  
到底是怎麼回事呢 ?
1 楼 howesen 2008-12-12  
这个不行的,可以用webloigc.xml来设定

相关推荐

Global site tag (gtag.js) - Google Analytics