#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, попробуйте его предварительную версию.