Karaf OSGi bundle启动时Blueprint容器报错问题及解决方案
Karaf CXF bundle启动SAXParseException异常解决方案
问题现象
我们在运行的Karaf OSGi服务器中部署了基于CAMEL/CXF处理Web请求的bundle,周末后服务器启动时该bundle持续抛出如下异常:
Unable to start blueprint container for bundle uniworks-camel-web-services/2.3.5 org.xml.sax.SAXParseException; systemId: http://cxf.apache.org/schemas/configuration/cxf-beans.xsd; lineNumber: 1; columnNumber: 1; Premature end of file. at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:203)[:1.8.0_221] at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:177)[:1.8.0_221] at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:400)[:1.8.0_221] .. etc. (完整栈追踪可按需提供)
出现问题时该模块相关代码无任何变更,甚至同一服务器上的旧版本也同步出现该问题,已导致线上业务中断。
解决方案
升级blueprint-core至1.6.2版本即可解决,该版本无需联网校验XML文件,具体操作步骤如下:
- 下载
org.apache.aries.blueprint.core-1.6.2.jar,放入路径system/org/apache/aries/blueprint/org.apache.aries.blueprint.core/1.6.2/文件夹下 - 编辑
system/org/apache/karaf/features/standard/4.0.5/standard-4.0.5-features.xml文件,将其中的blueprint-core版本修改为1.6.2 - 在Karaf的
etc文件夹下创建overrides.properties文件,添加如下内容:mvn:org.apache.aries.blueprint/org.apache.aries.blueprint.core/1.6.2 - 重启Karaf服务器即可加载新版本组件,恢复业务。
内容的提问来源于stack exchange,提问作者DuncanKinnear
相关产品推荐
相关产品推荐

