JSP отображает исходный код вместо выполнения - PullRequest
11 голосов
/ 15 января 2011

Я новичок в jsp и столкнулся с некоторыми проблемами.Первоначально файл jsp и связанные с ним классы java были хорошо собраны и протестированы на тестовом сервере Tomcat.Теперь они были перенесены на другой сервер, который, как я считаю, имеет те же настройки (за исключением того, что теперь это Linux вместо Windows).Но при доступе к странице jsp отображается исходный код вместо фактически выполняемого jsp.Я некоторое время гуглил, но не получил успеха.

Вот код jsp-файла, который я тестирую:

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

И вот что я вижу в своем браузере при навигациина страницу:

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

Источником страницы является точный код, введенный в файле примера:

<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

Я думал, что эта страница может решить проблему, так как не было ссылки на файл jsp, который я использовал или дажеследующие фрагменты в моем файле web.xml в папке WEB-INF:

<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>

Я попытался вставить эти строки и перезапустить Tomcat, но безуспешно.Есть идеи?

Ответы [ 3 ]

3 голосов
/ 16 января 2011

Из заголовков ответа:

Сервер Apache / 2.2.3 (CentOS)

Не обслуживается Apache Tomcat , но Apache HTTPD . Вы вообще не развернули его в Tomcat.

3 голосов
/ 08 августа 2013

У меня только что была такая же проблема, вот как я наткнулся на этот пост.Для меня оказалось, что проблема заключается в разнице между CATALINA_HOME и CATALINA_BASE.Я думаю, что многие люди не понимают, что это два разных места.В моем Ubuntu CATALINA_HOME находился в / usr / share / tomcat6, но CATALINA_BASE находился в / var / lib / tomcat6.Это важно, потому что вам нужно поместить файлы jsp в CATALINA_BASE.Так что, на самом деле, я бы сказал, что Tomcat не нашел ваш код, даже если ваш браузер нашел файл и с радостью отобразил его для вас, как и для других текстовых файлов.

Надеюсь, это поможет кому-то еще, кто придетс той же проблемой - это моя первая попытка опубликовать ответ в StackOverflow.

1 голос
/ 15 января 2011

Смотрите, где написано "logVerbosityLevel" и "WARNING"?Замените ПРЕДУПРЕЖДЕНИЕ на ОТЛАДКУ.Вы также можете найти свой скрипт catalina.sh, найти команду java и убедиться, что флаг -DDEBUG включен в параметры запуска.

Просмотр журнала с включенным режимом полной отладки покажет, есть липроблемы при запуске Tomcat на новом сервере.

Например, у вас может быть отсутствующая зависимость или конфликт зависимостей, который не проявляется при менее информативных уровнях ведения журнала.

Наконец, вы пыталисьпростая тестовая страница JSP?

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

Если вы поместите это в JSP и попытаетесь загрузить его, увидите ли вы JSP или вывод?

Пробовали ли вы использовать порт Tomcatв вашем запросе?Обычно это 8080. Я думаю, что один из комментаторов упомянул это как возможность.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...