为什么Tomcat 7部署的应用程序返回HTTP状态404?

时间:2015-07-28 09:00:49

标签: web-services maven tomcat http-status-code-404 web-deployment

同事们,任何人都可以帮我在tomcat服务器上部署应用程序......

情况是: 1.我在tomcat上部署了应用程序。但是管理面板中没有“取消部署”按钮。 2.我运行mvn clean package tomcat7:redeploy,结果是:

  

[INFO]将战争部署到http://localhost:8080/app-ws上传:   http://localhost:8080/manager/text/deploy?path=%2Fapp-ws&update=true   上传时间:   http://localhost:8080/manager/text/deploy?path=%2Fapp-ws&update=true   (11702 KB,17334.8 KB /秒)

     

[INFO] tomcatManager状态码:200,ReasonPhrase:OK [INFO] OK -   在上下文路径/ app-ws部署应用程序[INFO]   -------------------------------------------------- ---------------------- [INFO]建立成功[信息]   -------------------------------------------------- ---------------------- [INFO]总时间:01:08 min [INFO]完成时间:   2015-07-28T11:46:44 + 03:00 [信息]最终记忆:29M / 260M [INFO] ---

看起来不错,但是:

  1. 当我运行http://localhost:8080/app-ws时,我收到HTTP状态404

  2. 在C:\ Program Files \ Apache Software Foundation \ Tomcat 7.0 \ webapps中我有app-ws.war并具有实际创建日期

  3. 在同一文件夹中我有C:\ Program Files \ Apache Software Foundation \ Tomcat 7.0 \ webapps \ app-ws文件夹,但没有实际日期
  4. 在C:\ Program Files \ Apache Software Foundation \ Tomcat 7.0 \ conf \ server.xml中我有下一个属性 。问题可能在这里?
  5. 您是否知道如何在描述的情况下正确部署和运行应用程序(Web服务)?

    感谢您提出任何意见和建议。

    更新

    1. 我取消部署我的应用。
    2. C:\ Program Files \ Apache Software Foundation \ Tomcat 7.0 \ webapps
    3. 中没有app-ws文件夹和战争
    4. 运行mvn clean package tomcat7:deploy and receive
    5. [INFO] <<< tomcat7-maven-plugin:2.2:deploy (default-cli) < package @ app-ws <<<
      [INFO]
      [INFO] --- tomcat7-maven-plugin:2.2:deploy (default-cli) @ app-ws ---
      [INFO] Deploying war to http://localhost:8080/app-ws
      Uploading: http://localhost:8080/manager/text/deploy?path=%2Fapp-ws
      Uploaded: http://localhost:8080/manager/text/deploy?path=%2Fapp-ws (11647 KB at 16085.6 KB/sec)
      
      [INFO] tomcatManager status code:200, ReasonPhrase:OK
      [INFO] FAIL - Deployed application at context path /app-ws but context failed to start
      [INFO] ------------------------------------------------------------------------
      [INFO] BUILD SUCCESS
      [INFO] ------------------------------------------------------------------------
      [INFO] Total time: 01:36 min
      [INFO] Finished at: 2015-07-28T15:58:13+03:00
      [INFO] Final Memory: 27M/259M
      [INFO] ---
      
      1. 我在C:\ Program Files \ Apache Software Foundation \ Tomcat 7.0 \ logs \ tomcat7-stderr.2015-07-28.log中有下一个堆栈跟踪:
      2.   

        2015年7月28日下午3:57:47 org.apache.catalina.startup.HostConfig   deployWAR INFO:部署Web应用程序存档C:\ Program   Files \ Apache Software Foundation \ Tomcat 7.0 \ webapps \ app-ws.war 7月28日,   2015 3:58:12 PM org.apache.catalina.loader.WebappClassLoader   validateJarFile INFO:validateJarFile(C:\ Program Files \ Apache Software   基金会\ Tomcat的   7.0 \ webapps \ app-ws \ WEB-INF \ lib \ tomcat-embed-core-8.0.20.jar) - jar未加载。请参见Servlet规范3.0,第10.7.2节。违规课程:   javax / servlet / Servlet.class 2015年7月28日下午3:58:12   org.apache.catalina.loader.WebappClassLoader validateJarFile INFO:   validateJarFile(C:\ Program Files \ Apache Software Foundation \ Tomcat   7.0 \ webapps \ app-ws \ WEB-INF \ lib \ tomcat-embed-el-7.0.63.jar) - jar未加载。请参见Servlet规范3.0,第10.7.2节。违规课程:   javax / el / Expression.class 2015年7月28日下午3:58:12   org.apache.catalina.deploy.WebXml setVersion警告:未知版本   字符串[3.1]。将使用默认版本。 2015年7月28日下午3:58:13   org.apache.catalina.core.ContainerBase addChildInternal SEVERE:   ContainerBase.addChild:start:   org.apache.catalina.LifecycleException:无法启动组件   [StandardEngine [卡塔利娜] .StandardHost [本地主机] .StandardContext [/ APP-WS]     在   org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)     在   org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)     在   org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)     在   org.apache.catalina.core.StandardHost.addChild(StandardHost.java:652)     在   org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:1090)     在   org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:553)     在org.apache.catalina.startup.HostConfig.check(HostConfig.java:1687)     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at   sun.reflect.NativeMethodAccessorImpl.invoke(未知来源)at   sun.reflect.DelegatingMethodAccessorImpl.invoke(未知来源)at   java.lang.reflect.Method.invoke(未知来源)at   org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:301)     在   com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(未知   来自)com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(未知   来源)at   org.apache.catalina.manager.ManagerServlet.check(ManagerServlet.java:1516)     在   org.apache.catalina.manager.ManagerServlet.deploy(ManagerServlet.java:739)     在   org.apache.catalina.manager.ManagerServlet.doPut(ManagerServlet.java:457)     在javax.servlet.http.HttpServlet.service(HttpServlet.java:653)at   javax.servlet.http.HttpServlet.service(HttpServlet.java:731)at at   org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)     在   org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)     在   org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)     在   org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)     在   org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)     在   org.apache.catalina.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108)     在   org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)     在   org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)     在   org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)     在   org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)     在   org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:614)     在   org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)     在   org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)     在   org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)     在   org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)     在   org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:423)     在   org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1079)     在   org.apache.coyote.AbstractProtocol $ AbstractConnectionHandler.process(AbstractProtocol.java:620)     在   org.apache.tomcat.util.net.JIoEndpoint $ SocketProcessor.run(JIoEndpoint.java:316)     at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)     at java.util.concurrent.ThreadPoolExecutor $ Worker.run(Unknown Source)     在   org.apache.tomcat.util.threads.TaskThread $ WrappingRunnable.run(TaskThread.java:61)     在java.lang.Thread.run(未知来源)引起:   java.lang.NoSuchMethodError:   javax.servlet.ServletContext.getVirtualServerName()Ljava /郎/字符串;     在   org.apache.tomcat.websocket.server.WsServerContainer。(WsServerContainer.java:147)     在org.apache.tomcat.websocket.server.WsSci.init(WsSci.java:131)at   org.apache.tomcat.websocket.server.WsSci.onStartup(WsSci.java:47)at   org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5517)     在   org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)     ......还有41个

             

        2015年7月28日下午3:58:13 org.apache.catalina.startup.HostConfig   deployWAR SEVERE:部署Web应用程序存档C:\ Program时出错   Files \ Apache Software Foundation \ Tomcat 7.0 \ webapps \ app-ws.war   java.lang.IllegalStateException:ContainerBase.addChild:start:   org.apache.catalina.LifecycleException:无法启动组件   [StandardEngine [卡塔利娜] .StandardHost [本地主机] .StandardContext [/ APP-WS]     在   org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:904)     在   org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)     在   org.apache.catalina.core.StandardHost.addChild(StandardHost.java:652)     在   org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:1090)     在   org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:553)     在org.apache.catalina.startup.HostConfig.check(HostConfig.java:1687)     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at   sun.reflect.NativeMethodAccessorImpl.invoke(未知来源)at   sun.reflect.DelegatingMethodAccessorImpl.invoke(未知来源)at   java.lang.reflect.Method.invoke(未知来源)at   org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:301)     在   com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(未知   来自)com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(未知   来源)at   org.apache.catalina.manager.ManagerServlet.check(ManagerServlet.java:1516)     在   org.apache.catalina.manager.ManagerServlet.deploy(ManagerServlet.java:739)     在   org.apache.catalina.manager.ManagerServlet.doPut(ManagerServlet.java:457)     在javax.servlet.http.HttpServlet.service(HttpServlet.java:653)at   javax.servlet.http.HttpServlet.service(HttpServlet.java:731)at at   org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)     在   org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)     在   org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)     在   org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)     在   org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)     在   org.apache.catalina.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108)     在   org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)     在   org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)     在   org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)     在   org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)     在   org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:614)     在   org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)     在   org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)     在   org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)     在   org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)     在   org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:423)     在   org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1079)     在   org.apache.coyote.AbstractProtocol $ AbstractConnectionHandler.process(AbstractProtocol.java:620)     在   org.apache.tomcat.util.net.JIoEndpoint $ SocketProcessor.run(JIoEndpoint.java:316)     at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)     at java.util.concurrent.ThreadPoolExecutor $ Worker.run(Unknown Source)     在   org.apache.tomcat.util.threads.TaskThread $ WrappingRunnable.run(TaskThread.java:61)     在java.lang.Thread.run(未知来源)

             

        2015年7月28日下午3:58:13 org.apache.catalina.startup.HostConfig   deployWAR INFO:部署Web应用程序存档C:\ Program   Files \ Apache Software Foundation \ Tomcat 7.0 \ webapps \ app-ws.war有   完成时间为26,717毫秒

        更新1

        修正了这个问题:

          

        2015年7月28日下午3:57:47 org.apache.catalina.startup.HostConfig   deployWAR INFO:部署Web应用程序存档C:\ Program   Files \ Apache Software Foundation \ Tomcat 7.0 \ webapps \ app-ws.war 7月28日,   2015 3:58:12 PM org.apache.catalina.loader.WebappClassLoader   validateJarFile INFO:validateJarFile(C:\ Program Files \ Apache Software   基金会\ Tomcat的   7.0 \ webapps \ app-ws \ WEB-INF \ lib \ tomcat-embed-core-8.0.20.jar) - jar未加载。请参见Servlet规范3.0,第10.7.2节。违规课程:   javax / servlet / Servlet.class 2015年7月28日下午3:58:12   org.apache.catalina.loader.WebappClassLoader validateJarFile INFO:   validateJarFile(C:\ Program Files \ Apache Software Foundation \ Tomcat   7.0 \ webapps \ app-ws \ WEB-INF \ lib \ tomcat-embed-el-7.0.63.jar) - jar未加载。请参见Servlet规范3.0,第10.7.2节。违规课程:   javax / el / Expression.class 2015年7月28日下午3:58:12   org.apache.catalina.deploy.WebXml setVersion警告:未知版本   字符串[3.1]。将使用默认版本。

        添加

        <dependency>
                        <groupId>org.apache.tomcat.embed</groupId>
                        <artifactId>tomcat-embed-el</artifactId>
                        <version>7.0.63</version>
                          <scope>provided</scope>
        </dependency>
        
        <dependency>
                        <groupId>org.apache.tomcat.embed</groupId>
                        <artifactId>tomcat-embed-core</artifactId>
                        <version>8.0.24</version>
                          <scope>provided</scope>
        </dependency>
        

1 个答案:

答案 0 :(得分:0)

我也遇到了同样的问题。然后我做了以下事情

  1. 转到tomcat管理页面,转到&#34; http://localhost:8000/manager/html&#34; 然后取消部署我的项目。 或者从Web应用程序手动删除项目(project.war和项目文件夹)。
  2. 再次在tomcat web apps文件夹中部署项目。
  3. 请注意,如果服务器成功部署了应用程序而没有任何错误,这是适用的。