2017-12-07 5 views
2

これは恐らく初心者の質問ですが、これを並べ替えることはできません。IntelliJ IDEAのSpringブートプロジェクトは、再起動後に動作を停止します

IntelliJ IDEAのSpring Initializrインターフェイスを使用して、SpringブートJARベースのMavenプロジェクトを作成しました。ウェブとJDBCへの依存。 Tomcatの埋め込みインスタンスがプロジェクトの実行に使用されます。

私は関連するダイアログから問題なく追加する他のいくつかのMaven依存関係も持っています。また、Logbackのコピーを含むApache PhoenixシンクライアントJARを手動で追加します(私はMavenリポジトリを動作させることができませんが、これはこの質問には関係ないと思います)。

私はプロジェクトを完璧に実行することができます。システムの再起動後(私はWindows)、エラーのカスケードが続きます。まず、Logbackとの競合を通知する例外があります。

Exception in thread "main" java.lang.IllegalArgumentException: LoggerFactory is not a Logback LoggerContext but Logback is on the classpath. Either remove Logback or the competing implementation (class org.slf4j.impl.Log4jLoggerFactory loaded from [...]). If you are using WebLogic you will need to add 'org.slf4j' to prefer-application-packages in WEB-INF/weblogic.xml: org.slf4j.impl.Log4jLoggerFactory. 

私はPhoenixクライアントJARを変更したくありません。私は、LogbackのSpring依存性を別のロガー(例えばlog4j2)に置き換えるための指示に従うことができますが、組み込みTomcatはコンテナの作成に失敗します。

作業に戻るには、最初からプロジェクトを再作成する必要があります。

実際の問題点を特定するには正しい方向に指摘してください。ありがとうございました。

投稿スクリプト:私はpom.xmlの内容を、潜在的な識別情報とは別に付け加えています。

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 

    <groupId>[RETRACTED]</groupId> 
    <artifactId>[RETRACTED]</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <packaging>jar</packaging> 

    <name>[RETRACTED]</name> 
    <description>[RETRACTED]</description> 

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

    <properties> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
     <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> 
     <java.version>1.8</java.version> 
    </properties> 

    <dependencies> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-jdbc</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-test</artifactId> 
      <scope>test</scope> 
     </dependency> 
    </dependencies> 

    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.springframework.boot</groupId> 
       <artifactId>spring-boot-maven-plugin</artifactId> 
      </plugin> 
     </plugins> 
    </build> 


</project> 
+0

あなたはpom.xmlを投稿できます – robjwilkins

+0

@robjwilkins done –

答えて

0
まず

ではなく、Apacheのフェニックスクライアント(または任意の他の依存関係)を追加するMavenのは、ビルド時に依存性を解決しますので、手動であなたは、あなたのMavenのpom.xmlに追加する必要があります。もしあなたのプロジェクトがこれを解決できない依存関係を持っているなら、解決しなければならない別個の問題ですが、手動で追加するのはいくつかの理由で悪い方法です。

依存関係としてphoenixクライアントを追加したら、依存関係宣言の一部として明示的にslf4j-log4j12とlog4jを除外する必要があります。 XMLは次のようになります。除外これらの必要性

<dependency> 
     <groupId>org.apache.phoenix</groupId> 
     <artifactId>phoenix-core</artifactId> 
     <version>4.13.1-HBase-1.3</version> 
     <exclusions> 
      <exclusion> 
       <groupId>log4j</groupId> 
       <artifactId>log4j</artifactId> 
      </exclusion> 
      <exclusion> 
       <groupId>org.slf4j</groupId> 
       <artifactId>slf4j-log4j12</artifactId> 
      </exclusion> 
     </exclusions> 
    </dependency> 

理由は、彼らが春ブートプロジェクトうまくいけば、これはあなたの問題をソートします

にバンドルされたバージョンと競合していることです。

+0

私はPhoenix Mavenリポジトリを使いたいと思っていましたが、バージョン4.13.1への依存性を追加するのに苦労しています。とにかく私のシナリオでは役に立たないので、以前のバージョンでは試したことがありません。なぜ、プロジェクトが新しい(IntelliJで再作成された)ときにコンフリクトが発生せず、再起動後にその理由がわかりません –

+0

あなたのPOMに依存関係を追加するときにどんな問題がありますか?私は試して、log4jエラーを再現し、私の答えに記載されているように除外を追加し、それは問題を解決しました – robjwilkins

+1

最初の提案は正しいです:Mavenの外に依存関係が問題を与える。特に、私が行っていたようにシンクライアントを使用していた場合、問題はMavenの依存関係ではなく「fat JAR」の使用にあります。正しいリポジトリを追加した後、ログエラーは消えます。 –

関連する問題