2011-12-21 7 views
7

से नकारात्मक समय इस तरह की त्रुटि का कारण क्या हो सकता है? File.java के लिए जावाडोक का कहना है कि अगर यह ऋणात्मक मूल्य में पारित होता है तो यह अपवाद फेंक देगा। तो सवाल यह है कि जैस्पर नकारात्मक मूल्य में क्यों गुजर रहा है। मैंने जैस्पर स्रोतों की तलाश की, लेकिन मुझे उन लोगों को नहीं मिला जो ठीक से मेल खाते हैं, लाइन नंबर काफी मेल नहीं खाते हैं। Javadoc के मुताबिक, संस्करण मैंने File.lastModified से अंतिम संशोधित समय सेट किया है, जिसे कभी भी नकारात्मक मान नहीं देना चाहिए।जेएसपी कंपाइलर

SEVERE: Servlet.service() for servlet jsp threw exception 
java.lang.IllegalArgumentException: Negative time 
     at java.io.File.setLastModified(File.java:1258) 
     at org.apache.jasper.compiler.Compiler.compile(Compiler.java:376) 
     at org.apache.jasper.compiler.Compiler.compile(Compiler.java:353) 
     at org.apache.jasper.compiler.Compiler.compile(Compiler.java:340) 
     at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:646) 
     at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:357) 
     at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390) 
     at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334) 
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) 
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) 
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
     at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:684) 
     at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:471) 
     at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:402) 
     at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:329) 

...

अद्यतन: मैं बिलाव के लिए सूत्रों का कहना है डाउनलोड किया है और स्रोतों के माध्यम से पढ़ें। Compile.java से प्रासंगिक कोड है:

375 File javaFile = new File(ctxt.getServletJavaFileName()); 
376 Long jspLastModified = ctxt.getLastModified(ctxt.getJspFile()); 
377 javaFile.setLastModified(jspLastModified.longValue()); 

ctxt एक JspCompilationContext, जो काम आते हुए रिटर्न -1 डिफ़ॉल्ट रूप से यदि कोई त्रुटि है है, और फ़ाइल एक नकारात्मक तर्क से IllegalArgumentException फेंकता है। मुझे अभी भी पता नहीं है कि मुझे एक त्रुटि क्यों मिल रही है, कम से कम मुझे पता है कि अवैध अर्ग्यूमेंट अपवाद कहां से आ रहा है।

+0

क्या बिलाव संस्करण? क्या मंच बनाने/संस्करण/वास्तुकला? क्या जेडीके बना/संस्करण? – BalusC

+0

टॉमकैट 7, जेडीके 6, प्लेटफार्म रेडहाट 5 – mmorrisson

+0

कृपया संस्करणों में अधिक विशिष्ट बनें। वर्तमान में 23.2 अलग-अलग टॉमकैट 7 संस्करण हैं जिनमें नवीनतम 7.0.23 है, उदाहरण के लिए। – BalusC

उत्तर

0

टॉमकैट में एक बग की तरह दिखें। टॉमकैट 7.0.16 आज़माएं, इसमें यह स्पष्ट रूप से जेनरेट की गई जावा फ़ाइल पर अंतिम संशोधित सेट नहीं करता है। उस संस्करण के बाद यह बदल दिया गया था। अगर यह 7.0.16 के साथ काम करता है, तो मैं report प्लेटफॉर्म के बारे में जितना संभव हो उतना विस्तार से टॉमकैट लोगों को एक बग (रेडहाट 5 पर्याप्त जानकारी नहीं है)।

3

फ़ाइल या युक्त फ़ोल्डर में अंकगणितीय वर्ण होने पर एक बग है। बग has since been fixed as of 7.0.27

मैं वास्तव में 7.0.32 चला रहा हूं और अभी भी इस समस्या का सामना कर रहा हूं लेकिन चूंकि मैंने देखा कि इसमें अंकगणितीय वर्णों के साथ समस्याएं थीं, हालांकि मैं एक सिद्धांत का परीक्षण करता हूं। निश्चित रूप से, मेरी समस्या का कारण यह था क्योंकि युक्त फ़ोल्डर नाम में एक स्पेस कैरेक्टर था। मैंने फ़ोल्डर नाम में जगह हटा दी और यह ठीक काम करता है। मैंने अभी तक यह पता लगाने के लिए गहराई से नहीं देखा है कि अंतरिक्ष के बारे में कोई नई बग रिपोर्ट की गई है, लेकिन मैं इसे देख लूंगा और यदि कोई नहीं तो एक नया सबमिट करूँगा।

4

मुझे यह त्रुटि मिल रही थी जब मेरी WAR फ़ाइल में रिक्त स्थान और अवधिएं थीं। उन्हें हटाने से समस्या ठीक हो गई।

+0

तब भी समस्याएं थी जब WAR फ़ाइल में हाइफ़न था '-' –

5

मैं 7.0.27 के साथ एक ही समस्या थी जब मैं आवेदन संदर्भ में स्लैश के साथ IntelliJ विचार से आवेदन की तैनाती की गई थी - को हटाने यह मेरे लिए काम किया

+0

इंटेलिज 2016.1 में एक ही समस्या में भाग लें। Tomcat कॉन्फ़िगरेशन में अनुप्रयोग संदर्भ में पिछला स्लैश हटाने के बाद यह फिर से काम करता है। धन्यवाद। – Julius