【问题标题】:Tomcat server 404Tomcat服务器404
【发布时间】:2014-07-30 23:25:15
【问题描述】:

我有一个项目使用 Maven3 在 Tomcat 7 上运行。

Tomcat正在运行,maven项目成功部署到tomcat;但是,当我访问我的项目链接 http://localhost:8080/myWebApp 时,我收到 404 错误。

我想知道我是否必须先登录到tomcat?

我对这个设置很陌生,所以如果我遗漏了一些明显的东西,请原谅我的无知。

编辑

我的本地主机日志

           Jun 10, 2014 10:51:39 AM org.apache.catalina.core.StandardContext listenerStart
SEVERE: Error configuring application listener of class org.apache.catalina.deploy.ApplicationListener@c9d8da8
java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559)
at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:527)
at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:509)
at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:137)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4854)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5434)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633)
at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:976)
at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1653)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)

Jun 10, 2014 10:51:39 AM org.apache.catalina.core.StandardContext listenerStart
SEVERE: Skipped installing application listeners due to previous error(s)
Jun 10, 2014 10:51:48 AM org.apache.catalina.core.ApplicationContext log
INFO: ContextListener: contextInitialized()
Jun 10, 2014 10:51:48 AM org.apache.catalina.core.ApplicationContext log
INFO: SessionListener: contextInitialized()   
Jun 10, 2014 10:51:48 AM org.apache.catalina.core.ApplicationContext log
INFO: ContextListener: attributeAdded('org.apache.jasper.compiler.TldLocationsCache', 'org.apache.jasper.compiler.TldLocationsCache@1de3ac1a')
Jun 10, 2014 10:58:03 AM org.apache.catalina.core.ApplicationContext log
INFO: No Spring WebApplicationInitializer types detected on classpath

在我的 pom.xml 我有以下 Spring 依赖项

 <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
        <version>${spring.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-web</artifactId>
        <version>${spring.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>${spring.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc-portlet</artifactId>
        <version>${spring.version}</version>
    </dependency>
     <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-tx</artifactId>
        <version>${spring.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-expression</artifactId>
        <version>${spring.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-beans</artifactId>
        <version>${spring.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-aop</artifactId>
        <version>${spring.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>${spring.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context-support</artifactId>
        <version>${spring.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-jdbc</artifactId>
        <version>${spring.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-orm</artifactId>
        <version>${spring.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-oxm</artifactId>
        <version>${spring.version}</version>
    </dependency>

编辑 2

我按照here 的说明在第一次编辑中修复了 Spring 错误,但我仍然收到 404 错误。任何 tomcat 日志都没有错误。

我的 pom.xml tomcat 插件是

    <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>tomcat-maven-plugin</artifactId>
         <configuration>
               <url>http://localhost:8080/manager/text</url>
               <server>tomcat</server>
              <path>/myWebApp</path>
         </configuration>
    </plugin>

编辑 3

我的web.xml

    <?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee    http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>FindLove</display-name>
<servlet>
    <servlet-name>user</servlet-name>
    <servlet-class>
        org.springframework.web.servlet.DispatcherServlet
    </servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>user</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/user-servlet.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>
 </web-app>

【问题讨论】:

  • 在 tomcat 日志中掠夺。一定有部署错误。

标签: java maven tomcat7 http-status-code-404


【解决方案1】:

很可能它部署在另一个上下文名称下。考虑到您使用的是 Maven,可能包含版本号,因此您可以通过 http://localhost:8080/myWebApp-0.0.1-SNAPSHOT 或类似的方式访问,具体取决于您项目的实际版本。

我认为 Tomcat 日志表明了上下文名称。

【讨论】:

  • 在 catalina 日志中没有错误,但是在 localhost 日志中我有 SEVERE: Error configuring application listener of class org.apache.catalina.deploy.ApplicationListener@c9d8da8 java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener 所以我会看看,谢谢。
  • 是的,很可能您没有在 Web 应用程序的 lib 文件夹中提供所需的 Spring 库。
  • 我已将 pom.xml 依赖项添加到原始帖子中。 spring 依赖都可用我一定有其他问题。
  • 您可能在 POM 文件中定义了依赖项,但 Tomcat 似乎无法找到它们。您是在部署 WAR 文件,还是在 IDE 中运行服务器?
  • 我正在使用 mvn tomcat:deploy 进行部署,并且在部署时我在 tomcat 堆栈跟踪或 maven 上没有收到任何错误
【解决方案2】:

你能给我们提供tomcat日志吗?可能是部署问题引起的

【讨论】:

  • 添加到我的原帖中
  • 好的,我可以看到。所以我想另一个问题是关于你的控制器配置。您可以发布您的控制器配置,例如 Spring 注释/ Spring beans 配置文件等。
猜你喜欢
  • 2015-03-07
  • 2019-06-09
  • 2020-09-25
  • 2020-07-31
  • 2020-07-20
  • 1970-01-01
  • 2020-07-26
  • 1970-01-01
相关资源
最近更新 更多