2009-05-11 17 views
16

मैंने एक वेबपैप बनाया जो मेरे लोकहोस्ट (टोमकैट) में पूरी तरह से ठीक काम करता है। लेकिन जब मैं तैनात करने के लिए init (में, वेग दुर्घटनाओं) की कोशिश की, यहाँ (आकार के लिए खेद है) यह अजीब स्टैक ट्रेस के साथ मुझे छोड़ रहा है:वेग में त्रुटि और log4J

 

ERROR [main] (VelocityConfigurator.java:62) - Error initializing Velocity! 
org.apache.velocity.exception.VelocityException: Failed to initialize an instance of org.apache.velocity.runtime.log.Log4JLogChute with the current runtime configuration. 
    at org.apache.velocity.runtime.log.LogManager.createLogChute(LogManager.java:206) 
    at org.apache.velocity.runtime.log.LogManager.updateLog(LogManager.java:255) 
    at org.apache.velocity.runtime.RuntimeInstance.initializeLog(RuntimeInstance.java:795) 
    at org.apache.velocity.runtime.RuntimeInstance.init(RuntimeInstance.java:250) 
    at org.apache.velocity.runtime.RuntimeInstance.init(RuntimeInstance.java:589) 
    at org.apache.velocity.runtime.RuntimeSingleton.init(RuntimeSingleton.java:229) 
    at org.apache.velocity.app.Velocity.init(Velocity.java:107) 
    at com.webcodei.velociraptor.velocity.VelocityConfigurator.initVelocity(VelocityConfigurator.java:57) 
    at com.webcodei.velociraptor.velocity.VelocityConfigurator.configure(VelocityConfigurator.java:42) 
    at com.webcodei.velociraptor.VelociListener.contextInitialized(VelociListener.java:26) 
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3827) 
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4336) 
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:761) 
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:741) 
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525) 
    at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:626) 
    at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:553) 
    at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:488) 
    at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1138) 
    at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311) 
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:120) 
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1023) 
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:719) 
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1015) 
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443) 
    at org.apache.catalina.core.StandardService.start(StandardService.java:448) 
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:710) 
    at org.apache.catalina.startup.Catalina.start(Catalina.java:552) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
    at java.lang.reflect.Method.invoke(Method.java:597) 
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288) 
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413) 
Caused by: java.lang.RuntimeException: Error configuring Log4JLogChute : 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) 
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) 
    at java.lang.reflect.Constructor.newInstance(Constructor.java:513) 
    at org.apache.velocity.util.ExceptionUtils.createWithCause(ExceptionUtils.java:67) 
    at org.apache.velocity.util.ExceptionUtils.createRuntimeException(ExceptionUtils.java:45) 
    at org.apache.velocity.runtime.log.Log4JLogChute.initAppender(Log4JLogChute.java:133) 
    at org.apache.velocity.runtime.log.Log4JLogChute.init(Log4JLogChute.java:85) 
    at org.apache.velocity.runtime.log.LogManager.createLogChute(LogManager.java:157) 
    ... 33 more 
Caused by: java.io.FileNotFoundException: velocity.log (Permission denied) 
    at java.io.FileOutputStream.openAppend(Native Method) 
    at java.io.FileOutputStream.(FileOutputStream.java:177) 
    at java.io.FileOutputStream.(FileOutputStream.java:102) 
    at org.apache.log4j.FileAppender.setFile(FileAppender.java:290) 
    at org.apache.log4j.RollingFileAppender.setFile(RollingFileAppender.java:194) 
    at org.apache.log4j.FileAppender.(FileAppender.java:109) 
    at org.apache.log4j.RollingFileAppender.(RollingFileAppender.java:72) 
    at org.apache.velocity.runtime.log.Log4JLogChute.initAppender(Log4JLogChute.java:118) 
    ... 35 more 
