在Linux服务器

时间:2017-11-14 14:55:44

标签: linux spring spring-boot jar spring-batch

我有一个spring boot / batch应用程序,在使用jenkins和xldeploy部署时会抛出错误。它是一个gradle应用程序。

当我直接在服务器上将它作为胖jar部署时,它工作正常,但是当我通过jenkins和xldeploy部署该jar时,它会给我以下错误。

  

创建名称为' jobOperator'的bean时出错在类路径中定义   资源   [COM /一个/ RetirementConversionImport /独立/ BatchConfiguration.class]:   bean的初始化失败;嵌套异常是   org.springframework.aop.framework.AopConfigException:不能   生成类[class]的CGLIB子类   com.one.RetirementConversionImport.standalone.BatchConfiguration $ 1]:   这个问题的常见原因包括使用最终类或   不可见的阶级;嵌套异常是   org.springframework.cglib.core.CodeGenerationException:   java.lang.reflect.InvocationTargetException - >空           在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:562)   〜[弹簧豆-4.3.4.RELEASE.jar:4.3.4.RELEASE]           在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)   〜[弹簧豆-4.3.4.RELEASE.jar:4.3.4.RELEASE]           at org.springframework.beans.factory.support.AbstractBeanFactory $ 1.getObject(AbstractBeanFactory.java:306)   〜[弹簧豆-4.3.4.RELEASE.jar:4.3.4.RELEASE]           在org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)   〜[弹簧豆-4.3.4.RELEASE.jar:4.3.4.RELEASE]           在org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)   〜[弹簧豆-4.3.4.RELEASE.jar:4.3.4.RELEASE]           在org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)   〜[弹簧豆-4.3.4.RELEASE.jar:4.3.4.RELEASE]           at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:754)   〜[弹簧豆-4.3.4.RELEASE.jar:4.3.4.RELEASE]           at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:866)   〜[弹簧上下文4.3.4.RELEASE.jar:4.3.4.RELEASE]           在org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:542)   〜[弹簧上下文4.3.4.RELEASE.jar:4.3.4.RELEASE]           在org.springframework.boot.SpringApplication.refresh(SpringApplication.java:761)   [弹簧引导1.4.2.RELEASE.jar:1.4.2.RELEASE]           在org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:371)   [弹簧引导1.4.2.RELEASE.jar:1.4.2.RELEASE]           在org.springframework.boot.SpringApplication.run(SpringApplication.java:315)   [弹簧引导1.4.2.RELEASE.jar:1.4.2.RELEASE]           在com.paychex.RetirementConversionImport.standalone.RetirementConversionImport.main(RetirementConversionImport.java:85)   [RetirementConversionImport.jar:?]           at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)〜[?:1.8.0_131]           at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)   〜[:?1.8.0_131]           at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)   〜[:?1.8.0_131]           在java.lang.reflect.Method.invoke(Method.java:498)〜[?:1.8.0_131]           在org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:49)   [spring-boot-devtools-1.4.2.RELEASE.jar:1.4.2.RELEASE]引起:   org.springframework.aop.framework.AopConfigException:不能   生成类[class]的CGLIB子类   com.paychex.RetirementConversionImport.standalone.BatchConfiguration $ 1]:   这个问题的常见原因包括使用最终类或   不可见的阶级;嵌套异常是   org.springframework.cglib.core.CodeGenerationException:   java.lang.reflect.InvocationTargetException - >空

1 个答案:

答案 0 :(得分:1)

根本原因是类路径中有spring-boot-devtools。删除devtools解决了这个问题。所以基本上在这种情况下问题是AOP代理。由于某种原因,我们必须关闭AOP代理,这将确保它使用JDK代理,可以通过删除spring-boot-devtools jar来完成,删除它将启动它使用本机JDK代理并修复此错误。