2016-05-15 7 views
0

Решение одной проблемы привело к следующему, теперь я получаю сообщение об ошибке с несогласованным подписывающим лицом. Пожалуйста, смотрите ниже:Spring Boot и Apache Spark Security Exception: signer mismatch

Вот мой оригинальный Gradle файл сборки:

buildscript { 
    ext { 
     springBootVersion = '1.3.3.RELEASE' 
    } 
    repositories { 
     mavenCentral() 
    } 
    dependencies { 
     classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}") 
    } 
} 

apply plugin: 'java' 
apply plugin: 'idea' 
apply plugin: 'eclipse' 
apply plugin: 'spring-boot' 

jar { 
    baseName = 'appTest' 
    version = '1.0.0' 
} 
sourceCompatibility = 1.8 
targetCompatibility = 1.8 

repositories { 
    mavenCentral() 
} 


dependencies { 
    compile('org.springframework.boot:spring-boot-starter-web') 

    //compile 'org.apache.spark:spark-core_2.11:1.4.0' //problem here 

    compile("org.springframework.boot:spring-boot-starter-data-jpa") 
    compile("com.h2database:h2") 
    compile('mysql:mysql-connector-java') 

    testCompile("junit:junit") 
    testCompile('org.springframework.boot:spring-boot-starter-test') 
    testCompile("junit:junit") 
} 

task wrapper(type: Wrapper) { 
    gradleVersion = '2.9' 
} 

Если я пытаюсь построить без добавления зависимости compile 'org.apache.spark:spark-core_2.11:1.4.0' он работает. Однако, если я пытаюсь запустить его с этой зависимостью я получаю:

FAILURE: Build failed with an exception. 
SLF4J: Class path contains multiple SLF4J bindings. 

SLF4J: Found binding in [jar:file:/C:/Users/xxx/.gradle/caches/modules-2/files-2.1/org.slf4j/slf4j-log4j12/1.7.16/54c6dd23a7c420e40b8848e962d5f2a3534260af/slf4j-log4j12-1.7.16.jar!/org/slf4j/impl/StaticLoggerBinder.class] 

SLF4J: Found binding in [jar:file:/C:/Users/xxx/.gradle/caches/modules-2/files-2.1/ch.qos.logback/logback-classic/1.1.5/92353eb144695bba80b31f7bec4f36d871f230ac/logback-classic-1.1.5.jar!/org/slf4j/impl/StaticLoggerBinder.class] 

исследования, я нашел this. Затем я попытался исключить slf4j-log4j12 путем добавления ниже (чуть выше моего jar{...} в моем Gradle файле сборки):

configurations.all { 
    exclude module: 'slf4j-log4j12' 
} 

Который на самом деле строит. Однако, когда я пытаюсь запустить его с помощью bootRun я получаю другую ошибку:

Caused by: java.lang.SecurityException: class "javax.servlet.http.HttpSessionIdListener"'s signer information does not match signer information of other classes in the same package 

Я предполагаю, что это связано с существом Множественные Jar использовали, которые имеют разные подписи? Как я могу это решить? Пожалуйста помоги!

Для полной ошибки view here.

ответ

0

Хорошо, я думаю, что, возможно, решил. Мне нужно провести дополнительные тесты.

При исследовании выяснилось, что искра сконфигурирована to run on Jetty, а не Tomcat. Глядя на файл журнала, я видел, что он пытался работать с Jetty.

Я смотрел в зависимостях, и нашел org.eclipse.jetty.orbit. Мне удалось исключить его, добавив ниже к configurations.all

exclude module: 'javax.servlet' 
Смежные вопросы