我使用了来自Maven回购的log4j-1.2.17捆绑包。我尝试在捆绑软件中执行此代码(我的捆绑软件调用了log4j-1.2.17捆绑软件)
PropertyConfigurator.configure(props());
private static Properties props() {
Properties props = new Properties();
props.put("log4j.rootLogger", "INFO, R");
props.put("log4j.appender.R",
"org.apache.log4j.DailyRollingFileAppender");
props.put("log4j.appender.R.File", "logs/IhtikaClient.log");
props.put("log4j.appender.R.Append", "true");
props.put("log4j.appender.R.Threshold", "INFO");
props.put("log4j.appender.R.DatePattern", "'.'yyyy-MM-dd");
props.put("log4j.appender.R.layout", "org.apache.log4j.PatternLayout");
props.put("log4j.appender.R.layout.ConversionPattern",
//"%d{HH:mm:ss,SSS} %c - %m%n");
//"[%5p] %d{yyyy-MM-dd mm:ss} (%F:%M:%L)%n%m%n%n");
"[%5p] %d{yyyy-MM-dd mm:ss} %c (%F:%M:%L)%n%m%n");
return props;
}
但是我有错误
log4j:ERROR A "org.apache.log4j.DailyRollingFileAppender" object is not assignable to a "org.apache.log4j.Appender" variable.
log4j:ERROR The class "org.apache.log4j.Appender" was loaded by
log4j:ERROR [org.apache.felix.framework.BundleWiringImpl@9da1dd] whereas object of type
log4j:ERROR "org.apache.log4j.DailyRollingFileAppender" was loaded by [sun.misc.Launcher$AppClassLoader@4b222f].
log4j:ERROR Could not instantiate appender named "R".
log4j:ERROR A "org.apache.log4j.DailyRollingFileAppender" object is not assignable to a "org.apache.log4j.Appender" variable.
log4j:ERROR The class "org.apache.log4j.Appender" was loaded by
log4j:ERROR [org.apache.felix.framework.BundleWiringImpl@9da1dd] whereas object of type
log4j:ERROR "org.apache.log4j.DailyRollingFileAppender" was loaded by [sun.misc.Launcher$AppClassLoader@4b222f].
log4j:ERROR Could not instantiate appender named "R".
捆绑包已按顺序加载
.getBundleContext().installBundle("......../log4j-1.2.17.jar")
.getBundleContext().installBundle("......../I_MainForm-1.0-SNAPSHOT.jar")
如何解决这个错误?拜托,对不起我的英语。最好的问候,亚瑟。
由于您的Log4j类似乎已由sun.misc类加载器加载,我认为某些东西正在从OSGi外部提供log4j类。有Log4J条目解释了为什么它无法加载Log4J类的事实意味着,已经存在某个版本的Log4J 。
您是否正在使用Felix的定制版本?如果可以,您能否找到带有org.osgi.framework.system.packages=...
条目或org.osgi.framework.system.packages.extra=...
条目的配置文件之类的东西?
如果仅删除Log4j捆绑包会怎样?还能找到Log4j类吗?
我正在进行一个使用 spring 3.2.5 .发布hibernate 4.2.15 .最终版karaf 3.0.x 安装自定义包(包含所有实体类)时,<code>抛出PersistentClass名称不能转换为类</code>异常 请在下面找到我的karaf捆绑包列表 查找以下例外 我猜,实体类扫描不正常。这是我的配置 编辑: 请查找以下清单标题条目 我不能解决这个问题。如果任何人有想法,请与我
我有OSGI bundle(比方说A),它依赖于非OSGI库(比方说B)。B正在使用class.ForName加载一个类(库A中的ClassA是库B中的ClassB类型)。我已经包装了库B,使其成为osgi捆绑包,并导入了库A中所需的包,但我无法使用class.forname加载该类。请注意,库B是第三方库,我没有任何控制这一点。 下面是我创建的支持OSGI的库B的清单文件- manifest-v
我正在开发一个具有多个模块的基于Eclipse3.7RCP的应用程序。模块A是一系列库,包括MyBatis-3.2.2.jar。模块B依赖于模块A(manifest.mf中的Require-Bundle),并具有使用MyBatis访问数据库中数据的代码。我在模块B中导出了带有映射器类和XML的包,并在模块A中导入了它们。我正在代码中构建SqlSessionFactory,如果我按名称添加所有映射器
我对Weblogic类加载器有问题。 当我尝试在WL 12.2.1.2.0上部署我的应用程序时,它失败了。在我服务器上的日志中,我看到了 该类属于xml API库。库进入我的应用程序时带有另一个依赖项(即传递依赖项)。xml API的版本是1.4.01。 之后,我在部署描述符中添加了异常: 然后是一个新的部署。所述问题与组织有关。w3c。dom。元素遍历已解决。没有关于缺少组织的任何信息。w3c。
我正在利用mongoose类模式。 并为我的 Node 项目使用 TypeScript。 为了确保我的模型知道我定义的模式,所以我有自动完成等。 然而,模式类变得更加棘手。正如他们文件中所写的: loadclass()函数允许您从ES6类中提取方法、静态和虚拟化。类方法映射到模式方法,静态方法映射到模式静态,getters/setters映射到虚拟化。 所以我的代码看起来像: 我的目标是TypeS
我是CXF和JAXB的新手。作为Java项目的一部分,我正在进行概念验证。试图从wsdl生成客户机,用Apache CXF替换应用程序中的weblogic依赖关系。我的应用程序基于OSGI模型,使用Adobe CQ 5.4作为UI开发的web工具。我的应用程序部署在Oracle weblogic server 10.3.4中,并使用java 1.6运行。 使用Ant1.8作为我的构建脚本来生成We