ERROR [main] (VelocityConfigurator.java:63) - java.lang.RuntimeException: Error configuring Log4JLogChute : 
org.apache.velocity.exception.VelocityException: Failed to initialize an instance of org.apache.velocity.runtime.log.Log4JLogChute with the current runtime configuration. 
    at org.apache.velocity.runtime.log.LogManager.createLogChute(LogManager.java:206) 
    at org.apache.velocity.runtime.log.LogManager.updateLog(LogManager.java:255) 
    at org.apache.velocity.runtime.RuntimeInstance.initializeLog(RuntimeInstance.java:795) 
    at org.apache.velocity.runtime.RuntimeInstance.init(RuntimeInstance.java:250) 
    at org.apache.velocity.runtime.RuntimeInstance.init(RuntimeInstance.java:589) 
    at org.apache.velocity.runtime.RuntimeSingleton.init(RuntimeSingleton.java:229) 
    at org.apache.velocity.app.Velocity.init(Velocity.java:107) 
    at com.webcodei.velociraptor.velocity.VelocityConfigurator.initVelocity(VelocityConfigurator.java:57) 
    at com.webcodei.velociraptor.velocity.VelocityConfigurator.configure(VelocityConfigurator.java:42) 
    at com.webcodei.velociraptor.VelociListener.contextInitialized(VelociListener.java:26) 
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3827) 
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4336) 
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:761) 
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:741) 
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525) 
    at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:626) 
    at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:553) 
    at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:488) 
    at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1138) 
    at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311) 
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:120) 
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1023) 
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:719) 
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1015) 
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443) 
    at org.apache.catalina.core.StandardService.start(StandardService.java:448) 
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:710) 
    at org.apache.catalina.startup.Catalina.start(Catalina.java:552) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
    at java.lang.reflect.Method.invoke(Method.java:597) 
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288) 
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413) 
Caused by: java.lang.RuntimeException: Error configuring Log4JLogChute : 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) 
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) 
    at java.lang.reflect.Constructor.newInstance(Constructor.java:513) 
    at org.apache.velocity.util.ExceptionUtils.createWithCause(ExceptionUtils.java:67) 
    at org.apache.velocity.util.ExceptionUtils.createRuntimeException(ExceptionUtils.java:45) 
    at org.apache.velocity.runtime.log.Log4JLogChute.initAppender(Log4JLogChute.java:133) 
    at org.apache.velocity.runtime.log.Log4JLogChute.init(Log4JLogChute.java:85) 
    at org.apache.velocity.runtime.log.LogManager.createLogChute(LogManager.java:157) 
    ... 33 more 
Caused by: java.io.FileNotFoundException: velocity.log (Permission denied) 
    at java.io.FileOutputStream.openAppend(Native Method) 
    at java.io.FileOutputStream.(FileOutputStream.java:177) 
    at java.io.FileOutputStream.(FileOutputStream.java:102) 
    at org.apache.log4j.FileAppender.setFile(FileAppender.java:290) 
    at org.apache.log4j.RollingFileAppender.setFile(RollingFileAppender.java:194) 
    at org.apache.log4j.FileAppender.(FileAppender.java:109) 
    at org.apache.log4j.RollingFileAppender.(RollingFileAppender.java:72) 
    at org.apache.velocity.runtime.log.Log4JLogChute.initAppender(Log4JLogChute.java:118) 
    ... 35 more 
