Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在eclipse中使用SpringMVC5的新项目,但我遇到了404错误_Java_Eclipse_Spring Mvc - Fatal编程技术网

Java 在eclipse中使用SpringMVC5的新项目,但我遇到了404错误

Java 在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

我是SpringMVC的新手,我正在尝试制作一个简单的HelloWorld程序,我正在学习本教程

AppConfig

调度器Servlet初始值设定项

模型

JSP

文件路径

错误

我尝试清理服务器,关闭并打开浏览器,重新发布我的项目

我不知道现在该怎么办,请帮帮我

我的pom.xml


一个可能的问题是您的包命名错误。 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