Java 在eclipse中使用SpringMVC5的新项目,但我遇到了404错误
我是SpringMVC的新手,我正在尝试制作一个简单的HelloWorld程序,我正在学习本教程 AppConfig 调度器Servlet初始值设定项 模型 JSP 文件路径 错误 我尝试清理服务器,关闭并打开浏览器,重新发布我的项目 我不知道现在该怎么办,请帮帮我 我的pom.xmlJava 在eclipse中使用SpringMVC5的新项目,但我遇到了404错误,java,eclipse,spring-mvc,Java,Eclipse,Spring Mvc,我是SpringMVC的新手,我正在尝试制作一个简单的HelloWorld程序,我正在学习本教程 AppConfig 调度器Servlet初始值设定项 模型 JSP 文件路径 错误 我尝试清理服务器,关闭并打开浏览器,重新发布我的项目 我不知道现在该怎么办,请帮帮我 我的pom.xml 一个可能的问题是您的包命名错误。 maven项目的文件夹结构如下所示: src |_ main | |_ java | | |_ your.actual.package
一个可能的问题是您的包命名错误。 maven项目的文件夹结构如下所示:
src
|_ main
| |_ java
| | |_ your.actual.package
| |_ resources
| |_ webapp
|_ test
|_ java
|_ your.actual.package
所以您的实际包就在java文件夹之后启动。这意味着您实际上有:
AppConfig类的config包而不是main.java.config
控制器包,而不是JavaController的main.java.controller
HelloWorld的模型包,而不是main.java.model
您还需要更改@ComponentScan。将其留空以扫描根包。或者尝试使用BasePackageClass,如果这不起作用
之后,您需要检查您的war文件。解包并检查WEB-INF文件夹是否包含所有已创建类和视图的.class文件,以及helloworld.jsp文件
我希望这会有所帮助。不确定问题到底出在哪里,但这里有一个完整的项目供您参考。 您可以从这里获得帮助: 一,- 您应该在@ComponentScan annotation而不是main.java中列出所有包,包括配置类: @ComponentScanbasePackages={config,controller} 或 将所有包移动到父包中示例:com.project like com.project.config、com.project.controller、com.project.model并使用它: @ComponentScanbasePackages={com.project} 2-检查项目的web依赖项程序集,它应该如下所示: 如果您的配置不是这样的,您应该通过单击add按钮并选择java构建路径条目来添加它
然后在下一个窗口中选择Maven Dependencies。如何调用url?假设SpringMVC5实际上已部署到以下Web应用程序,则应使用http:/SpringMVC5/helloworldcorrect@ScaryWombat仍然是404。您是否完全使用pom.xml作为链接?你用的是什么名字?@ScaryWombat我只保留了maven编译器插件3.8.0I的最后一部分,上周我遇到了类似的问题,这是因为pom。尝试使用sample.src/main/java,然后添加包com.test.config,将扫描保留为空,不做任何更改。您认为我的安装过程中有问题吗?您可以尝试更改@ComponentScan以指向您的com.test包。但一般来说,很难判断还有什么地方可能是错的。你看过战争档案吗?所有的东西都有类吗,JSP?war中的文件夹结构好吗?tomcat日志中有什么?您的InternalResourceViewResolver应该有一些东西可以帮助您找到问题。war文件很好,一切都在那里,只是jsp文件中有一个错误,但是结构都很好。在tomcat日志中,只有这一行看起来很糟糕:java.library.path中没有基于APR的Apache tomcat本机库,该库允许在生产环境中实现最佳性能:[C:\Program….感谢您的帮助,但我想知道我做错了什么。谢谢。这对我来说很有用。所以我的问题是jar文件不在正确的位置?对吗?如果您在eclipse内的服务器上以动态web项目的形式运行项目,您应该配置部署程序集。如果没有配置,这将指示WTP发送m另一方面,如果使用maven构建,maven将移动项目lib文件夹中的依赖项JAR。
package main.java.config;
import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;
public class ServletDispatcherInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
@Override
protected Class <?> [] getRootConfigClasses() {
// TODO Auto-generated method stub
return null;
}
@Override
protected Class <?> [] getServletConfigClasses() {
return new Class[] {
AppConfig.class
};
}
@Override
protected String[] getServletMappings() {
return new String[] {
"/"
};
}
}
package main.java.controller;
import java.time.LocalDateTime;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import main.java.model.HelloWorld;
@Controller
public class JavaController {
@RequestMapping("/helloworld")
public String handler(Model model) {
HelloWorld helloWorld = new HelloWorld();
helloWorld.setMessage("Hello World Example Using Spring MVC 5!!!");
helloWorld.setDateTime(LocalDateTime.now().toString());
model.addAttribute("helloWorld", helloWorld);
return "helloworld";
}
}
package main.java.model;
public class HelloWorld {
private String message;
private String dateTime;
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public String getDateTime() {
return dateTime;
}
public void setDateTime(String dateTime) {
this.dateTime = dateTime;
}
}
...
${helloWorld.message}</h2>
Server date time is : ${helloWorld.dateTime}
...
<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>SpringMVC5</groupId>
<artifactId>SpringMVC5</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>springmvc5-helloworld-exmaple Maven Webapp</name>
<url>http://maven.apache.org</url>
<properties>
<failOnMissingWebXml>false</failOnMissingWebXml>
</properties>
<dependencies>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.1.0.RELEASE</version>
</dependency>
<!-- JSTL Dependency -->
<dependency>
<groupId>javax.servlet.jsp.jstl</groupId>
<artifactId>javax.servlet.jsp.jstl-api</artifactId>
<version>1.2.1</version>
</dependency>
<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
</dependency>
<!-- Servlet Dependency -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
<!-- JSP Dependency -->
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>javax.servlet.jsp-api</artifactId>
<version>2.3.1</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<sourceDirectory>src</sourceDirectory>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<release>11</release>
</configuration>
</plugin>
</plugins>
src
|_ main
| |_ java
| | |_ your.actual.package
| |_ resources
| |_ webapp
|_ test
|_ java
|_ your.actual.package