php - Tomcat: Handle Servlet Exception -


मैं पीईसीएल-सर्वलेट (PHP / PECL-version 5.2.5) का उपयोग करते हुए मेरे टॉमकेससेवर पर PHP सेट अप कर रहा हूं। सर्वर अब वास्तविक PHP- फाइलों को सफलतापूर्वक संभालता है, लेकिन मुझे कोई समस्या नहीं है।

इस तरह के एक पृष्ठ के लिए एक अनुरोध, f.ex:, servlet को java.io जमा करने का कारण बनता है IOException, जो कभी भी नहीं पकड़ा गया है। इसलिए टॉमकेट को समाप्त कर दिया गया है।

मैं इसे कैसे ठीक कर सकता हूं? क्या मैं सर्विसलेट से अपवाद पा सकता हूं? क्या मौजूदा फाइलों को सर्वलेट में केवल मैप करने का कोई तरीका है?


उत्तर के लिए धन्यवाद, अब यह काम कर रहा है मैंने web.xml में अपना सुझाव दिया फिर से नक्शा, मेरे पहले स्व-निर्मित सर्वलेट में php-files को मानचित्रण किया था, जो मूल रूप से फ़ॉस्सेलेट के चारों ओर लपेटता है और उठाए गए अपवादों का संचालन करता है। क्या यह समस्या को सुलझाने का एक अच्छा तरीका है?

यह मेरे लिए थोड़ा अजीब लगता है कि टॉमकेट इस तरह के अपवादों को अपने दम पर संभालने में सक्षम नहीं है। मैं सर्वर को भ्रष्ट राज्यों में निष्पादित करने से बचाने के लिए बिंदु को समाप्त करने में देख सकता हूं, लेकिन कस्टम अपवाद-हैंडलिंग को सक्षम करना संभव है ...

यह मेरा लोकलहोस्ट है। 2009-12-09। गैर-मौजूद पृष्ठ के साथ सीधे phpservlet को लागू करने के बाद लॉग इन करें:
(समाप्ति के पहले टमाटर स्टैक्सट्र्रेस 4 की पहली पंक्ति को अपने डिफ़ॉल्ट त्रुटि पृष्ठ प्रदर्शित करता है)

 09.des.2009 13:35:50 ORG। Apache.catalina.core.ApplicationContext लॉग INFO: कन्टेक्स्टलाइस्टनर: प्रसंग प्रारंभिक () 09.Des.2009 13:35:50 org.apache.catalina.core.ApplicationContext लॉग INFO: सत्र लिस्टनर: प्रसंग शुरूआती () 09.des.2009 13:35 : 50 org.apache.catalina.core.ApplicationContext लॉग जानकारी: ContextListener: attributeAdded ( 'org.apache.catalina.Registry', 'org.apache.tomcat.util.modeler.Registry@1010058') 09.des.2009 13 : 35: 50 के लिए लॉग इन org.apache.catalina.core.ApplicationContext जानकारी: ContextListener: attributeAdded ( 'org.apache.catalina.MBeanServer', 'com.sun.jmx.mbeanserver.JmxMBeanServer@bdab91') 09.des.2009 13 : 35 : 54 org.apache.catalina.core.StandardWrapperValve invoke SEVERE: servlet.service () servlet php के लिए अपवाद को फेंका गया java.io.IOException: net.php.servlet.send पर (नेटिव मेथोड) net.php.servlet.service पर net.php.servlet.service (servlet.java:214) पर (servlet.java:190) org.apache.catalina.core.ApplicationFilterChain पर javax.servlet.http.HttpServlet.service (HttpServlet.java:717) पर। internalDoFilter (ApplicationFilterChain.java:290) org.apache.catalina.core.ApplicationFilterChain.doFilter पर (ApplicationFilterChain.java:206) org.apache.catalina.core.StandardWrapperValve.invoke पर (StandardWrapperValve.java:233) org.apache पर .catalina.core.StandardContextValve.invoke (StandardContextValve.java:191) org.apache.catalina.core.StandardHostValve.invoke (StandardHostValve.java:128) org.apache.catalina.valves.ErrorReportValve.invoke पर पर (ErrorReportValve.java : 102) org.apache.catalina.core.StandardEngineValve.invoke पर (StandardEngineValve.java:109) org.apache.catalina.connector.CoyoteAdap पर org.apache.coyote.http11.Http11Protocol $ Http11ConnectionHandler.process पर ter.service (CoyoteAdapter.java:286) org.apache.coyote.http11.Http11Processor.process (Http11Processor.java:845) पर (Http11Protocol.java:583) Java.lang.Thread.run पर (org.apache.tomcat.util.net.JIoEndpoint $ Worker.run (JIoEndpoint.java:447) पर 

आप सामान्य रूप से इसे & lt; त्रुटि-पृष्ठ & gt; में web.xml के रूप में घोषित कर सकते हैं।

लेकिन जब से आपने सचमुच कहा, "जो कभी भी नहीं पकड़ा गया है इसलिए टोमकैट को समाप्त कर दिया गया है ", मुझे सेटअप के बारे में संदेह है। क्या आप वास्तव में टॉमकेट के डिफ़ॉल्ट त्रुटि पृष्ठ को एक स्टैकट्र्रेस के अंदर नहीं देखते हैं? क्या आपको एपसेंजर लॉग में कुछ नहीं दिखाई देता है? आपको IOException < / Code>?

कम से कम, आप फ़िल्टर पर url-pattern के *। Php जिसमें मूल रूप से निम्न पंक्तियां हैं:

  सार्वजनिक शून्य doFilter (सर्वलेट अनुरोध अनुरोध, ServletResponse प्रतिक्रिया, FilterChain श्रृंखला) IOException फेंकता है {try {chain.doFilter (अनुरोध, प्रतिक्रिया);} पकड़ (IOException ई ) {// इसे संभाल।}}  

लेकिन आप इस समस्या का वर्णन कैसे करते हुए देखते हैं, मुझे लगता है कि PHP सर्विसलेट या वेबकैटेनर त्रुटि पेज को प्रदर्शित करने में विफल रहा है, क्योंकि प्रतिक्रिया पहले से ही है प्रतिबद्ध है, लेकिन इस मामले में आपको एक बहुत ही आत्म-समझा IllegalStateException: एस्प्रेसर लॉग्स में पहले से ही प्रतिबद्ध त्रुटि दिखाई देनी चाहिए।


Comments

Popular posts from this blog

c# - How to capture HTTP packet with SharpPcap -

jquery - SimpleModal Confirm fails to submit form -

php - Multiple Select with Explode: only returns the word "Array" -