java - Read log4j.xml from within a jar in Spring app -
i trying read log4j.cml within jar. conf like
<bean id="log4jinitialization" class="org.springframework.beans.factory.config.methodinvokingfactorybean"> <property name="targetclass" value="org.springframework.util.log4jconfigurer" /> <property name="targetmethod" value="initlogging" /> <property name="arguments"> <list> <value>classpath*:conf/prod/log4j.xml</value> </list> </property> </bean>
it throws following exception:
log4j:error not parse url [file:/users/sgoyal/workspace/matchmaker-service/classpath*:conf/prod/log4j.xml]. java.io.filenotfoundexception: /users/sgoyal/workspace/matchmaker-service/classpath*:conf/prod/log4j.xml (no such file or directory) @ java.io.fileinputstream.open(native method) @ java.io.fileinputstream.<init>(fileinputstream.java:106) @ java.io.fileinputstream.<init>(fileinputstream.java:66) @ sun.net.www.protocol.file.fileurlconnection.connect(fileurlconnection.java:70) @ sun.net.www.protocol.file.fileurlconnection.getinputstream(fileurlconnection.java:161) @ java.net.url.openstream(url.java:1010) @ org.apache.xerces.impl.xmlentitymanager.setupcurrententity(unknown source) @ org.apache.xerces.impl.xmlversiondetector.determinedocversion(unknown source) @ org.apache.xerces.parsers.xml11configuration.parse(unknown source) @ org.apache.xerces.parsers.dtdconfiguration.parse(unknown source) @ org.apache.xerces.parsers.xmlparser.parse(unknown source) @ org.apache.xerces.parsers.domparser.parse(unknown source) @ org.apache.xerces.jaxp.documentbuilderimpl.parse(unknown source) @ javax.xml.parsers.documentbuilder.parse(documentbuilder.java:180) @ org.apache.log4j.xml.domconfigurator$2.parse(domconfigurator.java:612) @ org.apache.log4j.xml.domconfigurator.doconfigure(domconfigurator.java:711) @ org.apache.log4j.xml.domconfigurator.doconfigure(domconfigurator.java:618) @ org.apache.log4j.xml.domconfigurator.configure(domconfigurator.java:743) @ org.springframework.util.log4jconfigurer.initlogging(log4jconfigurer.java:69) @ sun.reflect.nativemethodaccessorimpl.invoke0(native method) @ sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl.java:39) @ sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:25) @ java.lang.reflect.method.invoke(method.java:597) @ org.springframework.util.methodinvoker.invoke(methodinvoker.java:273) @ org.springframework.beans.factory.config.methodinvokingfactorybean.doinvoke(methodinvokingfactorybean.java:162) @ org.springframework.beans.factory.config.methodinvokingfactorybean.afterpropertiesset(methodinvokingfactorybean.java:152) @ org.springframework.beans.factory.support.abstractautowirecapablebeanfactory.invokeinitmethods(abstractautowirecapablebeanfactory.java:1469) @ org.springframework.beans.factory.support.abstractautowirecapablebeanfactory.initializebean(abstractautowirecapablebeanfactory.java:1409) @ org.springframework.beans.factory.support.abstractautowirecapablebeanfactory.docreatebean(abstractautowirecapablebeanfactory.java:519) @ org.springframework.beans.factory.support.abstractautowirecapablebeanfactory.createbean(abstractautowirecapablebeanfactory.java:456) @ org.springframework.beans.factory.support.abstractbeanfactory$1.getobject(abstractbeanfactory.java:291) @ org.springframework.beans.factory.support.defaultsingletonbeanregistry.getsingleton(defaultsingletonbeanregistry.java:222) @ org.springframework.beans.factory.support.abstractbeanfactory.dogetbean(abstractbeanfactory.java:288) @ org.springframework.beans.factory.support.abstractbeanfactory.gettypeforfactorybean(abstractbeanfactory.java:1328) @ org.springframework.beans.factory.support.abstractautowirecapablebeanfactory.gettypeforfactorybean(abstractautowirecapablebeanfactory.java:678) @ org.springframework.beans.factory.support.abstractbeanfactory.istypematch(abstractbeanfactory.java:500) @ org.springframework.beans.factory.support.defaultlistablebeanfactory.getbeannamesfortype(defaultlistablebeanfactory.java:317) @ org.springframework.beans.factory.beanfactoryutils.beannamesfortypeincludingancestors(beanfactoryutils.java:185) @ org.springframework.beans.factory.support.defaultlistablebeanfactory.findautowirecandidates(defaultlistablebeanfactory.java:823) @ org.springframework.beans.factory.support.defaultlistablebeanfactory.doresolvedependency(defaultlistablebeanfactory.java:780) @ org.springframework.beans.factory.support.defaultlistablebeanfactory.resolvedependency(defaultlistablebeanfactory.java:697) @ org.springframework.beans.factory.annotation.autowiredannotationbeanpostprocessor$autowiredfieldelement.inject(autowiredannotationbeanpostprocessor.java:478) @ org.springframework.beans.factory.annotation.injectionmetadata.inject(injectionmetadata.java:84) @ org.springframework.beans.factory.annotation.autowiredannotationbeanpostprocessor.postprocesspropertyvalues(autowiredannotationbeanpostprocessor.java:283) @ org.springframework.beans.factory.support.abstractautowirecapablebeanfactory.populatebean(abstractautowirecapablebeanfactory.java:1064) @ org.springframework.beans.factory.support.abstractautowirecapablebeanfactory.docreatebean(abstractautowirecapablebeanfactory.java:517) @ org.springframework.beans.factory.support.abstractautowirecapablebeanfactory.createbean(abstractautowirecapablebeanfactory.java:456) @ org.springframework.beans.factory.support.abstractbeanfactory$1.getobject(abstractbeanfactory.java:291) @ org.springframework.beans.factory.support.defaultsingletonbeanregistry.getsingleton(defaultsingletonbeanregistry.java:222) @ org.springframework.beans.factory.support.abstractbeanfactory.dogetbean(abstractbeanfactory.java:288) @ org.springframework.beans.factory.support.abstractbeanfactory.getbean(abstractbeanfactory.java:190) @ org.springframework.beans.factory.support.defaultlistablebeanfactory.preinstantiatesingletons(defaultlistablebeanfactory.java:574) @ org.springframework.context.support.abstractapplicationcontext.finishbeanfactoryinitialization(abstractapplicationcontext.java:895) @ org.springframework.context.support.abstractapplicationcontext.refresh(abstractapplicationcontext.java:425) @ org.springframework.web.context.contextloader.createwebapplicationcontext(contextloader.java:276) @ org.springframework.web.context.contextloader.initwebapplicationcontext(contextloader.java:197) @ org.springframework.web.context.contextloaderlistener.contextinitialized(contextloaderlistener.java:47) @ org.mortbay.jetty.handler.contexthandler.startcontext(contexthandler.java:548) @ org.mortbay.jetty.servlet.context.startcontext(context.java:136) @ org.mortbay.jetty.webapp.webappcontext.startcontext(webappcontext.java:1250) @ org.mortbay.jetty.handler.contexthandler.dostart(contexthandler.java:517) @ org.mortbay.jetty.webapp.webappcontext.dostart(webappcontext.java:467) @ org.mortbay.jetty.plugin.jetty6pluginwebappcontext.dostart(jetty6pluginwebappcontext.java:124) @ org.mortbay.component.abstractlifecycle.start(abstractlifecycle.java:50) @ org.mortbay.jetty.handler.handlercollection.dostart(handlercollection.java:152) @ org.mortbay.jetty.handler.contexthandlercollection.dostart(contexthandlercollection.java:156) @ org.mortbay.component.abstractlifecycle.start(abstractlifecycle.java:50) @ org.mortbay.jetty.handler.handlercollection.dostart(handlercollection.java:152) @ org.mortbay.component.abstractlifecycle.start(abstractlifecycle.java:50) @ org.mortbay.jetty.handler.handlerwrapper.dostart(handlerwrapper.java:130) @ org.mortbay.jetty.server.dostart(server.java:224) @ org.mortbay.component.abstractlifecycle.start(abstractlifecycle.java:50) @ org.mortbay.jetty.plugin.jetty6pluginserver.start(jetty6pluginserver.java:132) @ org.mortbay.jetty.plugin.abstractjettymojo.startjetty(abstractjettymojo.java:441) @ org.mortbay.jetty.plugin.abstractjettymojo.execute(abstractjettymojo.java:383) @ org.mortbay.jetty.plugin.abstractjettyrunmojo.execute(abstractjettyrunmojo.java:210) @ org.mortbay.jetty.plugin.jetty6runmojo.execute(jetty6runmojo.java:184) @ org.apache.maven.plugin.defaultpluginmanager.executemojo(defaultpluginmanager.java:483) @ org.apache.maven.lifecycle.defaultlifecycleexecutor.executegoals(defaultlifecycleexecutor.java:678) @ org.apache.maven.lifecycle.defaultlifecycleexecutor.executestandalonegoal(defaultlifecycleexecutor.java:553) @ org.apache.maven.lifecycle.defaultlifecycleexecutor.executegoal(defaultlifecycleexecutor.java:523) @ org.apache.maven.lifecycle.defaultlifecycleexecutor.executegoalandhandlefailures(defaultlifecycleexecutor.java:371) @ org.apache.maven.lifecycle.defaultlifecycleexecutor.executetasksegments(defaultlifecycleexecutor.java:332) @ org.apache.maven.lifecycle.defaultlifecycleexecutor.execute(defaultlifecycleexecutor.java:181) @ org.apache.maven.defaultmaven.doexecute(defaultmaven.java:356) @ org.apache.maven.defaultmaven.execute(defaultmaven.java:137) @ org.apache.maven.cli.mavencli.main(mavencli.java:362) @ org.apache.maven.cli.compat.compatiblemain.main(compatiblemain.java:41) @ sun.reflect.nativemethodaccessorimpl.invoke0(native method) @ sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl.java:39) @ sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:25) @ java.lang.reflect.method.invoke(method.java:597) @ org.codehaus.classworlds.launcher.launchenhanced(launcher.java:315) @ org.codehaus.classworlds.launcher.launch(launcher.java:255) @ org.codehaus.classworlds.launcher.mainwithexitcode(launcher.java:430) @ org.codehaus.classworlds.launcher.main(launcher.java:375)
- i can see, not able find/read xml.
- have verified file present
- can read config property files in similar manner in same app.
- any pointer? (have searched google et al.)
-- thanks!
found solution.. need not use *
specify location of log4j.xml file. bad, guys. sorry wasting time. other fool me :(
<bean id="log4jinitialization" class="org.springframework.beans.factory.config.methodinvokingfactorybean"> <property name="targetclass" value="org.springframework.util.log4jconfigurer" /> <property name="targetmethod" value="initlogging" /> <property name="arguments"> <value>classpath:conf/prod/log4j.xml</value> </property> </bean>
Comments
Post a Comment