【问题标题】:War, spring and tomcat 7战争,春天和tomcat 7
【发布时间】:2014-04-28 22:25:57
【问题描述】:

我想在 Apache tomcat 7 服务器上使用 Spring Framework 创建一个 REST Web 服务。

所以,我从教程中获取了 build.gradle,我创建了我的 Ws 并使用 main 方法创建了主控制器 (/greeting) 和我的 Application.class。

然后,我 gradle clean build 我的解决方案并引发了一场战争。

我用tomcat服务器的manager ui部署这个war,当我尝试请求url localhost:8080/mySoft/greeting时,出现404错误。

谁能帮帮我?

真诚的


我按照教程进行操作,但我像战争一样部署应用程序。所以它应该在 localhost:8080/myApp/greeting 上。 localhost:8080/greeting deosnt work...

应用程序.java package main.java; import org.springframework.boot.SpringApplication; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.EnableWebMvc; @Configuration @EnableWebMvc public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } } HelloController.java package com.id2tel.controller; import java.util.concurrent.atomic.AtomicLong; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; @Controller public class HomeController { private static final String template = "Hello, %s!"; private final AtomicLong counter = new AtomicLong(); @RequestMapping("/greeting") public @ResponseBody Greeting greeting( @RequestParam(value = "name", required = false, defaultValue = "World") String name) { return new Greeting(counter.incrementAndGet(), String.format(template, name)); } }

还有spring提供的基本问候类。


我创建了 HelloWebXml 类。

我检查了我的 catalina 日志,发现了这个:

Infos: Déploiement de l'archive D:\j2ee\apache-tomcat-7.0.52-windows-x64\apache-tomcat-7.0.52\webapps\gs-convert-jar-to-war-0.1.0.war de l'application web mars 24, 2014 8:28:57 AM org.apache.catalina.core.ContainerBase addChildInternal Grave: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/gs-convert-jar-to-war-0.1.0]] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154) 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:632) at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:1073) at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:553) at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1648) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:301) at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819) at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801) at org.apache.catalina.manager.ManagerServlet.check(ManagerServlet.java:1445) at org.apache.catalina.manager.HTMLManagerServlet.upload(HTMLManagerServlet.java:284) at org.apache.catalina.manager.HTMLManagerServlet.doPost(HTMLManagerServlet.java:206) at javax.servlet.http.HttpServlet.service(HttpServlet.java:646) at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.catalina.filters.CsrfPreventionFilter.doFilter(CsrfPreventionFilter.java:213) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.catalina.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:610) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1040) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607) at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:2441) at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2430) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:744)

【问题讨论】:

  • 日志或控制台上的任何内容?在 tomcat/log 上检查 catalina.out
  • 如果您正在学习本教程,那么您将在此处获取 JSON .. localhost:8080/greeting
  • 请同时发布您的代码。这将有助于解决问题

标签: spring tomcat gradle war


【解决方案1】:

如果您正在学习本教程,Here 您的服务网址应该是

http://localhost:8080/greeting

【讨论】:

    【解决方案2】:

    据我所知 - 基于您的 Application 类,没有将您的应用程序转换为 WAR。

    如果您将基于 Spring Boot 的应用程序部署到应用程序服务器,请记住按照指南中描述的方式将其转换为 WAR:https://spring.io/guides/gs/convert-jar-to-war/

    【讨论】:

    • 我这样做了。我获得了一个战争文件,而不是一个 jar 文件
    • 好的,你是否也像教程中解释的那样创建了 HelloWebXml 类?
    猜你喜欢
    • 2016-04-25
    • 2012-11-27
    • 2018-04-27
    • 2020-09-24
    • 1970-01-01
    • 1970-01-01
    • 2014-04-23
    • 2018-11-03
    • 2014-04-28
    相关资源
    最近更新 更多