我正在使用Spring,Hibernate和Maven配置工具编写MVC应用程序.但是一旦我尝试通过Eclipse中的Maven安装来构建代码,我就会不断收到错误消息
[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文件
4.0.0
SampleMVCApp
SampleMVCApp
0.0.1-SNAPSHOT
war
src
src
**/*.java
maven-compiler-plugin
3.1
1.7
1.7
maven-war-plugin
2.3
WebContent
false
4.1.9.RELEASE
4.3.6.Final
5.0.4
2.3
6.9.4
1.10.19
1.4.1872.2
org.springframework
spring-core
${springframework.version}
org.springframework
spring-web
${springframework.version}
org.springframework
spring-webmvc
${springframework.version}
org.springframework
spring-tx
${springframework.version}
org.springframework
spring-orm
${springframework.version}
org.hibernate
hibernate-core
${hibernate.version}
javax.validation
validation-api
1.1.0.Final
org.hibernate
hibernate-validator
5.1.3.Final
mysql
mysql-connector-java
${mysql.connector.version}
joda-time
joda-time
${joda-time.version}
org.jadira.usertype
usertype.core
3.0.0.CR1
javax.servlet
javax.servlet-api
3.1.0
javax.servlet.jsp
javax.servlet.jsp-api
2.3.1
javax.servlet
jstl
1.2
org.springframework
spring-test
${springframework.version}
test
org.testng
testng
${testng.version}
test
org.mockito
mockito-all
${mockito.version}
test
com.h2database
h2
${h2.version}
test
dbunit
dbunit
${dbunit.version}
test
不知道我将javax.servlet-api多次带到哪里.
解决方法:
我猜这是servlet-api被多次包含在依赖关系层次结构中的原因,请尝试mvndependency:tree并找到servlet-api的去向并排除它们,例如,
org.springframework
spring-web
${springframework.version}
javax.servlet
servlet-api
标签:maven,servlets,java
来源: https://codeday.me/bug/20191118/2027574.html