ERROR [main] (VelocityConfigurator.java:64) - Failed to initialize an instance of org.apache.velocity.runtime.log.Log4JLogChute with the current runtime configuration. 
org.apache.velocity.exception.VelocityException: Failed to initialize an instance of org.apache.velocity.runtime.log.Log4JLogChute with the current runtime configuration. 
    at org.apache.velocity.runtime.log.LogManager.createLogChute(LogManager.java:206) 
    at org.apache.velocity.runtime.log.LogManager.updateLog(LogManager.java:255) 
    at org.apache.velocity.runtime.RuntimeInstance.initializeLog(RuntimeInstance.java:795) 
    at org.apache.velocity.runtime.RuntimeInstance.init(RuntimeInstance.java:250) 
    at org.apache.velocity.runtime.RuntimeInstance.init(RuntimeInstance.java:589) 
    at org.apache.velocity.runtime.RuntimeSingleton.init(RuntimeSingleton.java:229) 
    at org.apache.velocity.app.Velocity.init(Velocity.java:107) 
    at com.webcodei.velociraptor.velocity.VelocityConfigurator.initVelocity(VelocityConfigurator.java:57) 
    at com.webcodei.velociraptor.velocity.VelocityConfigurator.configure(VelocityConfigurator.java:42) 
    at com.webcodei.velociraptor.VelociListener.contextInitialized(VelociListener.java:26) 
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3827) 
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4336) 
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:761) 
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:741) 
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525) 
    at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:626) 
    at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:553) 
    at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:488) 
    at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1138) 
    at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311) 
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:120) 
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1023) 
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:719) 
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1015) 
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443) 
    at org.apache.catalina.core.StandardService.start(StandardService.java:448) 
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:710) 
    at org.apache.catalina.startup.Catalina.start(Catalina.java:552) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
    at java.lang.reflect.Method.invoke(Method.java:597) 
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288) 
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413) 
Caused by: java.lang.RuntimeException: Error configuring Log4JLogChute : 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) 
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) 
    at java.lang.reflect.Constructor.newInstance(Constructor.java:513) 
    at org.apache.velocity.util.ExceptionUtils.createWithCause(ExceptionUtils.java:67) 
    at org.apache.velocity.util.ExceptionUtils.createRuntimeException(ExceptionUtils.java:45) 
    at org.apache.velocity.runtime.log.Log4JLogChute.initAppender(Log4JLogChute.java:133) 
    at org.apache.velocity.runtime.log.Log4JLogChute.init(Log4JLogChute.java:85) 
    at org.apache.velocity.runtime.log.LogManager.createLogChute(LogManager.java:157) 
    ... 33 more 
Caused by: java.io.FileNotFoundException: velocity.log (Permission denied) 
    at java.io.FileOutputStream.openAppend(Native Method) 
    at java.io.FileOutputStream.(FileOutputStream.java:177) 
    at java.io.FileOutputStream.(FileOutputStream.java:102) 
    at org.apache.log4j.FileAppender.setFile(FileAppender.java:290) 
    at org.apache.log4j.RollingFileAppender.setFile(RollingFileAppender.java:194) 
    at org.apache.log4j.FileAppender.(FileAppender.java:109) 
    at org.apache.log4j.RollingFileAppender.(RollingFileAppender.java:72) 
    at org.apache.velocity.runtime.log.Log4JLogChute.initAppender(Log4JLogChute.java:118) 
    ... 35 more 


किसी वैकल्पिक हल जानता है? या कम से कम त्रुटि को समझ लिया? मैं कुछ Googling किया है, लेकिन कोई सुराग .. केवल इस page एक ही समस्या है, लेकिन कोई समाधान का सामना करना पड़ ..

उत्तर

9

मुझे लगता है कि इस लाइन का जवाब है। ऐसा लगता है कि velocity.log फ़ाइल बनाने में कोई समस्या है। आपकी कॉन्फ़िगरेशन फ़ाइल कैसी दिखती है?

Caused by: java.io.FileNotFoundException: velocity.log (Permission denied) 
+0

यह बिल्कुल ठीक था, जब मेरे पास समय होता है तो मैं काम को चारों ओर रखूंगा। –

+0

मुझे एक ही समस्या है। Velocity.log फ़ाइल बनाने की कोशिश कहां है? क्या निर्देशिका है? –

+0

मुझे यह समस्या भी थी। मेरा कारण था क्योंकि फ़ाइल वेबसर्वर उपयोगकर्ता की बजाय रूट के स्वामित्व में थी। मैं सीडी/कर समाप्त हो गया; ढूंढें-नाम "velocity.log"। फिर एक बार मुझे यह मिला: : वेग।लॉग –

4

यह प्रक्रिया लॉग फ़ाइल को खोलने के लिए ऐसा करने की अनुमति नहीं है प्रयास करने से प्रकट होता है:

Caused by: java.io.FileNotFoundException: velocity.log (Permission denied) 
34

