2016-11-14 9 views
2

初めてspringbootを試しましたが、開始することができません。 私はサンプルアプリケーションを使用しました:https://github.com/spring-guides/gs-spring-boot.git 私もTomcatの代わりに埋め込み桟橋を使用するように修正を加えましたが、まだ成功しません。springbootアプリを起動できません - リソースの場所はnullでなければなりません

例外は次のとおりです。org.springframework.context.ApplicationContextException:組み込みコンテナを開始できません。ネストされた例外はjava.lang.IllegalArgumentExceptionです。リソースのロケーションはnullであってはなりません。

これはMacOSX上です。

編集:これは環境問題であることを確認しました。私はLinux(fedora)のVMでアプリケーションを起動することはできますが、何らかの理由でMac上でこの問題が発生します。他の誰かがこれに遭遇し、これを引き起こしている可能性のある手掛かりがあるかどうかはわかりません。

編集2:これはデフォルトでsslを設定しようとすると問題が発生するようです。私はこれをどこにも指定していないので、なぜこれが当てはまるのか分かりません。だから今私の質問は、どのように私は春のブートでhttpsを無効にするのですか?

mvn -version 
Apache Maven 3.2.5 (12a6b3acb947671f09b81f49094c53f426d8cea1; 2014-12-14T09:29:23-08:00) 
Maven home: /usr/local/Cellar/maven/3.2.5/libexec 
Java version: 1.8.0_25, vendor: Oracle Corporation 
Java home: /Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home/jre 
Default locale: en_US, platform encoding: UTF-8 
OS name: "mac os x", version: "10.10.5", arch: "x86_64", family: "mac" 

助けていただければ幸いです。

org.springframework.context.ApplicationContextException: Unable to start embedded container; nested exception is java.lang.IllegalArgumentException: Resource location must not be null 
    at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.onRefresh(EmbeddedWebApplicationContext.java:137) ~[spring-boot-1.4.2.RELEASE.jar!/:1.4.2.RELEASE] 
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:536) ~[spring-context-4.3.4.RELEASE.jar!/:4.3.4.RELEASE] 
    at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122) ~[spring-boot-1.4.2.RELEASE.jar!/:1.4.2.RELEASE] 
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:761) [spring-boot-1.4.2.RELEASE.jar!/:1.4.2.RELEASE] 
    at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:371) [spring-boot-1.4.2.RELEASE.jar!/:1.4.2.RELEASE] 
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:315) [spring-boot-1.4.2.RELEASE.jar!/:1.4.2.RELEASE] 
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1186) [spring-boot-1.4.2.RELEASE.jar!/:1.4.2.RELEASE] 
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1175) [spring-boot-1.4.2.RELEASE.jar!/:1.4.2.RELEASE] 
    at hello.Application.main(Application.java:15) [classes!/:0.1.0] 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_25] 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_25] 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_25] 
    at java.lang.reflect.Method.invoke(Method.java:483) ~[na:1.8.0_25] 
    at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:48) [gs-spring-boot-0.1.0.jar:0.1.0] 
    at org.springframework.boot.loader.Launcher.launch(Launcher.java:87) [gs-spring-boot-0.1.0.jar:0.1.0] 
    at org.springframework.boot.loader.Launcher.launch(Launcher.java:50) [gs-spring-boot-0.1.0.jar:0.1.0] 
    at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:58) [gs-spring-boot-0.1.0.jar:0.1.0] 
Caused by: java.lang.IllegalArgumentException: Resource location must not be null 
    at org.springframework.util.Assert.notNull(Assert.java:115) ~[spring-core-4.3.4.RELEASE.jar!/:4.3.4.RELEASE] 
    at org.springframework.util.ResourceUtils.getURL(ResourceUtils.java:131) ~[spring-core-4.3.4.RELEASE.jar!/:4.3.4.RELEASE] 
    at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory.configureSslKeyStore(TomcatEmbeddedServletContainerFactory.java:417) ~[spring-boot-1.4.2.RELEASE.jar!/:1.4.2.RELEASE] 
    at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory.configureSsl(TomcatEmbeddedServletContainerFactory.java:395) ~[spring-boot-1.4.2.RELEASE.jar!/:1.4.2.RELEASE] 
    at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory.customizeSsl(TomcatEmbeddedServletContainerFactory.java:332) ~[spring-boot-1.4.2.RELEASE.jar!/:1.4.2.RELEASE] 
    at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory.customizeConnector(TomcatEmbeddedServletContainerFactory.java:311) ~[spring-boot-1.4.2.RELEASE.jar!/:1.4.2.RELEASE] 
    at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory.getEmbeddedServletContainer(TomcatEmbeddedServletContainerFactory.java:169) ~[spring-boot-1.4.2.RELEASE.jar!/:1.4.2.RELEASE] 
    at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.createEmbeddedServletContainer(EmbeddedWebApplicationContext.java:164) ~[spring-boot-1.4.2.RELEASE.jar!/:1.4.2.RELEASE] 
    at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.onRefresh(EmbeddedWebApplicationContext.java:134) ~[spring-boot-1.4.2.RELEASE.jar!/:1.4.2.RELEASE] 
    ... 16 common frames omitted 
+0

スタックトレース全体を貼り付けてください – luke

+0

スタックトレースは、お使いのアプリがまだTomcatを使用していることを示しています。また、SSLを設定しようとしているようですが、設定が不完全であるように見えます。問題を再現する完全な例は、何が起こっているのかを簡単に把握することができます。 –

+0

組み込みサーバーで@AndyWilkinsonと同意すると、JettyよりもまだTomcatです。私は根源的な例外を見つけようとしました。ここでは、Springのコア依存関係のために、 "リソースの場所はnullであってはいけません" - ** https://github.com/spring-projects/spring-framework/blob/v4.3.4.RELEASE /spring-core/src/main/java/org/springframework/util/ResourceUtils.java** Line - 131.あなたのクラスパスにあなたのアプリがない(いくつかの必要な!?)リソースがあるようです。そこから解決するためのアイデアを得ることを願っています。 –

答えて

6

追加:私のapplication.propertiesで server.ssl.enabled=false は、問題を解決しました。私はsslの設定は、親ブートスターターpomに基づいて期待されていたと仮定??再び、なぜこれがLinux VMで正常に動作しているのか分かりません。 これ以上深く掘り下げる時間はありません。誰かがもう少し光を当てるかもしれません。

+0

あなたのMacにSSLを設定しようとしている環境変数などがあると思います –

1

私は無効化と有効化されていたHTTPS(server.ssl.enabled=true)が、これらのバックを追加し忘れていた:

server.ssl.key-store=file:///Users/... 
server.ssl.key-store-password=****** 

は、将来的にいくつかのいずれかを助けるかもしれません。

関連する問題