Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 尝试通过XML文件初始化ehcache时发生NoClassDefFoundError_Java_Weblogic_Classloader_Ehcache_Saxon - Fatal编程技术网

Java 尝试通过XML文件初始化ehcache时发生NoClassDefFoundError

Java 尝试通过XML文件初始化ehcache时发生NoClassDefFoundError,java,weblogic,classloader,ehcache,saxon,Java,Weblogic,Classloader,Ehcache,Saxon,我在尝试初始化ehcache时遇到此问题: Caused by: org.jboss.weld.exceptions.WeldException: WELD-000049 Unable to invoke [method] @PostConstruct private cerebro84.util.cache.CacheManagerServiceBean.initialize() on cerebro84.util.cache.CacheManagerServiceBean@3ee90439

我在尝试初始化ehcache时遇到此问题:

Caused by: org.jboss.weld.exceptions.WeldException: WELD-000049 Unable to invoke [method] @PostConstruct private cerebro84.util.cache.CacheManagerServiceBean.initialize() on cerebro84.util.cache.CacheManagerServiceBean@3ee90439
                at org.jboss.weld.bean.AbstractClassBean.defaultPostConstruct(AbstractClassBean.java:405)
                at org.jboss.weld.bean.ManagedBean$ManagedBeanInjectionTarget.postConstruct(ManagedBean.java:178)
                at org.jboss.weld.bean.ManagedBean.create(ManagedBean.java:298)
                at org.jboss.weld.context.AbstractContext.get(AbstractContext.java:103)
                at org.jboss.weld.bean.proxy.ContextBeanInstance.getInstance(ContextBeanInstance.java:90)
                at org.jboss.weld.bean.proxy.ProxyMethodHandler.invoke(ProxyMethodHandler.java:79)
                at cerebro84.util.cache.CacheManagerServiceBean$Proxy$_$$_WeldClientProxy.getFromCache(CacheManagerServiceBean$Proxy$_$$_WeldClientProxy.java)
                at cerebro84.util.cache.CacheMethodInterceptor.getResultFromCache(CacheMethodInterceptor.java:29)
                ... 
Caused by: java.lang.reflect.InvocationTargetException
                at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
                at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
                at java.lang.reflect.Method.invoke(Method.java:498)
                at org.jboss.weld.util.reflection.SecureReflections$13.work(SecureReflections.java:267)
                at org.jboss.weld.util.reflection.SecureReflectionAccess.run(SecureReflectionAccess.java:52)
                at org.jboss.weld.util.reflection.SecureReflectionAccess.runAsInvocation(SecureReflectionAccess.java:137)
                at org.jboss.weld.util.reflection.SecureReflections.invoke(SecureReflections.java:263)
                at org.jboss.weld.introspector.jlr.WeldMethodImpl.invoke(WeldMethodImpl.java:168)
                at org.jboss.weld.bean.AbstractClassBean.defaultPostConstruct(AbstractClassBean.java:403)
                ... 210 more
Caused by: java.lang.NoClassDefFoundError: net/sf/saxon/trans/XPathException
                at net.sf.saxon.IdentityTransformerHandler.startDocument(IdentityTransformerHandler.java:110)
                at com.sun.xml.bind.v2.runtime.unmarshaller.DomLoader$State.<init>(DomLoader.java:83)
                at com.sun.xml.bind.v2.runtime.unmarshaller.DomLoader.startElement(DomLoader.java:118)
                at com.sun.xml.bind.v2.runtime.unmarshaller.ProxyLoader.startElement(ProxyLoader.java:60)
                at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext._startElement(UnmarshallingContext.java:528)
                at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext.startElement(UnmarshallingContext.java:507)
                at com.sun.xml.bind.v2.runtime.unmarshaller.InterningXmlVisitor.startElement(InterningXmlVisitor.java:75)
                at com.sun.xml.bind.v2.runtime.unmarshaller.SAXConnector.startElement(SAXConnector.java:178)
                at com.sun.xml.bind.unmarshaller.DOMScanner.visit(DOMScanner.java:244)
                at com.sun.xml.bind.unmarshaller.DOMScanner.visit(DOMScanner.java:281)
                at com.sun.xml.bind.unmarshaller.DOMScanner.visit(DOMScanner.java:250)
                at com.sun.xml.bind.unmarshaller.DOMScanner.visit(DOMScanner.java:281)
                at com.sun.xml.bind.unmarshaller.DOMScanner.visit(DOMScanner.java:250)
                at com.sun.xml.bind.unmarshaller.DOMScanner.scan(DOMScanner.java:127)
                at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:369)
                at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:348)
                at org.ehcache.xml.ConfigurationParser.<init>(ConfigurationParser.java:177)
                at org.ehcache.xml.XmlConfiguration.parseConfiguration(XmlConfiguration.java:178)
                at org.ehcache.xml.XmlConfiguration.<init>(XmlConfiguration.java:166)
                at org.ehcache.xml.XmlConfiguration.<init>(XmlConfiguration.java:134)
                at org.ehcache.jsr107.EhcacheCachingProvider$ConfigSupplier.getConfiguration(EhcacheCachingProvider.java:327)
                at org.ehcache.jsr107.EhcacheCachingProvider.getCacheManager(EhcacheCachingProvider.java:127)
                at org.ehcache.jsr107.EhcacheCachingProvider.getCacheManager(EhcacheCachingProvider.java:78)
                at org.ehcache.jsr107.EhcacheCachingProvider.getCacheManager(EhcacheCachingProvider.java:186)
                at cerebro84.util.cache.CacheManagerServiceBean.initialize(CacheManagerServiceBean.java:38)
                ... 220 more
我尝试添加以下行

<wls:package-name>net.sf.saxon.*</wls:package-name>
该模块在
ear
多模块应用程序中打包为
jar

有人知道如何确保类
XPathException
总是被saxon找到吗?提前谢谢。

像这样的问题通常是由于在类路径上同时有几个不同版本的Saxon造成的。

对,我也这么认为;在这种情况下,我们可以看到ehcache扫描类路径寻找配置(org.ehcache.xml.XmlConfiguration.parseConfiguration),显然它在SaxonTank上发现了一条死胡同。你,我发现saxon9he确实是重复的,多亏了tattletale,但它们都在同一个版本上,两者都包含
net.sf.saxon.trans.XPathException
。这是个问题吗?我没有办法总是复制这个bug,所以在我再次出现问题之前,我不确定是否通过删除重复来修复它。我认为即使它们是相同的版本,如果它们是由不同的类加载器从不同的JAR文件加载的,这也可能是一个问题。但是类加载问题似乎总是涉及到一个黑魔法的元素,并且很大程度上取决于您使用的应用程序框架,因此很难提供具体的帮助。
<wls:package-name>net.sf.saxon.*</wls:package-name>
<dependency>
    <groupId>net.sf.saxon</groupId>
    <artifactId>Saxon-HE</artifactId>
    <version>9.5.1-8</version>
</dependency>