我正在将现有应用程序转换为 OSGI 并遇到以下问题:
[2015-04-24 15:13:07.575] DEBUG start-signalling-3 o.e.gemini.web.tomcat.internal.loading.BundleWebappClassLoader getResource(META-INF/services/com.sun.org.apache.xml.internal.dtm.DTMManager)
[2015-04-24 15:13:07.637] DEBUG start-signalling-3 o.e.gemini.web.tomcat.internal.loading.BundleWebappClassLoader --> Resource not found, returning null
[2015-04-24 15:13:07.637] DEBUG start-signalling-3 o.e.gemini.web.tomcat.internal.loading.BundleWebappClassLoader loadClass(com.sun.org.apache.xml.internal.dtm.ref.DTMManagerDefault, false)
[2015-04-24 15:13:07.637] DEBUG start-signalling-3 o.e.gemini.web.tomcat.internal.loading.BundleWebappClassLoader Searching the application's bundle
[2015-04-24 15:13:07.637] DEBUG start-signalling-3 o.e.gemini.web.tomcat.internal.loading.BundleWebappClassLoader Loading class from the delegating classloader
[2015-04-24 15:13:07.637] DEBUG start-signalling-3 o.e.gemini.web.tomcat.internal.loading.BundleWebappClassLoader getResource(META-INF/services/com.sun.org.apache.xml.internal.dtm.DTMManager)
[2015-04-24 15:13:07.684] DEBUG start-signalling-3 o.e.gemini.web.tomcat.internal.loading.BundleWebappClassLoader --> Resource not found, returning null
[2015-04-24 15:13:07.684] DEBUG start-signalling-3 o.e.gemini.web.tomcat.internal.loading.BundleWebappClassLoader loadClass(com.sun.org.apache.xml.internal.dtm.ref.DTMManagerDefault, false)
[2015-04-24 15:13:07.684] DEBUG start-signalling-3 o.e.gemini.web.tomcat.internal.loading.BundleWebappClassLoader Searching the application's bundle
[2015-04-24 15:13:07.684] DEBUG start-signalling-3 o.e.gemini.web.tomcat.internal.loading.BundleWebappClassLoader Loading class from the delegating classloader
[2015-04-24 15:13:07.684] DEBUG start-signalling-3 o.e.gemini.web.tomcat.internal.loading.BundleWebappClassLoader getResource(META-INF/services/com.sun.org.apache.xml.internal.dtm.DTMManager)
[2015-04-24 15:13:07.746] DEBUG start-signalling-3 o.e.gemini.web.tomcat.internal.loading.BundleWebappClassLoader --> Resource not found, returning null
[2015-04-24 15:13:07.746] DEBUG start-signalling-3 o.e.gemini.web.tomcat.internal.loading.BundleWebappClassLoader loadClass(com.sun.org.apache.xml.internal.dtm.ref.DTMManagerDefault, false)
[2015-04-24 15:13:07.746] DEBUG start-signalling-3 o.e.gemini.web.tomcat.internal.loading.BundleWebappClassLoader Searching the application's bundle
[2015-04-24 15:13:07.746] DEBUG start-signalling-3 o.e.gemini.web.tomcat.internal.loading.BundleWebappClassLoader Loading class from the delegating classloader
[2015-04-24 15:13:07.746] DEBUG start-signalling-3 o.e.gemini.web.tomcat.internal.loading.BundleWebappClassLoader getResource(META-INF/services/com.sun.org.apache.xml.internal.dtm.DTMManager)
[2015-04-24 15:13:07.780] DEBUG start-signalling-3 o.e.gemini.web.tomcat.internal.loading.BundleWebappClassLoader --> Resource not found, returning null
[2015-04-24 15:13:07.781] DEBUG start-signalling-3 o.e.gemini.web.tomcat.internal.loading.BundleWebappClassLoader loadClass(com.sun.org.apache.xml.internal.dtm.ref.DTMManagerDefault, false)
如您所见,它不断地尝试一遍又一遍地加载 DTMManager。我已经解决了日志中的其余错误,这是我看到的最后一件事。我已经尝试了很多方法来加载它,并且从我读过的内容来看,它应该由引导加载程序中的父类加载器根据配置文件加载。我看到了 org.osgi.framework.bootdelegation 的条目,它确实包括这些包:
org.osgi.framework.bootdelegation = \
org.eclipse.virgo.osgi.extensions.*,\
org.eclipse.virgo.osgi.launcher.*,\
org.eclipse.virgo.kernel.authentication,\
com.sun.*,\
javax.xml.*,\
org.apache.xerces.jaxp.*,\
org.w3c.*,\
org.xml.*,\
sun.*
任何帮助都是极好的!
谢谢