我正在尝试进行一些开发,我正在使用log4j将一些事件记录到我们的数据库中。我创建了JDBC appender的子类,因此我们可以正确地与数据库进行交互。
log4j.properties文件位于src / main / resources。
然而,当我跑掉MuleStudio时,我得到了这个输出:
log4j:ERROR Could not instantiate class [com.mycompany.mule.log.appender.MySuperAppender].
java.lang.ClassNotFoundException: com.mycompany.mule.log.appender.MySuperAppender
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at org.apache.log4j.helpers.Loader.loadClass(Loader.java:198)
at org.apache.log4j.helpers.OptionConverter.instantiateByClassName(OptionConverter.java:326)
at org.apache.log4j.helpers.OptionConverter.instantiateByKey(OptionConverter.java:123)
at org.apache.log4j.PropertyConfigurator.parseAppender(PropertyConfigurator.java:752)
at org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:735)
at org.apache.log4j.PropertyConfigurator.parseCatsAndRenderers(PropertyConfigurator.java:639)
at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:504)
at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:547)
at org.apache.log4j.helpers.OptionConverter.selectAndConfigure(OptionConverter.java:483)
at org.apache.log4j.LogManager.<clinit>(LogManager.java:127)
at org.apache.log4j.Logger.getLogger(Logger.java:117)
at org.mule.module.logging.LoggerReferenceHandler.<init>(LoggerReferenceHandler.java:28)
at org.mule.module.logging.MuleLogFactory.<init>(MuleLogFactory.java:41)
at org.apache.commons.logging.LogFactory.<clinit>(LogFactory.java:32)
at org.mule.module.launcher.DefaultMuleDeployer.<init>(DefaultMuleDeployer.java:33)
at org.mule.tooling.server.application.ApplicationDeployer.main(ApplicationDeployer.java:87)
log4j:ERROR Could not instantiate appender named "DBappender".
我还在log4j.properties中指定了其他appender,并且这些appender加载正常。
我做了一些研究(大约三四个小时),这似乎是类加载器的一个问题。我按照the documentation尝试覆盖了类加载器但没有成功。我直接编辑了mule-deploy.properties文件(我无法从MuleStudio中找到&#34;正确的#34;方法)
loader.override=com.mycompany.mule.log.appender.MySuperAppender
我有点困惑,为什么它不能在MuleStudio中工作,但是当我在Mule-standalone实例中部署应用程序时,它工作正常。有什么想法吗?