ビルドツールとしてmavenを使ってspring-boot appを作成しています。吹き出しへの春ブート戦の展開
私は、.warファイルを作成し、それを専用のjettyインスタンスに配備したいという問題があります。
私が手にエラーは次のとおりです。
は[javax.sql.DataSourceの]インスタンス化に失敗しました:ファクトリメソッド「データソース」は、例外を投げました。ネストされた例外は、java.lang.NoClassDefFoundError:org/apache/juli/logging/LogFactoryです。
のpom.xml:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
<exclusions>
<exclusion>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-juli</artifactId>
</exclusion>
</exclusions>
</dependency>
私は春・ブートstarter.jdbcで依存性があるLIBを除外してorg.apache.juli LIBへの依存関係を削除する場合
この
が解消されますこのライブラリを除いて、現在のバージョンのjetty(jetty-distribution-9.3.8.v20160314)で戦争が行われます。もつとも
:私はそれが次のメッセージでcraches main
、組み込み桟橋サーバを使用してJAVA APP、すなわちを起動しよう:
Failed to instantiate [javax.sql.DataSource]: Factory method 'dataSource' threw exception; nested exception is java.lang.NoClassDefFoundError: org/apache/juli/logging/LogFactory.
すなわち、 .warファイルのような同じエラーが専用のjettyインスタンスに入りました。 org.apache.toimcat-> tomcat.juliを再度インクルードすることで、mainメソッドを再度起動することはできますが、jettyインスタンス上で実行される.warファイルを構築することはできません。
メインクラスには以下が含まれています二つの方法(および@SpringBootApplication
で注釈されている):
protected SpringApplicationBuilder configure(SpringApplicationBuilder app) {
application.sources(App.class);
return super.configure(app);
}
public static void main(String[] args) throws Exception {
SpringApplication.run(App.class, args);
}
誰もが正しい方向にこの/時点で私を助けることはできますか?私は.warとスタンドアローンの使い方について同じ設定を使いたいと思う。
のpom.xml: `答えてくれてありがとう、の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>my.company</groupId>
<artifactId>testing</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<properties>
<java.version>1.8</java.version>
<start-class>my.company.App</start-class>
</properties>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.3.3.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<!-- Additional lines to be added here... -->
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jetty</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
<!-- <exclusions>
<exclusion>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-juli</artifactId>
</exclusion>
</exclusions>-->
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-hateoas</artifactId>
</dependency>
<!-- com.oracle -->
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc6</artifactId>
<version>11.2.0.3</version>
</dependency>
</dependencies>
</project>
あなたの完全なpomを投稿する場合は、クラスパスにtomcatの依存関係がないことを確認してください(これはtomcat jdbcのものです)。 –
ありがとうございます、pom.xmlは今質問の一部です – user842639
あなたはすでにTomcatの依存関係を除外していますが、あなたのJettyの依存関係には '提供された'の範囲が必要です。どの依存関係が引き込まれているかを知るには、 'mvn dependency:tree'を実行したいと思うかもしれません。私はそれらのうちのひとつが' tomcat-jdbc'を引っ張ると思います。 –