0

以前也有类似的问题,但我看到的所有答案都是“It just Works!”。可悲的是,它不适合我。如何将Spring Boot应用程序部署到AWS Elastic Beanstalk?

我的问题是:当我将一个war文件部署到Elastic Beanstalk时,我从catalina.out中看到一堆错误,提示“无法启动组件”(日志如下)。

我已经通过了Spring Boot教程,正在使用Gradle构建,并添加了'war'插件,因此我可以构建一个可部署的war文件。在本地运行时,我可以访问“Spring Boot的问候!”。除了规定的项目外,我没有对这个项目做任何修改来生成一个可部署的war文件,并试图改变这个项目的监听端口。

我用负载平衡器配置,允许端口8080入站和出站,并将“FullAccessEC2Instance”安全角色添加到IAM认为我没有设置权限(但这并没有'它只是工作'的感觉)。

当前旋转我的轮子猜测现在该做什么。我正在考虑测试部署到Heroku并查看它是否也存在问题,或者如果它是我的AWS配置的问题。

2015-06-21 14:52:02.946 INFO 2644 --- [ost-startStop-1] o.s.boot.SpringApplication    : Started application in 11.831 seconds (JVM running for 21.292) 
21-Jun-2015 14:52:02.970 SEVERE [localhost-startStop-1] org.apache.catalina.core.ContainerBase.addChildInternal ContainerBase.addChild: start: 
org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[]] 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154) 
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:725) 
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:701) 
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:717) 
    at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1069) 
    at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1719) 
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
    at java.lang.Thread.run(Thread.java:745) 
Caused by: java.lang.NullPointerException 
    at org.eclipse.jetty.websocket.jsr356.server.deploy.WebSocketServerContainerInitializer.isEnabled(WebSocketServerContainerInitializer.java:122) 
    at org.eclipse.jetty.websocket.jsr356.server.deploy.WebSocketServerContainerInitializer.onStartup(WebSocketServerContainerInitializer.java:137) 
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5151) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
    ... 10 more 

21-Jun-2015 14:52:02.972 SEVERE [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Error deploying web application directory /var/lib/tomcat8/webapps/ROOT 
java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[]] 
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:728) 
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:701) 
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:717) 
    at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1069) 
    at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1719) 
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
    at java.lang.Thread.run(Thread.java:745) 

21-Jun-2015 14:52:02.980 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory /var/lib/tomcat8/webapps/ROOT has finished in 18,574 ms 
21-Jun-2015 14:52:02.985 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"] 
21-Jun-2015 14:52:03.015 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["ajp-nio-8009"] 
21-Jun-2015 14:52:03.026 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 18751 ms 

谢谢大家!

编辑:

这里是装载实例的全catalina.out的:

. ____   _   __ _ _ 
/\\/___'_ __ _ _(_)_ __ __ _ \ \ \ \ 
(()\___ | '_ | '_| | '_ \/ _` | \ \ \ \ 
\\/ ___)| |_)| | | | | || (_| | )))) 
    ' |____| .__|_| |_|_| |_\__, |//// 
=========|_|==============|___/=/_/_/_/ 
:: Spring Boot ::  (v1.2.4.RELEASE) 

