Geronimo StAX无法找到Woodstox实现

时间:2011-09-22 15:10:29

标签: classloader stax geronimo

使用ant,我试图调用一个自定义的任务,我试图使用Axis2调用Web服务。我通过父jar中的Class-Path清单头提供所有jar。 geronimo-stax-api_1.0_spec-1.0.1.jar和wstx-asl-3.2.4.jar都在Class-Path上定义。 StAX api(来自geronimo-stax-api_1.0_spec-1.0.1.jar)正在尝试使用com.ctc.wstx.stax.WstxInputFactory(来自wstx-asl-3.2.4.jar)。我得到Classloader找不到类。这似乎是一个类加载器问题,但我找不到任何错误。奇怪的是,如果我将wstx-asl-3.2.4.jar放在我的系统类路径上,它将被定位。但是Sun / Oracle的jar规范表明Class-Path和系统类路径功能相同,使用相同的系统类加载器。顺便说一句,正如你所看到的,一些罐子是osgi捆绑,我不确定这会导致任何问题。

堆栈跟踪如下所示:

javax.xml.stream.FactoryConfigurationError: Requested factory com.ctc.wstx.stax.WstxInputFactory cannot be located.  Classloader =java.net.URLClassLoader@341960
    at javax.xml.stream.FactoryLocator.loadFactory(FactoryLocator.java:120)
    at javax.xml.stream.FactoryLocator.locate(FactoryLocator.java:109)
    at javax.xml.stream.FactoryLocator.locate(FactoryLocator.java:54)
    at javax.xml.stream.XMLInputFactory.newInstance(XMLInputFactory.java:41)
    at org.apache.axiom.om.util.StAXUtils$7.run(StAXUtils.java:311)
    at java.security.AccessController.doPrivileged(Native Method)
    at org.apache.axiom.om.util.StAXUtils.getXMLInputFactory_perClassLoader(StAXUtils.java:306)
    at org.apache.axiom.om.util.StAXUtils.getXMLInputFactory(StAXUtils.java:76)
    at org.apache.axiom.om.util.StAXUtils.createXMLStreamReader(StAXUtils.java:131)
    at org.apache.axis2.util.XMLUtils.toOM(XMLUtils.java:596)
    at org.apache.axis2.util.XMLUtils.toOM(XMLUtils.java:581)
    at org.apache.axis2.deployment.DescriptionBuilder.buildOM(DescriptionBuilder.java:97)
    at org.apache.axis2.deployment.AxisConfigBuilder.populateConfig(AxisConfigBuilder.java:86)
    at org.apache.axis2.deployment.DeploymentEngine.populateAxisConfiguration(DeploymentEngine.java:641)
    at org.apache.axis2.deployment.FileSystemConfigurator.getAxisConfiguration(FileSystemConfigurator.java:116)
    at org.apache.axis2.context.ConfigurationContextFactory.createConfigurationContext(ConfigurationContextFactory.java:68)
    at org.apache.axis2.context.ConfigurationContextFactory.createConfigurationContextFromFileSystem(ConfigurationContextFactory.java:184)
    at org.apache.axis2.client.ServiceClient.configureServiceClient(ServiceClient.java:150)
    at org.apache.axis2.client.ServiceClient.<init>(ServiceClient.java:143)
    at org.apache.axis2.client.ServiceClient.<init>(ServiceClient.java:244)

0 个答案:

没有答案