2017-10-10 48 views
0

私は、SMB操作を行うためにjcifsライブラリを使用するスタンドアロンのJavaアプリケーションを持っています。スタンドアロンアプリケーションはスプリングブートを使用します。このアプリケーションは正常に動作し、要件を満たすことができます。spring boot埋め込みのTomcatはjcifs smbライブラリで始まらない

このスタンドアロンアプリケーションを安らかなサービスに変換する必要があります。私はこうして埋め込まれた風袋を持つ春の起動スターターを使用しました。変換されたアプリケーションはうまくコンパイルされますが、アプリケーションを起動すると、埋め込みのTomcatは起動せず、以下のエラーが発生します。 私はjcifsライブラリを含めるように問題を絞りました。私がそれを削除すると、組み込みのTomcatは正常に起動し、それをインクルードすると、以下のエラーが表示されます。次のように ザ・JCIFS依存性がある: コンパイルグループ:「JCIFS」、名前:「JCIFS」、バージョン:「1.3.17」

私は問題や任意の任意のポインタ何ができるか教えてください。私は非常にタイトなタイムラインに逆らって走っているので、どんな助けや指針も非常に高く評価されます。

エラーがある: 2017年10月9日22:50:50.189 INFO 1780 --- [メイン] org.apache.catalina.core.StandardEngine:サーブレットエンジンを始動:Apache Tomcatの/ 8.5.5 2017- 10-9 22:50:50.470 ERROR 1780 --- [cat-startStop-1] org.apache.catalina.core.ContainerBase:起動中に子コンテナが失敗しました

java.util.concurrent.ExecutionException:org。コンポーネントを起動できませんでした。[StandardEngine [Tomcat] .StandardHost [localhost] .StandardContext []] at java.util.concurrent.FutureTask.report(FutureTask.java:122)[na:1.8.0_144] のjava.util.concurrent.FutureTask.get(FutureTask.java:192)[na:1.8.0_144] at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:911)〜[Tomcat-embed-core-8.5.5.jar:8.5.5] at org.apache.catalina.core.StandardHost。 startInternal(StandardHost.java:890)[Tomcat-embed-core-8.5.5.jar:8.5.5] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)[tomcat-embed- core-8.5.5.jar:8.5.5] at org.apache.catalina.core.ContainerBase $ StartChild.call(ContainerBase.java:1403)[tomcat-embed-core-8.5.5.jar:8.5.5 ] at org.apache.catalina.core.ContainerBase $ StartChild.call(ContainerBase.java:1393)[tomcat-embed-core-8.5.5.jar:8.5.5] at java.util.concurrent.FutureTask。 run(FutureTask.java:266)[na:1.8.0_144] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)[na:1.8.0_144] java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:624)[na:1.8.0_144] (java.lang.Thread.run)(スレッド:java:748)[na:1.8.0_144] 原因:org.apache.catalina.LifecycleException:コンポーネント[StandardEngine [Tomcat] .StandardHost [localhost] .StandardContext []] をorg.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167)で起動できませんでした。 [Tomcat-embed-core-8.5.5.jar:8.5.5] ... 6つの共通フレームが省略されました 原因:org.apache.catalina.LifecycleException:コンポーネント[Pipeline [StandardEngine [Tomcat] .StandardHost [localhost] .StandardContext []]] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167)[Tomcat-embed-core-8.5.5.jar:8.5.5] at org。 apache.catalina.core.StandardContext.startInternal(StandardContext.j ava:5099)〜[tomcat-embed-core-8.5.5.jar:8.5.5] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)[tomcat-embed-core-8.5 .5.jar:8.5.5] ... 6つの共通フレームが省略されました 原因:org.apache.catalina.LifecycleException:コンポーネント[org.apache.catalina.authenticator.NonLoginAuthenticator []] をorgで起動できませんでした。 apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167)[Tomcat-embed-core-8.5.5.jar:8.5.5] at org.apache.catalina.core.StandardPipeline。startInternal(StandardPipeline.java:170)〜[Tomcat-embed-core-8.5.5.jar:8.5.5] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)[Tomcat-embed -core-8.5.5.jar:8.5.5] ... 8個の共通フレームが省略されました 原因:java.lang.NoSuchMethodError:javax.servlet.ServletContext.getVirtualServerName()Ljava/lang/String; at org.apache.catalina.authenticator.AuthenticatorBase.startInternal(AuthenticatorBase.java:1122)〜[Tomcat-embed-core-8.5.5.jar:8.5.5] at org.apache.catalina.util.LifecycleBase。 start(LifecycleBase.java:150)[tomcat-embed-core-8.5.5.jar:8.5.5] ... 10個の共通フレームが省略されました

以下はグラデルファイルです。私はgradle 2.10.0バージョンを使用しています。あなただけのJCIFSライブラリから「サーブレットAPI」の依存関係を除外する必要があり

buildscript { 
    repositories { 
     mavenCentral() 
     maven { url "http://repo1.maven.org/maven2" } 
    } 
    dependencies { 
     classpath("org.springframework.boot:spring-boot-gradle-plugin:1.4.1.RELEASE") 
     classpath "org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:2.2.1" 
    } 

} 
// Apply the java plugin to add support for Java 
apply plugin: 'java' 
apply plugin: 'eclipse' 
apply plugin: 'spring-boot' 
apply plugin: "org.sonarqube" 
apply plugin: 'jacoco' 

jar { 
    baseName = 'connectorservice' 
    version = '0.1.0' 
    manifest { 
     attributes 'Main-Class': 'com.uu.ff.connectorservice.main.Application' 
    } 
} 


repositories { 
    mavenCentral() 
    maven { url "http://repo1.maven.org/maven2" } 
} 


sourceCompatibility = 1.8 
targetCompatibility = 1.8 


// In this section you declare the dependencies for your production and test code 
dependencies { 

    compile('org.springframework.boot:spring-boot-starter-web') 
    compile('org.springframework.boot:spring-boot-starter-aop') 
    compile('org.springframework:spring-aspects') 
    compile("org.springframework.boot:spring-boot-starter-data-mongodb") 

    compile group: 'commons-io', name: 'commons-io', version: '2.5' 
    compile group: 'org.apache.commons', name: 'commons-vfs2', version: '2.1' 
    compile group: 'de.odysseus.staxon', name: 'staxon', version: '1.3' 

    testCompile("junit:junit") 
    testCompile group: 'org.powermock', name: 'powermock-module-junit4', version: '1.6.4' 
    testCompile group: 'org.powermock', name: 'powermock-api-mockito', version: '1.6.4' 
    compile('org.springframework.boot:spring-boot-starter-test') 
    compile group: 'commons-dbcp', name: 'commons-dbcp', version: '1.4' 
    compile group: 'jcifs', name: 'jcifs', version: '1.3.17' 

} 
+0

Ueslei Limaが提供するソリューションは、私が欲しかったのとまったく同じように機能しています。どうもありがとう。私は答えとして以下の返答をマークすることはできません。 – pankajkk

答えて

0

、それはTomcatのデフォルトのサーブレットAPIと競合しています。 のmavenでは、それはようなものになるだろう:春-統合-SMBライブラリを使用している場合

<dependency> 
    <groupId>org.codelibs</groupId> 
    <artifactId>jcifs</artifactId> 
    <version>1.3.18.2</version> 
     <exclusions> 
      <exclusion> 
       <groupId>javax.servlet</groupId> 
       <artifactId>servlet-api</artifactId> 
      </exclusion> 
     </exclusions> 
</dependency> 

除外もうまく機能します。

関連する問題