2016-07-25 3 views
0

編集を実行することはできません私は残念ながらjava -jar spring-boot-sample.war を実行したときには、IDEで実行することができなかったと訴えによるEmbeddedServletContainerFactory豆の欠落にEmbeddedWebApplicationContextを開始することができません春ブーツプロジェクトはIntelliJのIDEで

次のように

エラーの詳細は以下のとおりです。

<parent> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-parent</artifactId> 
     <version>1.3.3.RELEASE</version> 
     <relativePath/> <!-- lookup parent from repository --> 
    </parent> 

<dependencies> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-security</artifactId> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-web</artifactId> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-tomcat</artifactId> 
      <scope>provided</scope> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-data-jpa</artifactId> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-data-mongodb</artifactId> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter</artifactId> 
      <exclusions> 
       <exclusion> 
        <groupId>org.springframework.boot</groupId> 
        <artifactId>spring-boot-starter-logging</artifactId> 
       </exclusion> 
      </exclusions> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-log4j</artifactId> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-test</artifactId> 
      <scope>test</scope> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-context-support</artifactId> 
      <version>${spring.version}</version> 
     </dependency> 
    </dependencies> 

私はPOMの設定で何かを見逃していました:

以下
[2016-07-25 12:32:46.979] boot - 5719 ERROR [restartedMain] --- SpringApplication: Application startup failed 
org.springframework.context.ApplicationContextException: Unable to start embedded container; nested exception is org.springframework.context.ApplicationContextException: Unable to start EmbeddedWebApplicationContext due to missing EmbeddedServletContainerFactory bean. 
    at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.onRefresh(EmbeddedWebApplicationContext.java:133) 
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:532) 
    at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:118) 
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:766) 
    at org.springframework.boot.SpringApplication.createAndRefreshContext(SpringApplication.java:361) 
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:307) 
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1191) 
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1180) 
    at com.rentacoder.WebApplication.main(WebApplication.java:19) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:497) 
    at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:49) 
Caused by: org.springframework.context.ApplicationContextException: Unable to start EmbeddedWebApplicationContext due to missing EmbeddedServletContainerFactory bean. 
    at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.getEmbeddedServletContainerFactory(EmbeddedWebApplicationContext.java:185) 
    at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.createEmbeddedServletContainer(EmbeddedWebApplicationContext.java:158) 
    at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.onRefresh(EmbeddedWebApplicationContext.java:130) 
    ... 13 more 
[2016-07-25 12:32:47.014] boot - 5719 INFO [restartedMain] --- ClasspathLoggingApplicationListener: Application failed to start with classpath: [file:/Users/hzhang/work/workplace/IdeaProjects/RHS/target/classes/] 

はPOMファイル内の依存関係の設定はありますか?

+0

_springブートアプリケーションclass_を使用して実行しようとしているようです。それも共有できますか?また 'のコメントを解除することもできます。は' spring-boot-starter-tomcat'から起動します。アプリケーションを起動すると、埋め込みのtomcatを使い再試行しますか? – Morfic

+0

@Morfic私の編集を確認してください、私はアプリケーションファイルを投稿します。私はコメントしましたからspring-boot-starter-tomcat、残念ながらまだ動作していません – haifzhan

+0

USe @SpringBootApplication annotation before class defination –

答えて

-1

IntelliJでどのように設定しましたか?それはWARファイルなので、Webサーバーコンテナが必要です。あなたのpomにはspring-boot-starter-tomcatがあるので、Tomcatサーバーの設定を作成する必要があります。これはIntelliJの有料機能なので、おそらくコミュニティ版ではできません。迅速な回避策として http://blog.trifork.com/2014/07/14/how-to-remotely-debug-application-running-on-tomcat-from-within-intellij-idea/

+0

@RickChenいくつかの有効なリンクを提供してください。あなたが投稿したものは空です。ところで、私が愛用ことしようとしていないのIntelliJ究極 – haifzhan

+0

を使用していますが、あなたは、あなたが春・ブート・スターター・tomcat'を追加した後IJでTomcatサーバーの設定が必要になります 'というあなたの声明をサポートするために、任意の公式ドキュメントを持っていますか?私が知っている限り、それはまったく反対です。[埋め込み式のtomcatを用意して、ボックス外に出すように設定しました](http://projects.spring.io/spring-boot/)、実行することができます_mainクラスのアプリ。結局のところ、これはブートの後ろに説得されている理由だと私は間違っていると思う? – Morfic

+0

は、あなたがリンクを修正するため、 ']'最後に、それは最も可能性の高い不幸なフォーマットエラーです – Morfic

0

、ターゲットフォルダから結果のjarファイルを使用してjarファイルの設定を追加することができます。

この問題を回避するには、WARファイルのリモートデバッグを作成することです。

この方法で、アプリケーションを通常またはデバッグモードで起動できます。

このアプローチの欠点として、ホットスワップは利用できず、変更がMavenビルドの後にのみ表示されます。しかし、この場合は、通常、「clean package -DskipTests」を使用して、以前のセクションでmavenの目標を追加するようにjarを実行するウィンドウを追加するので、実行するたびに最新の変更を適用します。

これはクイックフィックスです。問題は他の方法で解決することができます - 私はこれまで何度もやったことがありますが、問題のある依存関係を正確に覚えていません - Springのソースコードを少し掘り下げ、例外が発生するメソッドをデバッグする必要があります。

関連する問題