2012-04-02 16 views
8

खोलने पर मैं स्प्रिंगसोर्स टूल सूट 3.0.1, टॉमकैट सर्वर 7.0.21, मैवेन-2.2.1 का उपयोग करता हूं। मैंने सफलतापूर्वक अपना वेब एप्लिकेशन बनाया, टॉमकैट सर्वर चलाया। आवेदन सफलतापूर्वक काम किया। पुनः आरंभ बिलाव सर्वर बाद मैं द्वारा देखा पर वेब पेज login.jsp अपवादों के साथ अगले त्रुटियों बदल जाता है:java.lang.OutOfMemoryError (PermGen space) और java.lang.ClassNotFoundException jsp पेज

org.springframework.web.util.NestedServletException: Handler processing failed; nested exception is java.lang.OutOfMemoryError: PermGen space 

type Exception report 

message 

description The server encountered an internal error() that prevented it from fulfilling this request. 

exception 

org.springframework.web.util.NestedServletException: Handler processing failed; nested exception is java.lang.OutOfMemoryError: PermGen space 
    org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:839) 
    org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719) 
    org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644) 
    org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:549) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:621) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:722) 
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:368) 
    org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109) 
    org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83) 
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) 
    org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:97) 
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) 
    org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:100) 
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) 
    org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:78) 
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) 
    org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:112) 
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) 
    org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54) 
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) 
    org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:35) 
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) 
    org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:177) 
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) 
    org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:187) 
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) 
    org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105) 
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) 
    org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:79) 
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) 
    org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:169) 
    org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237) 
    org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167) 
root cause 

java.lang.OutOfMemoryError: PermGen space 
    java.lang.ClassLoader.defineClass1(Native Method) 
    java.lang.ClassLoader.defineClassCond(ClassLoader.java:631) 
    java.lang.ClassLoader.defineClass(ClassLoader.java:615) 
    java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141) 
    java.net.URLClassLoader.defineClass(URLClassLoader.java:283) 
    java.net.URLClassLoader.access$000(URLClassLoader.java:58) 
    java.net.URLClassLoader$1.run(URLClassLoader.java:197) 
    java.security.AccessController.doPrivileged(Native Method) 
    java.net.URLClassLoader.findClass(URLClassLoader.java:190) 
    java.lang.ClassLoader.loadClass(ClassLoader.java:306) 
    java.lang.ClassLoader.loadClass(ClassLoader.java:247) 
    org.eclipse.jdt.internal.compiler.parser.Parser.createJavadocParser(Parser.java:8256) 
    org.eclipse.jdt.internal.compiler.parser.Parser.<init>(Parser.java:889) 
    org.eclipse.jdt.internal.compiler.Compiler.initializeParser(Compiler.java:685) 
    org.eclipse.jdt.internal.compiler.Compiler.<init>(Compiler.java:283) 
    org.eclipse.jdt.internal.compiler.Compiler.<init>(Compiler.java:204) 
    org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:442) 
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:378) 
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:353) 
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:340) 
    org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:644) 
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:358) 
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:389) 
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:333) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:722) 
note The full stack trace of the root cause is available in the Apache Tomcat/7.0.21 logs. 

और

type Exception report 

message 

description The server encountered an internal error() that prevented it from fulfilling this request. 

exception 

org.apache.jasper.JasperException: java.lang.ClassNotFoundException: org.apache.jsp.WEB_002dINF.views.login_jsp 
    org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:178) 
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:370) 
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:389) 
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:333) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:722) 
    org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:238) 
    org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:250) 
    org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1047) 
    org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:817) 
    org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719) 
    org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644) 
    org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:549) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:621) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:722) 
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:368) 
    org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109) 
    org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83) 
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) 
    org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:97) 
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) 
    org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:100) 
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) 
    org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:78) 
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) 
    org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:112) 
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) 
    org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54) 
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) 
    org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:35) 
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) 
    org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:177) 
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) 
    org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:187) 
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) 
    org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105) 
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) 
    org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:79) 
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) 
    org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:169) 
    org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237) 
    org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167) 
