【发布时间】:2017-08-11 05:49:36
【问题描述】:
在我启动我的 tomcat 后,我的浏览器出现 404 错误:
我输入localhost:8080/mvc/hello 或localhost:8080/mvc/hello.jsp
但是如果我输入localhost:8080,就正常了,可以访问:
在我的springmvc-servlet.xml:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.1.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd">
<!-- scan the package and the sub package -->
<context:component-scan base-package="com.ypd.springmvcdemo"/>
<!-- don't handle the static resource -->
<mvc:default-servlet-handler />
<!-- if you use annotation you must configure following setting -->
<mvc:annotation-driven />
<!-- configure the InternalResourceViewResolver -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" id="internalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/" />
<property name="suffix" value=".jsp" />
</bean>
</beans>
在我的MVCController.java:
@Controller
@RequestMapping("/mvc")
public class MVCController {
@RequestMapping("/hello")
public String hello() {
return "hello";
}
}
在我的web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1">
<!--configure the setting of springmvcDispatcherServlet and configure the mapping-->
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc-servlet.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
这是我的hello.jsp页面:
(对于springmvc-servlet.xml 的位置,我很抱歉,我已将其定位到resource 库下)
更新 - 1:
非常抱歉,我发布此快照时出现错误,在我的问题项目中,网络文件夹上没有蓝点。查看我的回答我发现了它的问题。
更新图片:
那么,错在哪里?
编辑
我的hello.jsp:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
Hello, world, jack loly!
</body>
</html>
编辑
日志看起来正确:
[2017-03-20 03:06:48,255] 工件 SpringMVCDemo:war 爆炸:服务器未连接。部署不可用。 连接到目标VM,地址:'127.0.0.1:51764',传输:'socket' 2017 年 3 月 20 日 15:06:50.080 info [main] org.apache.catalina.startup.VersionLoggerListener.log 服务器版本:Apache Tomcat/9.0.0.M17 20-Mar-2017 15:06:50.085 info [main] org.apache.catalina.startup.VersionLoggerListener.log 服务器建成时间:2017 年 1 月 10 日 20:59:20 UTC 20-Mar-2017 15:06:50.085 info [main] org.apache.catalina.startup.VersionLoggerListener.log 服务器号:9.0.0.0 20-Mar-2017 15:06:50.085 info [main] org.apache.catalina.startup.VersionLoggerListener.log 操作系统名称:Mac OS X 20-Mar-2017 15:06:50.088 info [main] org.apache.catalina.startup.VersionLoggerListener.log 操作系统版本:10.12.2 2017 年 3 月 20 日 15:06:50.089 信息 [主要] org.apache.catalina.startup.VersionLoggerListener.log 架构:x86_64 2017 年 3 月 20 日 15:06:50.089 信息 [主要] org.apache.catalina.startup.VersionLoggerListener.log Java 主页:/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre 2017 年 3 月 20 日 15:06:50.089 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log JVM 版本:1.8.0_121-b13 20-Mar-2017 15:06:50.089 info [main] org.apache.catalina.startup.VersionLoggerListener.log JVM 供应商:Oracle Corporation 2017 年 3 月 20 日 15:06:50.089 信息 [主要] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE: /Users/jack/Library/Caches/IntelliJIdea2016.3/tomcat/Tomcat_9_0_0_M17_SpringMVCDemo 2017 年 3 月 20 日 15:06:50.090 信息 [主要] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME: /Users/jack/Library/Tomcat9 2017 年 3 月 20 日 15:06:50.091 info [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数:-Djava.util.logging.config.file=/Users/jack/Library/Caches/IntelliJIdea2016 .3/tomcat/Tomcat_9_0_0_M17_SpringMVCDemo/conf/logging.properties 20-Mar-2017 15:06:50.091 info [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数:-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager 20-Mar-2017 15:06:50.091 info [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数:-agentlib:jdwp=transport=dt_socket,address=127.0.0.1:51764,suspend=y,服务器=n 2017 年 3 月 20 日 15:06:50.091 info [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数:-Dcom.sun.management.jmxremote= 20-Mar-2017 15:06:50.092 info [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数:-Dcom.sun.management.jmxremote.port=1099 2017 年 3 月 20 日 15:06:50.093 info [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数:-Dcom.sun.management.jmxremote.ssl=false 2017 年 3 月 20 日 15:06:50.093 info [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数:-Dcom.sun.management.jmxremote.authenticate=false 2017 年 3 月 20 日 15:06:50.093 info [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数:-Djava.rmi.server.hostname=127.0.0.1 2017 年 3 月 20 日 15:06:50.093 info [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数:-Djdk.tls.ephemeralDHKeySize=2048 20-Mar-2017 15:06:50.093 info [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数:-Djava.protocol.handler.pkgs=org.apache.catalina.webresources 2017 年 3 月 20 日 15:06:50.093 info [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数:-Dcatalina.base=/Users/jack/Library/Caches/IntelliJIdea2016.3/tomcat/Tomcat_9_0_0_M17_SpringMVCDemo 20-Mar-2017 15:06:50.094 info [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数:-Dcatalina.home=/Users/jack/Library/Tomcat9 2017 年 3 月 20 日 15:06:50.094 info [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数:-Djava.io.tmpdir=/Users/jack/Library/Tomcat9/temp 2017 年 3 月 20 日 15:06:50.094 info [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent 在 java.library.path 上找不到基于 APR 的 Apache Tomcat Native 库,它允许在生产环境中获得最佳性能: /Users/jack/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:。 2017 年 3 月 20 日 15:06:50.527 信息 [main] org.apache.coyote.AbstractProtocol.init 初始化 ProtocolHandler ["http-nio-8080"] 20-Mar-2017 15:06:50.560 info [main] org.apache.tomcat.util.net.NioSelectorPool.getSharedSelector 使用共享选择器进行 servlet 写入/读取 2017 年 3 月 20 日 15:06:50.563 信息 [main] org.apache.coyote.AbstractProtocol.init 初始化 ProtocolHandler ["ajp-nio-8009"] 20-Mar-2017 15:06:50.565 info [main] org.apache.tomcat.util.net.NioSelectorPool.getSharedSelector 使用共享选择器进行 servlet 写入/读取 20-Mar-2017 15:06:50.581 info [main] org.apache.catalina.startup.Catalina.load 初始化在 1455 毫秒内处理 20-Mar-2017 15:06:50.709 info [main] org.apache.catalina.core.StandardService.startInternal 启动服务 Catalina 20-Mar-2017 15:06:50.709 info [main] org.apache.catalina.core.StandardEngine.startInternal 启动 Servlet 引擎:Apache Tomcat/9.0.0.M17 20-Mar-2017 15:06:50.745 info [main] org.apache.coyote.AbstractProtocol.start 启动 ProtocolHandler [http-nio-8080] 2017 年 3 月 20 日 15:06:50.766 信息 [main] org.apache.coyote.AbstractProtocol.start 启动 ProtocolHandler [ajp-nio-8009] 20-Mar-2017 15:06:50.769 info [main] org.apache.catalina.startup.Catalina.start 服务器在 187 毫秒内启动 连接到服务器 [2017-03-20 03:06:51,046] 工件 SpringMVCDemo:战争爆炸:正在部署工件,请稍候... [2017-03-20 03:06:51,751] Artifact SpringMVCDemo:war 爆炸:Artifact 部署成功 [2017-03-20 03:06:51,751] 工件 SpringMVCDemo:战争爆发:部署耗时 705 毫秒 20-Mar-2017 15:07:00.750 info [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory 部署 Web 应用程序目录 /Users/jack/Library/Tomcat9/webapps/manager 20-Mar-2017 15:07:00.802 info [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Web 应用程序目录 /Users/jack/Library/Tomcat9/webapps/manager 的部署已于 52 完成毫秒
编辑
编辑-2
【问题讨论】:
-
是否有任何CSS或JS绑定到JSP?
-
@srikanthr 不,没有,它是一个静态页面,就像一个 html。
-
看起来很奇怪的是目录。
src/main/webapp是 maven 的约定。此外,您的 spring xml 通常位于src/main/resources。 -
您检查日志是否有错误?
-
@Philip YW,日志看起来是正确的。
标签: java jsp spring-mvc tomcat