वेग स्थिति में लॉगफाइल डालने की कोशिश करता है टोमकैट से शुरू किया गया था, और मेरा मानना ​​है कि वास्तव में/है।

आप अपने velocity.properties में ये पंक्तियां जोड़कर बिलाव के मानक लॉग करने के लिए लॉग इन करने के वेग के लिए मजबूर कर सकते हैं:

runtime.log.logsystem.class=org.apache.velocity.runtime.log.SimpleLog4JLogSystem 
runtime.log.logsystem.log4j.category=velocity 
runtime.log.logsystem.log4j.logger=velocity 

velocity.properties /WEB-INF/velocity.properties में जाना चाहिए, लेकिन आप ओवरराइड कर सकते हैं कि आप web.xml में सर्वलेट परिभाषा में।

आप गुण द्वारा वेग initialising और नहीं कर रहे हैं velocity.properties:

VelocityEngine engine = new VelocityEngine(); 

Properties props = new Properties(); 
props.put("runtime.log.logsystem.class", "org.apache.velocity.runtime.log.SimpleLog4JLogSystem"); 
props.put("runtime.log.logsystem.log4j.category", "velocity"); 
props.put("runtime.log.logsystem.log4j.logger", "velocity"); 

engine.init(props); 

यहां अधिक पढ़ें:

http://velocity.apache.org/engine/devel/developer-guide.html#usinglog4jwithexistinglogger

और यहाँ:

http://minaret.biz/tips/tomcatLogging.html#velocity

+0

हाल ही में आपके कोड –

+1

में नए गुण() -> प्रोप को प्रतिस्थापित करें, अनुशंसित SimpleLog4JLogSystem को बहिष्कृत किया जा रहा है, इसलिए कक्षा [Log4JLogChute] (http://velocity.apache.org/engine/devel/apidocs/org/apache /velocity/runtime/log/Log4JLogChute.html) का उपयोग इसके बजाय किया जाना चाहिए। साथ ही, यदि आप सीधे अपने आवेदन को log4j से जोड़ना नहीं चाहते हैं, तो [Slf4jLogChute] (http://velocity.apache.org/engine/devel/apidocs/org/apache/velocity/slf4j/Slf4jLogChute.html) हो सकता है उचित विकल्प – martin

1

मुझे एस का सामना करना पड़ा मुझे मुद्दा है और संभावित कारणों और समाधानों के साथ एक वर्णनात्मक ब्लॉग लिखा है। लिंक यहां दिया गया है। http://techieme.in/failed-to-initialize-an-instance-of-org-apache-velocity-runtime-log-servletlogchute-with-the-current-runtime-configuration/

0

मुझे भी एक ही समस्या थी, लेकिन मैं इसे डिफ़ॉल्ट लॉग फ़ाइल को डिफ़ॉल्ट लॉग फ़ाइल में ओवरराइड करने में सक्षम था। विधि में इस 3 लाइनों को कोड में जोड़ें जहां आप मूल्यांकन समारोह को बुला रहे हैं।

Velocity.setProperty(RuntimeConstants.RUNTIME_LOG_LOGSYSTEM_CLASS,"org.apache.velocity.runtime.log.Log4JLogChute"); 

Velocity.setProperty("runtime.log.logsystem.log4j.logger","com.mindtree.igg.website.email.TemplateMergeUtilVelocityImpl"); 

VelocityContext velocityContext = new VelocityContext(parameters); 

यह संपत्ति फ़ाइल का उपयोग किए बिना इसे हल करने का एक तरीका है।

0

मुझे अपने कोड के साथ बिल्कुल वही समस्या है और इसके लिए गुगलिंग के घंटों के बाद, मैंने बस अपनी परियोजना में कुछ अन्य वेग पुस्तकालयों को जोड़ने का फैसला किया। मेरी परियोजना में केवल अपाचे-वेग जार फ़ाइल थी, फिर here से, मैंने अपने मैवेन प्रोजेक्ट और Yesssssssssss में वेग-दर भी जोड़ा! विजय!