root cause 

java.lang.ClassNotFoundException: org.apache.jsp.WEB_002dINF.views.login_jsp 
    java.net.URLClassLoader$1.run(URLClassLoader.java:202) 
    java.security.AccessController.doPrivileged(Native Method) 
    java.net.URLClassLoader.findClass(URLClassLoader.java:190) 
    org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:132) 
    org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:63) 
    org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:172) 
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:370) 
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:389) 
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:333) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:722) 
    org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:238) 
    org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:250) 
    org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1047) 
    org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:817) 
    org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719) 
    org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644) 
    org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:549) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:621) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:722) 
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:368) 
    org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109) 
    org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83) 
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) 
    org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:97) 
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) 
    org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:100) 
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) 
    org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:78) 
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) 
    org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:112) 
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) 
    org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54) 
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) 
    org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:35) 
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) 
    org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:177) 
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) 
    org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:187) 
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) 
    org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105) 
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) 
    org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:79) 
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) 
    org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:169) 
    org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237) 
    org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167) 
note The full stack trace of the root cause is available in the Apache Tomcat/7.0.21 logs. 

login.jsp - मुख पृष्ठ SpringSecurity द्वारा किया गया है।

मुझे समस्या का स्रोत समझ में नहीं आया, क्योंकि मैंने परियोजना का पुनर्निर्माण नहीं किया था। उसके बाद मैं त्रुटि वसूली के लिए कई तरीके का प्रयास करें:

  • ताज़ा परियोजना
  • स्वच्छ और पुनर्निर्माण परियोजना
  • अद्यतन Maven निर्भरता
  • स्वच्छ बिलाव काम निर्देशिका
  • स्वच्छ ... सर्वर मेनू से बटन

कुछ तरीकों से मेरी मदद नहीं हुई। लेकिन एप्लिकेशन का आंतरिक तर्क ठीक से काम करता है (यह वेब इंटरफेस से जुड़ा नहीं है)। मुझे उचित लॉग संदेश मिलते हैं। लेकिन जैसे ही मैं पेज login.jsp खोलता हूं, मुझे त्रुटि संदेश मिलते हैं। फिर मैंने परियोजना के पिछले स्थिर संस्करण पर वापस जाने की कोशिश की। दुर्भाग्य से मुझे एक ही त्रुटि मिली। http://www.mail-archive.com/[email protected]/msg54797.html और http://wiki.metawerx.net/wiki/Org.apache.jasper.JasperException:

02.04.2012 11:22:41 org.apache.jasper.compiler.TldLocationsCache tldScanJar 
INFO: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time. 
02.04.2012 11:22:44 org.apache.catalina.core.StandardWrapperValve invoke 
SEVERE: Servlet.service() for servlet [appServlet] in context with path [/main] threw exception [Handler processing failed; nested exception is java.lang.OutOfMemoryError: PermGen space] with root cause 
java.lang.OutOfMemoryError: PermGen space 

मैं इसी तरह के सवाल पाया: कंसोल में

लॉग उत्पादन करने से पहले निम्न संदेशों पेज logon.jsp पर त्रुटि संदेश प्रदर्शित करता है। लेकिन यह मेरी मदद नहीं की।

इस समस्या को हल करने के लिए कैसे करें?

+0

@ डिजेरिडू: आप प्रश्न int को विभाजित कर सकते हैं :) – Jayan

+0

क्या login.jsp WEB_INF/views/में स्थित है? –

+0

टॉमकैट का उपयोग करने के लिए कितनी मेमोरी कॉन्फ़िगर की गई है? आपके आवेदन की कितनी मेमोरी की आवश्यकता है? – BalusC

उत्तर

19

OutOfMemory त्रुटि के लिए सुनिश्चित करें कि आप निम्नलिखित मानकों की स्थापना की है (और एक सम्मानजनक मूल्य के साथ)

-Xmx1024m -XX:MaxPermSize=512m 

संपादित करें:

