嗨,我是Spring MVC的新手。我正在开发一个简单的形式在春季MVC,其中我得到以下错误。从2天我努力唯一这个,但无法解决这个问题。请帮我解决这个问题,以便我可以取得进一步的进展。我认为它是由于任何jar文件但无法得到正确的答案。在我正在使用的罐子之后:
aopalliance-1.0.jar
公地DBCP-1.1-rc2.jar
共享记录-1.2.jar
公地池-1.1.jar
的javax.servlet-API-3.1.0.jar
JSTL-1.2.jar
弹簧AOP-4.2.0.RELEASE.jar
弹簧豆-3.0.5.RELEASE.jar
弹簧上下文3.1.1.RELEASE.jar
弹簧芯4.2.2.RELEASE.jar
弹簧表达-4.2.2.RELEASE.jar
弹簧网络4.2.2.RELEASE.jar
弹簧webmvc-3.0.0.RELEASE.jar
如果需要,我可以发布完整的代码。请告诉我。
<Oct 12, 2017 11:40:32 PM IST> <Error> <HTTP> <BEA-101216> <Servlet: "SM_FormHandling" failed to preload on startup in Web application: "SM_FormHandling".
java.lang.NoSuchMethodError: org.springframework.core.io.ResourceEditor.<init>(Lorg/springframework/core/io/ResourceLoader;)V
at org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:117)
at javax.servlet.GenericServlet.init(GenericServlet.java:240)
at weblogic.servlet.internal.StubSecurityHelper$ServletInitAction.run(StubSecurityHelper.java:337)
at weblogic.servlet.internal.StubSecurityHelper$ServletInitAction.run(StubSecurityHelper.java:288)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
Truncated. see log file for complete stacktrace
>
<Oct 12, 2017 11:40:32 PM IST> <Error> <Deployer> <BEA-149265> <Failure occurred in the execution of deployment request with ID "169334801172819" for task "29". Error is: "weblogic.application.ModuleException: java.lang.NoSuchMethodError: org.springframework.core.io.ResourceEditor.<init>(Lorg/springframework/core/io/ResourceLoader;)V"
weblogic.application.ModuleException: java.lang.NoSuchMethodError: org.springframework.core.io.ResourceEditor.<init>(Lorg/springframework/core/io/ResourceLoader;)V
at weblogic.application.internal.ExtensibleModuleWrapper.start(ExtensibleModuleWrapper.java:140)
at weblogic.application.internal.flow.ModuleListenerInvoker.start(ModuleListenerInvoker.java:124)
at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:216)
at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:211)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:42)
Truncated. see log file for complete stacktrace
Caused By: java.lang.NoSuchMethodError: org.springframework.core.io.ResourceEditor.<init>(Lorg/springframework/core/io/ResourceLoader;)V
at org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:117)
at javax.servlet.GenericServlet.init(GenericServlet.java:240)
at weblogic.servlet.internal.StubSecurityHelper$ServletInitAction.run(StubSecurityHelper.java:337)
at weblogic.servlet.internal.StubSecurityHelper$ServletInitAction.run(StubSecurityHelper.java:288)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
Truncated. see log file for complete stacktrace
StudentController.java
@Controller
class StudentController {
@RequestMapping(value="/student" ,method=RequestMethod.GET)
public ModelAndView student(){
return new ModelAndView("student","command",new Student());
}
@RequestMapping(value="/addStudent" ,method=RequestMethod.POST)
public String addStudent(@ModelAttribute("SpringWeb")Student student,ModelMap model){
model.addAttribute("name",student.getName());
model.addAttribute("age",student.getAge());
model.addAttribute("id",student.getId());
return "result";
}
}
答案 0 :(得分:0)
问题是你要混合来自5个不同版本的Spring的罐子。您正在使用3.0.0,3.0.5,3.1.1,4.2.0和4.2.2中的罐子,这显然会破坏。切勿混合属于框架的不同版本的罐子。
在这个时代,建议使用依赖关系管理工具/构建工具,如Maven或Gradle。这样您就不需要为某个jar搜索所需的依赖项。
因此,不要在互联网(或您的本地计算机)上搜索可能协同工作的罐子,而是使用Maven或Gradle为您完成。
使用maven,你会写一个pom.xml
,其中包含如下内容。
<?xml version="1.0" encoding="UTF-8"?>
<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>groupId</groupId>
<artifactId>artifactid</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<name>Your-Project</name>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<spring.version>4.2.2.RELEASE</spring.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>${spring.version}</version>
<dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
<dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
<version>1.4</version>
<dependency>
</dependencies>
</project>
其中包含获取所有正确依赖项所需的所有内容。您无需知道spring-webmvc
的依赖项,因为这些依赖项将自动添加。您还使用了commons-dbcp
的旧快照/里程碑,您可能希望使用发布版本(尽管我建议使用HikariCP作为连接池而不是Commons DBCP)。
build.gradle
中的相同内容。
apply plugin: 'war'
ext['springVersion'] = '4.2.2.RELEASE'
repositories {
mavenCentral()
}
dependencies {
compile "org.springframework:spring-aop:$springVersion"
compile "org.springframework:spring-webmvc:$springVersion"
compile 'commons-dbcp:commons-dbcp:1.4'
compile 'jstl:jstl:1.2'
providedCompile 'javax.servlet:javax.servlet-api:3.1.0'
}
除了管理依赖项之外,这些工具还可以帮助您完成许多其他事情。查看文档和工具的不同插件,了解这些工具如何/可以帮助您。它至少会为您节省很多令人头疼的问题,以寻找正确的依赖关系组合。