Estoy tratando de establecer la Dinámica del Módulo Web 3.0 con el fin de apoyar Java 6 desarrollo. Estoy recibiendo este error en mi pestaña Problemas de eclipse cuando hago Maven > Update Project.

Dynamic Web Module 3.1 requires Java 1.7 or newer.

Se aparece como si nada va mal, pero me debe faltar algo porque siempre he de recibir este error.

A continuación es el contenido de mi .settings/org.eclipse.wst.common.project.facet.core.xml

<?xml version="1.0" encoding="UTF-8"?>
<faceted-project>
  <fixed facet="jst.java"/>
  <fixed facet="jst.web"/>
  <installed facet="jst.java" version="1.6"/>
  <installed facet="jst.web" version="3.0"/>
</faceted-project>

En eclipse, mi Compilador de Java se establece a 1.6 correctamente. En el Proyecto de las Facetas de la ficha, Dinámico Módulo Web se especifica que la versión 3.0 correctamente, y Java también aparece como 1.6 en el marco del Proyecto Facetas.

En mi pom.xml archivo, también he conjunto de la versión de Java en consecuencia:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.1</version>
    <configuration>
        <source>1.6</source>
        <target>1.6</target>
    </configuration>
</plugin>

Como una nota del lado, también debo mencionar que me estoy haciendo un puro de Java build con un WebApplicationInitializer y no tienen web.xml archivo.

Cualquier ayuda es muy apreciada como intento de squash, aparentemente irrelevante mensaje de error.

EDIT: añadido pom.xml contenido

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>net.XXXXX</groupId>
<artifactId>XXXXX</artifactId>
<version>1.0-SNAPSHOT</version>
<name>XXXXX</name>
<packaging>war</packaging>
<url>http://maven.apache.org</url>
<build>
<finalName>XXXXX</finalName>
<plugins>
<!-- Source level should be 1.6 (not Maven default) for Java EE 6 projects -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
<!-- When using xml-less approach, need to disable Maven's warning about 
missing web.xml -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<!-- JUnit testing -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<!-- Spring Core -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>4.0.2.RELEASE</version>
</dependency>
<!-- Spring MVC -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>4.0.2.RELEASE</version>
</dependency>
<!-- Spring Context without commons-logging -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.0.2.RELEASE</version>
<exclusions>
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- Spring Security core -->
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-core</artifactId>
<version>3.2.1.RELEASE</version>
</dependency>
<!-- Spring Security config -->
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-config</artifactId>
<version>3.2.1.RELEASE</version>
</dependency>
<!-- Spring Security web -->
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-web</artifactId>
<version>3.2.1.RELEASE</version>
</dependency>
<!-- jcl-over-slf4j -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
<version>1.7.6</version>
</dependency>
<!-- slf4j-api -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.6</version>
</dependency>
<!-- slf4j-log4j12 -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.6</version>
</dependency>
<!-- log4j -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<!-- Need servlet API for compiling the classes. Not needed in runtime -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
<!-- Required for xml-less configuration of Spring via @Configuration annotations -->
<dependency>
<groupId>cglib</groupId>
<artifactId>cglib-nodep</artifactId>
<version>3.1</version>
</dependency>
<!-- Required for getting Spring working with Hibernate -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>4.0.2.RELEASE</version>
</dependency>
<!-- Hibernate -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>4.3.4.Final</version>
</dependency>
<!-- For using JPA instead of "pure Hibernate" -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>4.3.4.Final</version>
</dependency>
<!-- DB connection pooling for production applications -->
<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
<version>20030825.184428</version>
</dependency>
<!-- Concrete JDBC driver for MySQL DB -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.29</version>
</dependency>
<!-- Add Taglib support -->
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
</dependencies>
</project>

3 Comentarios

  1. 18

    En nuestro proyecto, vamos a agregar para cambiar el web.xml elemento raíz de la declaración, el cambio de:

    <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">

    a:

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

    Probablemente Eclipse estaban a la espera de como satisfacer a una diferente Servlet versión spec. En nuestro caso también, hemos tenido ni compilar ni tiempo de ejecución de problemas.

    EDICIÓN: En su caso, donde no estaban usando un web.xml archivo, fue el siguiente pom a la dependencia de la que probablemente fue confuso Eclipse plugin de maven:

    <dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>3.1.0</version>
    <scope>provided</scope>
    </dependency>

    Cambio de «3.0.1». (Resulta que WebApplicationInitializer requiere «Servlet 3.0+ entornos» y no 3.1+)

    • Como he dicho, aunque yo estoy usando puramente Java en mi build (por lo que no hay web.xml archivo). ¿Sabes cómo se podría hacer algo similar en el código de Java?
    • Perdón yo no lo entiendo. Está usted usando docs.de la primavera.io/primavera/docs/3.1.x/javadoc-api/org/… ?
    • Sí, eso es!
    • Estás usando una versión de jdk 7 con el cumplimiento de las 6 o un jdk 6?
    • Estoy usando el jdk 6.
    • Podría usted la lista de todas sus dependencias maven?
    • Yup! Agregó pom.xml el contenido del post original
    • probablemente la dependencia «javax.servlet api» con la versión «3.1.0» va a confundir el Eclipse plugin de maven
    • Hmm, pero de lo que yo entiendo es que debo incluir que en el fin de implementar el WebApplicationInitializer. javax.servlet.ServletContext se pasa como un parámetro para onStartup(ServletContext ctx){}
    • 3.0 debería ser suficiente, el WebApplicationInitializer ‘s javadoc dice: «de la Interfaz para ser implementado en Servlet 3.0+ entornos «
    • Seguro que vería donde el 3.1 viene.
    • También, de ser «siempre», no viene en el montaje final. Intente con la versión «3.0.1» -> search.maven.org/…
    • Sólo se ha cambiado la versión 3.0.1 y actualizar el proyecto de Maven. Actúa ahora :D! Gracias robermann!
    • Encantado de ayudarle. Me voy a la afinación de la respuesta para los lectores futuros amor

  2. 12

    puede agregar esto a la pom.xml:

    <build>
    <plugins>
    <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.1</version>
    <configuration>
    <source>1.7</source>
    <target>1.7</target>
    </configuration>
    </plugin>
    </plugins>
    </build>

    Obras en la Primavera de PTS 3.6.3 🙂

    edición:

    fuente: http://crunchify.com/how-to-solve-dynamic-web-module-3-1-requires-java-1-7-or-newer-in-eclipse/

    • Funciona en la Primavera de PTS 3.7.1!
    • gracias a esto funcionó para nosotros

Dejar respuesta

Please enter your comment!
Please enter your name here