Spring-boot gradle项目在建立战争后创建空的webapp文件夹

时间:2016-02-23 15:30:45

标签: gradle spring-boot war

我有一个带有服务器模块的spring boot gradle项目,我在build.gradle文件中使用了gradle war插件。

https://docs.gradle.org/current/userguide/web_project_tutorial.html

根据此链接:https://docs.spring.io/spring-boot/docs/current/reference/html/howto-traditional-deployment.html(80.1)

我重写了configure方法,我可以看到正在构建war文件并将其放在server / build / tmp目录中。

项目构建时,它还会在server / src / main / webapp创建一个空的webapp目录(这是默认的webAppDirName)。

http://www.petrikainulainen.net/programming/gradle/getting-started-with-gradle-creating-a-web-application-project/

需要进行战争,以便我们的操作人员可以在外部Tomcat容器上运行它。但是,为方便起见,我们的开发人员只是使用gradle包装器构建和运行> ./gradlew:server:使用嵌入式Tomcat容器启动。

我的问题是,当我们执行bootRun时,它会查看在构建过程中创建的空webapp文件夹并抛出此错误:

2016-02-23 10:51:32.632  INFO 83043 --- [           main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat initialized with port(s): 22443 (https)
2016-02-23 10:51:32.641  INFO 83043 --- [           main] o.apache.catalina.core.StandardService   : Starting service Tomcat
2016-02-23 10:51:32.642  INFO 83043 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet Engine: Apache Tomcat/8.0.30
2016-02-23 10:51:32.673 ERROR 83043 --- [cat-startStop-1] org.apache.catalina.core.ContainerBase   : A child container failed during start

java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Tomcat].StandardHost[localhost].StandardContext[/imageretriever]]
    at java.util.concurrent.FutureTask.report(FutureTask.java:122) [na:1.8.0_60]
    at java.util.concurrent.FutureTask.get(FutureTask.java:192) [na:1.8.0_60]
    at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:916) ~[tomcat-embed-core-8.0.30.jar:8.0.30]
    at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:871) [tomcat-embed-core-8.0.30.jar:8.0.30]
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) [tomcat-embed-core-8.0.30.jar:8.0.30]
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1408) [tomcat-embed-core-8.0.30.jar:8.0.30]
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1398) [tomcat-embed-core-8.0.30.jar:8.0.30]
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_60]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_60]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_60]
    at java.lang.Thread.run(Thread.java:745) [na:1.8.0_60]
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Tomcat].StandardHost[localhost].StandardContext[/imageretriever]]
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154) [tomcat-embed-core-8.0.30.jar:8.0.30]
    ... 6 common frames omitted
Caused by: org.apache.catalina.LifecycleException: Failed to start component [org.apache.catalina.webresources.StandardRoot@7f31763e]
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154) [tomcat-embed-core-8.0.30.jar:8.0.30]
    at org.apache.c.core.StandardContext.resourcesStart(StandardContext.java:4928) ~[tomcat-embed-core-8.0.30.jar:8.0.30]
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5058) ~[tomcat-embed-core-8.0.30.jar:8.0.30]
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) [tomcat-embed-core-8.0.30.jar:8.0.30]
    ... 6 common frames omitted
Caused by: java.lang.IllegalArgumentException: The main resource set specified [/Users/carlc/intellij_workspace/image-retriever/src/main/webapp] is not valid
    at org.apache.catalina.webresources.StandardRoot.createMainResourceSet(StandardRoot.java:723) ~[tomcat-embed-core-8.0.30.jar:8.0.30]
    at org.apache.catalina.webresources.StandardRoot.startInternal(StandardRoot.java:684) ~[tomcat-embed-core-8.0.30.jar:8.0.30]
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) [tomcat-embed-core-8.0.30.jar:8.0.30]
    ... 9 common frames omitted

我认为这个问题可能与此相关:https://github.com/spring-projects/spring-boot/issues/1313

但我无法收集任何有用的信息。

我可以想到两个解决方案:1)在构建过程中删除有问题的webapp文件夹2)配置bootRun以忽略webapp文件夹3)你的建议在这里_____________:)

我可以根据您的要求发布您认为相关的build.gradle或其他代码。谢谢你的帮助。

0 个答案:

没有答案