Запуск приложения на Tomcat 5.5

#java #spring #tomcat6 #tomcat5.5

#java #spring #tomcat6 #tomcat5.5

Вопрос:

Мое приложение Spring работает на Tomcat 6.0 на localhost.

Когда я пытаюсь запустить его на 5.5, я получаю сообщение об ошибке «Tomcat версии 5.5 поддерживает только веб-модули J2EE 1.2, 1.3 и 1.4».

Как мне узнать, на каком веб-модуле запущено мое приложение, и как мне заставить его работать на версии 1.4?

Спасибо.

Редактировать:

web.xml

 <?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>AppName</display-name>
  <listener>
    <listener-class>com.appname.connection.MySqlDBPooling</listener-class>
  </listener>
  <servlet>
    <servlet-name>spring</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>spring</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.css</url-pattern>
    <url-pattern>*.js</url-pattern>
    <url-pattern>*.jpg</url-pattern>
    <url-pattern>*.jpeg</url-pattern>
    <url-pattern>*.png</url-pattern>
    <url-pattern>*.gif</url-pattern>
    <url-pattern>*.ico</url-pattern>
  </servlet-mapping>
</web-app>
  

Ответ №1:

В .settings папке project найдите этот файл org.eclipse.wst.common.project.facet.core.xml , измените версию facet="jst.web" на 2.4 или 2.5 и facet="jst.java" на 1.4 следующим образом:

 <?xml version="1.0" encoding="UTF-8"?>
    <faceted-project>
      <fixed facet="wst.jsdt.web"/>
      <fixed facet="jst.web"/>
      <fixed facet="java"/>
      <installed facet="java" version="1.4"/>
      <installed facet="jst.web" version="2.4"/>
      <installed facet="wst.jsdt.web" version="1.0"/>
    </faceted-project>
  

Ответ №2:

Вам необходимо использовать правильную J2EE версию ( <1.5 ) ваших зависимостей для вашей разработки.

Вам также необходимо определить совместимую версию сервлета для использования в web.xml , т.Е.

 <web-app version="2.4" 
     xmlns="http://java.sun.com/xml/ns/j2ee" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
                         http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
  

Комментарии:

1. при замене содержимого я получаю сообщение об ошибке: cvc-complex-type.2.4.d: Обнаружено недопустимое содержимое, начинающееся с элемента ‘url-pattern’. На данный момент не ожидается дочернего элемента

2. @James, естественно, вам также необходимо соответствовать спецификации сервлета версии 2.4, которая поддерживается tomcat 5.5

3. @Джеймс, хорошо. Это версия всех ваших библиотек J2EE. Обычно они должны предоставляться сервером приложений и не включаться при компиляции вашего war-файла.

4. Я создал новый динамический веб-проект с модулем версии 2.4, а затем скопировал src и WebContent. Это решило мою проблему. Я смог запустить приложение на Tomcat 5.5

Ответ №3:

Я также столкнулся с той же проблемой, т. Е.»cvc-complex-type.2.4.d: обнаружено недопустимое содержимое, начинающееся с элемента ‘url-pattern’. На данный момент не ожидается дочернего элемента » , но после использования предварительной версии JBOSS (jboss-as-7.1.1.Final) проблема была решена.

если вы столкнулись с такой же проблемой в Tomacat, попробуйте его предварительную версию.