Отдалечената обвивка на Spring Boot се проваля при внедряване в Tomcat

Използвам Spring Boot и всъщност съм изправен пред (малък) проблем. Наистина ме дразни и не намерих отговор по въпроса.

Интегрирах spring-boot-starter-remote-shell в моя pom.xml файл. Всичко работи добре при стартиране на приложението като самостоятелно приложение за Spring Boot. Но изобщо не работи, когато се опитвам да разположа военния файл в Tomcat с помощта на приставката Eclipse Tomcat 8.

Ето изключението, което ми дава:

2015-02-12 11:51:13.926 ERROR 1437 --- [ost-startStop-1] org.crsh.ssh.term.SSHLifeCycle           : Could not start CRaSSHD

java.lang.SecurityException: class "org.bouncycastle.crypto.prng.VMPCRandomGenerator"'s signer information does not match signer information of other classes in the same package
at java.lang.ClassLoader.checkCerts(ClassLoader.java:895)
at java.lang.ClassLoader.preDefineClass(ClassLoader.java:665)
at java.lang.ClassLoader.defineClass(ClassLoader.java:758)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:2452)
at org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:854)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1264)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1147)
at org.apache.sshd.common.random.BouncyCastleRandom.<init>(BouncyCastleRandom.java:56)
at org.apache.sshd.common.random.BouncyCastleRandom$Factory.create(BouncyCastleRandom.java:48)
at org.apache.sshd.common.random.BouncyCastleRandom$Factory.create(BouncyCastleRandom.java:41)
at org.apache.sshd.common.random.SingletonRandomFactory.<init>(SingletonRandomFactory.java:37)
at org.apache.sshd.SshServer.setUpDefaultServer(SshServer.java:454)
at org.crsh.ssh.term.SSHLifeCycle.init(SSHLifeCycle.java:136)
at org.crsh.ssh.SSHPlugin.init(SSHPlugin.java:194)
at org.crsh.plugin.PluginManager.getPlugins(PluginManager.java:83)
at org.crsh.plugin.PluginContext.start(PluginContext.java:327)
at org.crsh.plugin.PluginLifeCycle.start(PluginLifeCycle.java:104)
at org.springframework.boot.actuate.autoconfigure.CrshAutoConfiguration$CrshBootstrapBean.init(CrshAutoConfiguration.java:230)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.java:349)
at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeInitMethods(InitDestroyAnnotationBeanPostProcessor.java:300)
at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:133)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapableBeanFactory.java:408)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1560)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:540)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:476)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:302)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:229)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:298)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:762)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:757)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:480)
at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:109)
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:691)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:321)
at org.springframework.boot.builder.SpringApplicationBuilder.run(SpringApplicationBuilder.java:143)
at org.springframework.boot.context.web.SpringBootServletInitializer.createRootApplicationContext(SpringBootServletInitializer.java:89)
at org.springframework.boot.context.web.SpringBootServletInitializer.onStartup(SpringBootServletInitializer.java:51)
at org.springframework.web.SpringServletContainerInitializer.onStartup(SpringServletContainerInitializer.java:175)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5185)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1409)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1399)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)

Има ли начин да го накарам да работи (като се запази сигурността, разбира се)?


person mrik974    schedule 12.02.2015    source източник
comment
Вашият контейнер Tomcat има ли надуваем замък в родителския зареждащ клас (някой трябваше да го добави, мисля)?   -  person Dave Syer    schedule 12.02.2015
comment
Има файл bcprov-jdk14-1.38.jar в папката ми за внедряване WEB-INF/lib. Имайте предвид, че работи като чар, когато използвате mvn spring-boot:run. Това изключение се задейства само при разполагане на същия военен файл в Tomcat   -  person mrik974    schedule 12.02.2015
comment
В WEB-INF/lib е добре. Изключението предполага, че друга версия също е на пътя на класа в различен зареждащ клас.   -  person Dave Syer    schedule 12.02.2015
comment
Това е обикновена нова инсталация на Tomcat, не мисля, че е включена.   -  person mrik974    schedule 12.02.2015
comment
Предполагам, че може би някой от другите ви буркани в WEB-INF/lib съдържа класове в org.bouncycastle.crypto.prng тогава. Не би трябвало да отнеме много време, за да разберете кой, ако това е проблемът.   -  person Dave Syer    schedule 12.02.2015
comment
Ти беше права. iText PDF библиотеката също се нуждаеше от по-стара зависимост към bcprov. Премахнах го от зависимостите на maven и работи. Благодаря ти!   -  person mrik974    schedule 12.02.2015


Отговори (1)


Предполагам, че може би някой от другите ви буркани в WEB-INF/lib съдържа класове в org.bouncycastle.crypto.prng. Не би трябвало да отнеме много време, за да разберете кой, ако това е проблемът

person Dave Syer    schedule 12.02.2015