2016-07-27 29 views
2

Maven設定ツールでSpring、Hibernateを使用してMVCアプリケーションを作成しています。私は日食でmaven installを通じて自分のコードをビルドしようとしたらしかし、私はエラーMavenインストールエラーでシンボルが見つかりませんaddServlet

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project SampleMVCApp: Compilation failure 
[ERROR] /C:/newworkspace/SampleMVCApp/src/com/javacodegeeks/configuration/AppInitializer.java:[19,56] cannot find symbol 
[ERROR] symbol: method addServlet(java.lang.String,org.springframework.web.servlet.DispatcherServlet) 

を得続けるここに私のAppInitializer.java

package com.sampleapp.configuration; 

import javax.servlet.ServletContext; 
import javax.servlet.ServletException; 
import javax.servlet.ServletRegistration; 

import org.springframework.web.WebApplicationInitializer; 
import org.springframework.web.context.support.AnnotationConfigWebApplicationContext; 
import org.springframework.web.servlet.DispatcherServlet; 

public class AppInitializer implements WebApplicationInitializer { 

    @Override 
    public void onStartup(ServletContext container) throws ServletException { 
     AnnotationConfigWebApplicationContext ctx = new AnnotationConfigWebApplicationContext(); 
     ctx.register(AppConfig.class); 
     ctx.setServletContext(container); 

     ServletRegistration.Dynamic servlet = container.addServlet("dispatcher", new DispatcherServlet(ctx)); 

     servlet.setLoadOnStartup(1); 
     servlet.addMapping("/"); 

    } 
} 

ここでは私のpom.xmlファイルは

<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/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>SampleMVCApp</groupId> 
    <artifactId>SampleMVCApp</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <packaging>war</packaging> 
    <build> 
    <sourceDirectory>src</sourceDirectory> 
    <resources> 
     <resource> 
     <directory>src</directory> 
     <excludes> 
      <exclude>**/*.java</exclude> 
     </excludes> 
     </resource> 
    </resources> 
    <plugins> 
     <plugin> 
     <artifactId>maven-compiler-plugin</artifactId> 
     <version>3.1</version> 
     <configuration> 
      <source>1.7</source> 
      <target>1.7</target> 
     </configuration> 
     </plugin> 
     <plugin> 
     <artifactId>maven-war-plugin</artifactId> 
     <version>2.3</version> 
     <configuration> 
      <warSourceDirectory>WebContent</warSourceDirectory> 
      <failOnMissingWebXml>false</failOnMissingWebXml> 
     </configuration> 
     </plugin> 
    </plugins> 
    </build> 
    <properties> 
     <springframework.version>4.1.9.RELEASE</springframework.version> 
     <hibernate.version>4.3.6.Final</hibernate.version> 
     <mysql.connector.version>5.0.4</mysql.connector.version> 
     <joda-time.version>2.3</joda-time.version> 
     <testng.version>6.9.4</testng.version> 
     <mockito.version>1.10.19</mockito.version> 
     <h2.version>1.4.187</h2.version> 
     <dbunit.version>2.2</dbunit.version> 
    </properties> 
    <dependencies> 
    <!-- Spring --> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-core</artifactId> 
      <version>${springframework.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-web</artifactId> 
      <version>${springframework.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-webmvc</artifactId> 
      <version>${springframework.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-tx</artifactId> 
      <version>${springframework.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-orm</artifactId> 
      <version>${springframework.version}</version> 
     </dependency> 

       <!-- Hibernate --> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-core</artifactId> 
      <version>${hibernate.version}</version> 
     </dependency> 

     <!-- jsr303 validation --> 
     <dependency> 
      <groupId>javax.validation</groupId> 
      <artifactId>validation-api</artifactId> 
      <version>1.1.0.Final</version> 
     </dependency> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-validator</artifactId> 
      <version>5.1.3.Final</version> 
     </dependency> 

     <!-- MySQL --> 
     <dependency> 
      <groupId>mysql</groupId> 
      <artifactId>mysql-connector-java</artifactId> 
      <version>${mysql.connector.version}</version> 
     </dependency> 

     <!-- Joda-Time -->  
     <dependency> 
      <groupId>joda-time</groupId> 
      <artifactId>joda-time</artifactId> 
      <version>${joda-time.version}</version> 
     </dependency> 

     <!-- To map JodaTime with database type -->  
     <dependency> 
      <groupId>org.jadira.usertype</groupId> 
      <artifactId>usertype.core</artifactId> 
      <version>3.0.0.CR1</version> 
     </dependency> 

     <!-- Servlet+JSP+JSTL --> 
     <dependency> 
      <groupId>javax.servlet</groupId> 
      <artifactId>javax.servlet-api</artifactId> 
      <version>3.1.0</version> 
     </dependency> 
     <dependency> 
      <groupId>javax.servlet.jsp</groupId> 
      <artifactId>javax.servlet.jsp-api</artifactId> 
      <version>2.3.1</version> 
     </dependency> 
     <dependency> 
      <groupId>javax.servlet</groupId> 
      <artifactId>jstl</artifactId> 
      <version>1.2</version> 
     </dependency> 


     <!-- Testing dependencies --> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-test</artifactId> 
      <version>${springframework.version}</version> 
      <scope>test</scope> 
     </dependency> 
     <dependency> 
      <groupId>org.testng</groupId> 
      <artifactId>testng</artifactId> 
      <version>${testng.version}</version> 
      <scope>test</scope> 
     </dependency> 
     <dependency> 
      <groupId>org.mockito</groupId> 
      <artifactId>mockito-all</artifactId> 
      <version>${mockito.version}</version> 
      <scope>test</scope> 
     </dependency> 
     <dependency> 
      <groupId>com.h2database</groupId> 
      <artifactId>h2</artifactId> 
      <version>${h2.version}</version> 
      <scope>test</scope> 
     </dependency> 
     <dependency> 
      <groupId>dbunit</groupId> 
      <artifactId>dbunit</artifactId> 
      <version>${dbunit.version}</version> 
      <scope>test</scope> 
     </dependency> 
    </dependencies> 

</project> 
です

どこにjavax.servlet-apiを何回置いているのかわからない。

答えて

2

私は問題がサーブレットAPIは、依存関係の階層で複数回に含まれていると思い、MVN依存性を試してみてください、木とサーブレットAPIが来ている場所を見つけて、例えば、このようにそれらを除外

<dependency> 
 
      <groupId>org.springframework</groupId> 
 
      <artifactId>spring-web</artifactId> 
 
      <version>${springframework.version}</version> 
 
    <exclusions> 
 
     <exclusion> 
 
      <groupId>javax.servlet</groupId> 
 
      <artifactId>servlet-api</artifactId> 
 
     </exclusion> 
 
    </exclusions> 
 

 
</dependency>

関連する問題