在JBoss 7下捆绑为WAR的webservice/OSGi应用程序有问题。
我的问题是:
javax.xml.parsers.DocumentBuilderFactory.newInstance()。这将导致异常javax.xml.parsers.FactoryConfigurationError: Provider __redirected.__DocumentBuilderFactory not found。就像在JBoss中一样,系统属性javax.xml.parsers.DocumentBuilderFactory指向上述奇怪的实现__redirected.__DocumentBuilderFactory。谢谢你的帮忙!
发布于 2014-01-13 16:39:32
回答我自己的问题:
jboss-deployment-structure.xml中声明排除而被抑制。__redirected不适合包。我通过引导delegation.In JBoss实现了这一点--一些像"javax.xml.parsers.DocumentBuilderFactory“这样的JDK类通过一个系统属性#被重定向到JBoss包" __redirected”,相应的实现"__ redirected /__DocumentBuilderFactory“通过”引导委托“org.osgi.framework.bootdelegation =__redirected#将父类加载器设置为加载框架的包。它必须能够访问引导代理包,例如"__redirected“org.osgi.framework.bundle.parent = framework。发布于 2014-01-10 11:49:54
发布于 2015-10-13 13:53:12
问题在于setContextClassLoader方法的使用。这将覆盖可以加载DocumentBuilderFactory的类赋值器。解决办法是使用OrderClassLoaders。
Thread currentThread = Thread.currentThread();
ClassLoader originalCl = currentThread.getContextClassLoader();
currentThread.setContextClassLoader( new OrderClassLoaders( myCl, originalCl ) );https://stackoverflow.com/questions/21042633
复制相似问题