2011-01-15 15 views
9

निष्पादित करने के बजाय स्रोत कोड प्रदर्शित करना मैं jsp के लिए नया हूं और कुछ परेशानी में भाग गया हूं। प्रारंभ में, जेएसपी फ़ाइल और संबंधित जावा वर्गों को परीक्षण टॉमकैट सर्वर पर ठीक से बनाया और परीक्षण किया गया था। अब, उन्हें एक और सर्वर में परिवर्तित कर दिया गया है जो मुझे लगता है कि एक ही सेटअप है (इसके अलावा विंडोज़ के बजाय अब लिनक्स को छोड़कर)। लेकिन जब jsp पेज को एक्सेस किया जाता है तो जेएसपी वास्तव में निष्पादित करने के बजाय स्रोत कोड प्रदर्शित होता है। मैंने थोड़ी देर के लिए गुगल किया है लेकिन कोई सफलता नहीं मिली है। पृष्ठ के स्रोतजेएसपी

Hello! The time is now <%= new java.util.Date() %> 

:

<HTML> 
<BODY> 
Hello! The time is now <%= new java.util.Date() %> 
</BODY> 
</HTML> 

और यहाँ क्या मैं अपने ब्राउज़र में देखने के लिए जब पृष्ठ पर जाकर है:

यहाँ jsp फ़ाइल मैं परीक्षण कर रहा हूँ के कोड है उदाहरण फ़ाइल में टाइप किया गया सटीक कोड है:

<HTML> 
<BODY> 
Hello! The time is now <%= new java.util.Date() %> 
</BODY> 
</HTML> 

सर्वर काम कर रहा प्रतीत होता है। यहाँ प्रतिक्रिया हेडर मैं Firebug से प्राप्त होता है:

Date Sat, 15 Jan 2011 20:53:24 GMT 
Server Apache/2.2.3 (CentOS) 
Last-Modified Sat, 15 Jan 2011 02:20:18 GMT 
Etag "b385d8-55-499d931205c80" 
Accept-Ranges bytes 
Content-Length 85 
Content-Type text/html; charset=UTF-8 

मैंने सोचा था कि this page समस्या का समाधान हो सकता है के बाद से वहाँ मेरे web.xml फ़ाइल में मैं निम्नलिखित स्निपेट उपयोग कर रहा था या यहाँ तक कि jsp फ़ाइल के लिए कोई संदर्भ था वेब-आईएनएफ फ़ोल्डर में:

<servlet> 
    <servlet-name>jsp</servlet-name> 
    <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class> 
    <init-param> 
     <param-name>logVerbosityLevel</param-name> 
     <param-value>WARNING</param-value> 
    </init-param> 
    <load-on-startup>3</load-on-startup> 
</servlet> 
<servlet-mapping> 
    <servlet-name>jsp</servlet-name> 
    <url-pattern>*.jsp</url-pattern> 
</servlet-mapping> 

मैंने इन पंक्तियों को डालने और टॉमकैट को पुनरारंभ करने का प्रयास किया, लेकिन कोई सफलता नहीं मिली। कोई विचार?

+1

क्या आप वाकई अनुरोध टॉमकैट तक पहुंचते हैं? क्या सामने कोई और वेबसर्वर है? Servlets के बारे में कैसे? क्या वे कार्य करते हैं? – Thilo

+0

जेएसपी में आपके पास वास्तव में क्या है और आप ब्राउज़र में वास्तव में क्या देख रहे हैं? HTML स्रोत में वास्तव में क्या है? (ब्राउज़र में दाएं क्लिक करें, * स्रोत देखें * चुनें) मुझे दिलचस्पी होगी कि आप "स्रोत कोड" के साथ वास्तव में क्या मतलब रखते हैं। जेएसपी टैग? जेएसटीएल टैग? ईएल? Scriptlets? या यहां तक ​​कि एचटीएमएल भी? आपको पूर्ण कोड पोस्ट करने की आवश्यकता नहीं है, केवल न्यूनतम जेएसपी फ़ाइल जो व्यवहार को प्रदर्शित करती है वह पर्याप्त है। – BalusC