2015-06-21 15:31:43.017 INFO 2034 --- [ost-startStop-1] o.s.boot.SpringApplication    : Starting application on ip-172-31-6-84 with PID 2034 (/var/lib/tomcat8/webapps/ROOT/WEB-INF/lib/spring-boot-1.2.4.RELEASE.jar started by tomcat in /usr/share/tomcat8) 
2015-06-21 15:31:43.096 INFO 2034 --- [ost-startStop-1] ationConfigEmbeddedWebApplicationContext : Refreshing org.springframework.boot[email protected]2427d57f: startup date [Sun Jun 21 15:31:43 UTC 2015]; root of context hierarchy 
2015-06-21 15:31:45.158 INFO 2034 --- [ost-startStop-1] o.s.b.f.s.DefaultListableBeanFactory  : Overriding bean definition for bean 'beanNameViewResolver': replacing [Root bean: class [null]; scope=; abstract=false; lazyInit=false; autowireMode=3; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=org.springframework.boot.autoconfigure.web.ErrorMvcAutoConfiguration$WhitelabelErrorViewConfiguration; factoryMethodName=beanNameViewResolver; initMethodName=null; destroyMethodName=(inferred); defined in class path resource [org/springframework/boot/autoconfigure/web/ErrorMvcAutoConfiguration$WhitelabelErrorViewConfiguration.class]] with [Root bean: class [null]; scope=; abstract=false; lazyInit=false; autowireMode=3; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=org.springframework.boot.autoconfigure.web.WebMvcAutoConfiguration$WebMvcAutoConfigurationAdapter; factoryMethodName=beanNameViewResolver; initMethodName=null; destroyMethodName=(inferred); defined in class path resource [org/springframework/boot/autoconfigure/web/WebMvcAutoConfiguration$WebMvcAutoConfigurationAdapter.class]] 
2015-06-21 15:31:46.622 INFO 2034 --- [ost-startStop-1] o.s.web.context.ContextLoader   : Root WebApplicationContext: initialization completed in 3526 ms 
2015-06-21 15:31:47.884 INFO 2034 --- [ost-startStop-1] .b.a.w.JettyWebSocketContainerCustomizer : NonEmbeddedServletContainerFactory detected. Websockets support should be native so this normally is not a problem. 
2015-06-21 15:31:50.306 INFO 2034 --- [ost-startStop-1] o.s.b.c.e.ServletRegistrationBean  : Mapping servlet: 'dispatcherServlet' to [/] 
2015-06-21 15:31:50.312 INFO 2034 --- [ost-startStop-1] o.s.b.c.embedded.FilterRegistrationBean : Mapping filter: 'errorPageFilter' to: [/*] 
2015-06-21 15:31:50.312 INFO 2034 --- [ost-startStop-1] o.s.b.c.embedded.FilterRegistrationBean : Mapping filter: 'metricFilter' to: [/*] 
2015-06-21 15:31:50.312 INFO 2034 --- [ost-startStop-1] o.s.b.c.embedded.FilterRegistrationBean : Mapping filter: 'characterEncodingFilter' to: [/*] 
2015-06-21 15:31:50.312 INFO 2034 --- [ost-startStop-1] o.s.b.c.embedded.FilterRegistrationBean : Mapping filter: 'hiddenHttpMethodFilter' to: [/*] 
2015-06-21 15:31:50.313 INFO 2034 --- [ost-startStop-1] o.s.b.c.embedded.FilterRegistrationBean : Mapping filter: 'webRequestLoggingFilter' to: [/*] 
2015-06-21 15:31:50.313 INFO 2034 --- [ost-startStop-1] o.s.b.c.embedded.FilterRegistrationBean : Mapping filter: 'applicationContextIdFilter' to: [/*] 
2015-06-21 15:31:51.178 INFO 2034 --- [ost-startStop-1] s.w.s.m.m.a.RequestMappingHandlerAdapter : Looking for @ControllerAdvice: org.springframework.boot[email protected]2427d57f: startup date [Sun Jun 21 15:31:43 UTC 2015]; root of context hierarchy 
2015-06-21 15:31:51.388 INFO 2034 --- [ost-startStop-1] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/],methods=[],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.lang.String hello.HelloController.index() 
2015-06-21 15:31:51.391 INFO 2034 --- [ost-startStop-1] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error],methods=[],params=[],headers=[],consumes=[],produces=[text/html],custom=[]}" onto public org.springframework.web.servlet.ModelAndView org.springframework.boot.autoconfigure.web.BasicErrorController.errorHtml(javax.servlet.http.HttpServletRequest) 
2015-06-21 15:31:51.391 INFO 2034 --- [ost-startStop-1] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error],methods=[],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public org.springframework.http.ResponseEntity<java.util.Map<java.lang.String, java.lang.Object>> org.springframework.boot.autoconfigure.web.BasicErrorController.error(javax.servlet.http.HttpServletRequest) 
2015-06-21 15:31:51.493 INFO 2034 --- [ost-startStop-1] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/webjars/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler] 
2015-06-21 15:31:51.493 INFO 2034 --- [ost-startStop-1] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler] 
2015-06-21 15:31:51.637 INFO 2034 --- [ost-startStop-1] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/**/favicon.ico] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler] 
2015-06-21 15:31:53.442 INFO 2034 --- [ost-startStop-1] o.s.b.a.e.mvc.EndpointHandlerMapping  : Mapped "{[/health],methods=[],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.HealthMvcEndpoint.invoke(java.security.Principal) 
2015-06-21 15:31:53.443 INFO 2034 --- [ost-startStop-1] o.s.b.a.e.mvc.EndpointHandlerMapping  : Mapped "{[/trace],methods=[GET],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke() 
2015-06-21 15:31:53.443 INFO 2034 --- [ost-startStop-1] o.s.b.a.e.mvc.EndpointHandlerMapping  : Mapped "{[/beans],methods=[GET],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke() 
2015-06-21 15:31:53.453 INFO 2034 --- [ost-startStop-1] o.s.b.a.e.mvc.EndpointHandlerMapping  : Mapped "{[/env/{name:.*}],methods=[GET],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EnvironmentMvcEndpoint.value(java.lang.String) 
2015-06-21 15:31:53.457 INFO 2034 --- [ost-startStop-1] o.s.b.a.e.mvc.EndpointHandlerMapping  : Mapped "{[/env],methods=[GET],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke() 
2015-06-21 15:31:53.457 INFO 2034 --- [ost-startStop-1] o.s.b.a.e.mvc.EndpointHandlerMapping  : Mapped "{[/dump],methods=[GET],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke() 
2015-06-21 15:31:53.458 INFO 2034 --- [ost-startStop-1] o.s.b.a.e.mvc.EndpointHandlerMapping  : Mapped "{[/autoconfig],methods=[GET],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke() 
2015-06-21 15:31:53.458 INFO 2034 --- [ost-startStop-1] o.s.b.a.e.mvc.EndpointHandlerMapping  : Mapped "{[/configprops],methods=[GET],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke() 
2015-06-21 15:31:53.458 INFO 2034 --- [ost-startStop-1] o.s.b.a.e.mvc.EndpointHandlerMapping  : Mapped "{[/mappings],methods=[GET],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke() 
2015-06-21 15:31:53.459 INFO 2034 --- [ost-startStop-1] o.s.b.a.e.mvc.EndpointHandlerMapping  : Mapped "{[/info],methods=[GET],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke() 
2015-06-21 15:31:53.459 INFO 2034 --- [ost-startStop-1] o.s.b.a.e.mvc.EndpointHandlerMapping  : Mapped "{[/metrics/{name:.*}],methods=[GET],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.MetricsMvcEndpoint.value(java.lang.String) 
2015-06-21 15:31:53.459 INFO 2034 --- [ost-startStop-1] o.s.b.a.e.mvc.EndpointHandlerMapping  : Mapped "{[/metrics],methods=[GET],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke() 
2015-06-21 15:31:53.516 INFO 2034 --- [ost-startStop-1] o.s.j.e.a.AnnotationMBeanExporter  : Registering beans for JMX exposure on startup 
2015-06-21 15:31:53.561 INFO 2034 --- [ost-startStop-1] o.s.c.support.DefaultLifecycleProcessor : Starting beans in phase 0 
2015-06-21 15:31:53.844 INFO 2034 --- [ost-startStop-1] o.s.boot.SpringApplication    : Started application in 12.088 seconds (JVM running for 21.354) 
21-Jun-2015 15:31:53.859 SEVERE [localhost-startStop-1] org.apache.catalina.core.ContainerBase.addChildInternal ContainerBase.addChild: start: 
org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[]] 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154) 
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:725) 
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:701) 
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:717) 
    at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1069) 
    at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1719) 
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
    at java.lang.Thread.run(Thread.java:745) 
