我是Spring启动的新手。我了解Spring mvc。我开发了一个带有@RestController的小应用程序,如下文更新中所述。当我使用mvn spring-boot: run
(即嵌入式tomcat)执行时,这工作正常
>
当我将打包的war部署到tomcat时,相同的REST调用导致404未找到
。目标urlhttp://localhost:8086/myapp/demo给出404。
我创建了log4j2.xml
,当我使用嵌入式tomcat执行时,它会创建预期的日志文件,但对于外部tomcat部署,它也不会创建日志文件,并且我在下的任何tomcat日志中找不到任何日志
我错过了什么?
更新:
spring boot入口点类:
@SpringBootApplication
@RestController
public class App extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(App.class, args);
}
@Override
protected SpringApplicationBuilder configure(
SpringApplicationBuilder application) {
return application.sources(App.class);
}
@RequestMapping("/demo")
public String demo() {
return "Helloo.. !!";
}
}
Spring启动版本=
部署到tcServer时的日志
INFO: Deploying web application archive C:\Users\a\vfabric-tc-server\vm1\webapps\myapp.war
Sep 12, 2016 5:07:23 PM org.apache.catalina.loader.WebappClassLoader validateJarFile
INFO: validateJarFile(C:\Users\a\vfabric-tc-server\vm1\webapps\myapp\WEB-INF\lib\tomcat-embed-el-8.0.30.jar) - jar not loaded. See Servlet Spec 3.0, section 10.7.2. Offending class: javax/el/Expression.class
Sep 12, 2016 5:07:24 PM org.apache.catalina.startup.TldConfig execute
INFO: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
Sep 12, 2016 5:07:24 PM org.apache.catalina.core.ApplicationContext log
INFO: Spring WebApplicationInitializers detected on classpath: [org.springframework.boot.autoconfigure.jersey.JerseyAutoConfiguration$JerseyWebApplicationInitializer@47b35d]
Sep 12, 2016 5:07:24 PM org.apache.catalina.startup.HostConfig deployWAR
INFO: Deployment of web application archive C:\Users\a\vfabric-tc-server\vm1\webapps\myapp.war has finished in 1,913 ms
更新1:我删除了Angular,只保留了restcontroller的spring boot。问题仍然存在。
这是指向JDK6
的目标外部Tomcat服务器的问题,但我的应用程序是使用jdk7
构建的。一旦我将外部Tomcat指向jdk7
,问题就解决了。
您是否可以在POM文件中将Tomcat嵌入式服务器的范围更改为“提供”,或者将其部署到非嵌入式Tomcat容器中,最好排除JAR(因此注释掉它也是一个不错的选择)。
我在旧的v1.3中遇到了类似的问题。Spring防尘套的x。我在新版本(即v1.4.0)中没有观察到这一点。
我假设您正在项目POM中使用Spring BOOT父POM和“Spring BOOT starter”库。
null ServerEndpoint: 谢谢你。
问题内容: 我需要在Tomcat中启动Hazelcast,而无需单独的war文件。因此,将hazelcast.jar放入lib文件夹中的hazelczast.xml某处…接下来呢?还是不可能? 问题答案: 第一步是好的,只需将Hazelcast lib和配置放在Tomcat的libs文件夹中。接下来,如果您不需要单独的WAR文件,则是构建一个小的Valve类来启动/关闭Hazelcast节点。问题
我有时会在pom中看到以下声明。xml。。。 如您所见,sping-boo-starter-web被声明为tomcat-embed-jasper。 是不是sping-boo-starter-web已经有一个嵌入式tomcat了?为什么一些开发人员仍然声明tomcat-embed-jasper以及boot-starter-web?还是有什么原因?
我正在使用SpringBoot(2.1.3.RELEASE)和嵌入式tomcat(版本9.0.16)开发一个java应用程序(jar文件)。 我想重写tomcat的Catalina错误报告阀错误页面, 为此,我需要指示Tomcat使用为此目的而创建的自定义类,而不是默认类。这可以通过更新Tomcat配置文件“server”中的主机元素来实现。xml’。 自定义类: 服务器xml(或使用嵌入式tom
我需要将我的Spring Boot ZuL网关中的MaxKeepAliverRequests值修改为高于默认值100的值。注意到该值未在Spring Boo的公共属性列表中公开,我尝试通过@Configuration class设置属性: 但似乎并没有起到预期的效果。有没有一种合适的方法可以让我更改没有通过Spring common properties公开的Tomcat属性?
在将非spring应用程序转换为Spring Boot时,您希望使用现有上下文。嵌入tomcat中的xml文件。 使用Spring Boot 1.5.1和Tomcat 8.5.11 TomcatEmbeddedServletContainerFactory配置 检查数据库连接的方法, 那么如何在Spring Boot中加载现有的context.xml。