2017-10-10 4 views
0

SMB 작업을 수행하는 데 jcifs 라이브러리를 사용하는 독립형 Java 응용 프로그램이 있습니다. 독립 실행 형 응용 프로그램은 봄 부팅을 사용합니다. 이 응용 프로그램은 정상적으로 작동하며 요구 사항을 충족 할 수 있습니다.스프링 부트 임베디드 톰캣이 jcifs smb 라이브러리로 시작되지 않음

이 독립형 응용 프로그램을 안정적인 서비스로 변환해야합니다. 그래서 임베디드 바람둥이로 봄 부팅 스타터를 사용했습니다. 변환 된 응용 프로그램은 잘 컴파일되지만 응용 프로그램을 시작할 때 포함 된 바람둥이가 시작되지 않고 아래 오류가 나타납니다. jcifs 라이브러리를 포함하도록 문제를 좁혔습니다. 내가 그것을 제거하면 임베디드 바람둥이가 잘 시작하고 내가 그것을 포함하면 다음과 같은 오류가 발생합니다. 다음과 같이 JCIFS 의존성은 다음과 같습니다 컴파일 그룹 : 'JCIFS'이름 'JCIFS', 버전 :

날 문제 또는 어떤 포인터를 할 수 있는지 알려 주시기 바랍니다 '1.3.17'. 나는 아주 단단한 타임 라인에 맞서 달리고 있으므로 어떤 도움이나 조언도 대단히 감사 할 것입니다.

오류 : 2017년 10월 9일 22 : 50 : 50.189 정보 1780 --- [주] org.apache.catalina.core.StandardEngine : 시작 서블릿 엔진 : 아파치 톰캣/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. apache.catalina.LifecycleException : 구성 요소 [StandardEngine [Tomcat] .StandardHost [localhost] .StandardContext []]를 시작하지 못했습니다. at java.util.concurrent.FutureTask.report (FutureTask.java:122) [없음 : 1.8.0_144] 에서 java.util.concurrent.FutureTask.get (FutureTask.java:192) [없음 : 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] 의 java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1149) [없음 : 1.8.0_144] java.util.concurrent.ThreadPoolExecutor에서 $ Worker.run (ThreadPoolExecutor.java:624) [없음 : 1.8.0_144] 에서 java.lang.Thread.run (Thread.java:748) [없음 : 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. 시작 (LifecycleBase.java:150) [바람둥이 - 포함 - 코어 - 8.5.5.jar : 8.5.5] ... 10 공통 프레임이 생략

아래는 gradle 파일입니다. 나는 gradle 2.10.0 버전을 사용하고있다. 당신은 단지이

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

은 JCIFS 라이브러리에서 "서블릿 API를"의존성을 제외 할, 그것은 바람둥이 기본 서블릿 API와 충돌합니다. 봄 - 통합 - 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> 

: 같은 받는다는에서 그것을 볼 수있는 작품.

관련 문제