Caused by: java.lang.NullPointerException 
    at org.eclipse.jetty.websocket.jsr356.server.deploy.WebSocketServerContainerInitializer.isEnabled(WebSocketServerContainerInitializer.java:122) 
    at org.eclipse.jetty.websocket.jsr356.server.deploy.WebSocketServerContainerInitializer.onStartup(WebSocketServerContainerInitializer.java:137) 
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5151) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
    ... 10 more 

21-Jun-2015 15:31:53.866 SEVERE [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Error deploying web application directory /var/lib/tomcat8/webapps/ROOT 
java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[]] 
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:728) 
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:701) 
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:717) 
    at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1069) 
    at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1719) 
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
    at java.lang.Thread.run(Thread.java:745) 

21-Jun-2015 15:31:53.873 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory /var/lib/tomcat8/webapps/ROOT has finished in 18,712 ms 
21-Jun-2015 15:31:53.878 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"] 
21-Jun-2015 15:31:53.896 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["ajp-nio-8009"] 
21-Jun-2015 15:31:53.904 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 18879 ms 
+0

我已经取得了一些进展 - 看来我可以从WAR文件部署它,如果我从build.gradle文件中删除Jetty依赖项。这是令人讨厌的,因为Spring Boot的教程专门将配置称为“既可以从战争和jar中部署”,也可以不是。 – Brian

+0

可否请你发布你build.gradle文件的样子? – MDrabic

回答

0

原来的解决方案是只有两种码头或Tomcat在build.grade依赖关系部分。似乎这在文档中是正确的,但我误解了我的意思是要删除或者,或者取决于我想要如何部署它。

相关问题