+1

@ थिलो: अगर अनुरोध टोमकैट तक नहीं पहुंचा, तो वह जेएसपी से कुछ भी नहीं देखा होता, अकेले स्रोत कोड दें। हालांकि मैं उम्मीद करता हूं कि ओपी अनिवार्य रूप से जेएसपी फाइलों को टॉमकैट के बजाय किसी अन्य वेबसर्वर में छोड़ने के लिए गूंगा नहीं है :) – BalusC

उत्तर

2
प्रतिक्रिया हेडर से

:

सर्वर अपाचे/2.2.3 (CentOS)

यह Apache Tomcat द्वारा कार्य नहीं है, लेकिन Apache HTTPD द्वारा। आपने इसे टॉमकैट पर बिल्कुल तैनात नहीं किया था।

+0

"@ थिलो: अगर अनुरोध टोमकैट तक नहीं पहुंचा, तो उसने जेएसपी से कुछ भी नहीं देखा होगा, अकेले स्रोत कोड दें। हालांकि मैं आशा करता हूं कि ओपी यह नहीं है कि किसी अन्य वेबसर्वर में जेएसपी फाइलों को छोड़ने के लिए ओपी अनजाने में गूंगा नहीं है Tomcat के बजाय :) ":-) – Thilo

1

देखें कि यह कहां कहता है "logVerbosityLevel" और "चेतावनी"? डबिंग को चेतावनी बदलें। आप अपनी catalina.sh स्क्रिप्ट भी पा सकते हैं और अपना जावा कमांड पा सकते हैं और सुनिश्चित कर सकते हैं कि फ्लैग-डीडीईबीयूजी स्टार्टअप विकल्पों में शामिल है।

पूर्ण डीबग मोड के साथ आपके लॉग में देखकर आपको बताएगा कि क्या नए सर्वर पर टॉमकैट शुरू करने में कोई समस्या है या नहीं।

उदाहरण के लिए, आपके पास गायब डिस्पेंसेंसी या निर्भरता संघर्ष हो सकता है जो कम जानकारीपूर्ण लॉगिंग स्तर के साथ प्रदर्शित नहीं हो रहा है।

आखिरकार, क्या आपने एक साधारण जेएसपी परीक्षण पृष्ठ की कोशिश की है?

 <% out.println("Hello"); %> 

यदि आप इसे जेएसपी में डालते हैं और इसे लोड करने का प्रयास करते हैं, तो क्या आप जेएसपी या आउटपुट देखते हैं?

क्या आपने अपने अनुरोध में टॉमकैट पोर्ट का उपयोग करने का प्रयास किया है? आमतौर पर, यह 8080 है। मुझे लगता है कि एक टिप्पणीकार ने उल्लेख किया कि एक संभावना के रूप में।

2

मुझे अभी भी यही समस्या है, इस तरह मैंने इस पोस्ट पर ठोकर खाई। मेरे लिए, यह पता चला कि यह मुद्दा CATALINA_HOME और CATALINA_BASE के बीच का अंतर था। मुझे लगता है कि बहुत से लोगों को यह नहीं पता कि यह दो अलग-अलग जगह है। मेरे उबंटू पर, CATALINA_HOME/usr/share/tomcat6 में था लेकिन CATALINA_BASE/var/lib/tomcat6 में था।यह मायने रखता है क्योंकि आपको अपनी jsp फ़ाइलों को CATALINA_BASE में रखना होगा। तो, वास्तव में, मैं कहूंगा कि टॉमकैट आपका कोड नहीं ढूंढ रहा था, भले ही आपके ब्राउज़र को फ़ाइल मिली और खुशी से इसे आपके लिए प्रदर्शित किया गया क्योंकि यह अन्य टेक्स्ट फाइलें करता है।

आशा है कि यह किसी और की मदद करता है जो एक ही समस्या के साथ यहां आता है - यह स्टैक ओवरव्लो पर एक उत्तर पोस्ट करने का मेरा पहला प्रयास है।