512 एम और 1024M सिर्फ सुझाव! आपको इन सेटिंग्स को अपने हार्डवेयर संसाधनों में बदलने की आवश्यकता हो सकती है।

आमतौर पर आपको लगभग 128 मीटर से शुरू करना चाहिए और प्रत्येक बार जब आप आउटऑफमेमरी त्रुटि प्राप्त करते हैं तो आवंटित राशि को दोगुना करने का प्रयास करें।

उदा।:

  • आप MaxPermSize के लिए 256M है और आप OutOfMemory मिल - नई दहलीज पर सेट किया जाना चाहिए 512 एम

  • आप MaxPermSize के लिए 512 एम है और आप OutOfMemory मिल - नई सीमा 1G

    पर सेट किया जाना चाहिए

जेवीएम पैरामीटर को ट्यून करने के बारे में अधिक जानकारी जावा आधिकारिक दस्तावेज में Oracle पर पाया जा सकता है।

+0

धन्यवाद !!! यह काम करता हैं! – Didgeridoo

+0

खुशी है कि यह मदद की। कृपया उत्तर को सही के रूप में चिह्नित करें। –

+0

धन्यवाद !!! यह काम करता हैं! मैंने इन पैरामीटर को "अपाचे टॉमकैट v7.0.21" लॉन्च कॉन्फ़िगरेशन में "वीएम तर्क" में जोड़ा। मुझे लगता है कि समस्या मेरे लैपटॉप की स्मृति से बाहर थी। मैंने कई अनुप्रयोग बंद कर दिए, स्प्रिंगसोर्स टूल सूट को फिर से शुरू किया और यह काम किया! – Didgeridoo

1

ऐसा लगता है कि जेएसपी को संकलित करने पर टोमकैट गिर रहा है, तो आप जेएसपी को प्रीकंपिल करने पर विचार करना चाहेंगे (जिसमें आपके ऐप को तैनात करने से पहले सिंटैक्स त्रुटियों के लिए जेएसपी की जांच करने का अतिरिक्त लाभ होगा)।

यह भी देखें: How can I make Tomcat pre-compile JSPs on startup?

0

यह निर्भर करता है जो फ़ाइल आप चल रहे हैं, या तो catalina.bat या catalina.sh पर। नीचे के रूप में जावा विकल्प सेट करें और प्रयास करें:

set JAVA_OPTS=%JAVA_OPTS% %LOGGING_CONFIG% -Xms512m -Xmx512m -XX:PermSize=512m -XX:MaxPermSize=1024m 
14

की Bogdan's answer
1. बस एक विस्तारित संस्करण मुख्य मेनू पर खिड़की के पास जाओ -> दिखाएँ देखें -> सर्वर
2. पर 'सर्वर' चालू 'बिलाव' डबल क्लिक करें देखें
3. एक बिलाव अवलोकन पेज खोला जाएगा
4. 'सामान्य सूचना' अनुभाग और 'ओपन लांच विन्यास'
5. पर क्लिक करें 'संपादित विन्यास' पॉपअप पर तर्क टैब
6. ढूँढें 'वीएम तर्क करने के लिए जाना 'सेक्शन और प्लेस -Xmx1024m -XX: MaxPermSize = 512m
7.' ओके 'पर क्लिक करें और अपना टॉमकैट शुरू करें।

+0

क्या मैं 512 एम से अधिक जोड़ सकता हूं? यदि हां, तो अधिकतम मूल्य क्या है जो मैं दे सकता हूं? – user3705478

+0

हां, आप कर सकते हैं। 32/64 बिट जेवीएम और ओएस मेमोरी उपलब्धता के आधार पर अधिकतम मूल्य आपके बॉक्स पर मूल मेमोरी की मात्रा से सीमित है। पीएस: यह भी ध्यान दें कि जावा 8 के बाद से, पर्मजेन को मेटास्पेस क्षेत्र द्वारा प्रतिस्थापित किया गया है। तो तर्क होगा -XX: MaxMetaspaceSize = 512m –

संबंधित मुद्दे