gpt4 book ai didi

java - 无法在本地 tomcat(spring boot 嵌入式)服务器上运行 Spring Boot 1.5.10.RELEASE

转载 作者:行者123 更新时间:2023-12-02 11:37:56 25 4
gpt4 key购买 nike

我已将 spring 应用程序迁移到 springBoot1.5.10.RLEASE。

我在尝试在本地服务器上运行应用程序时遇到以下错误,需要帮助来解决此错误:

2018-02-14 18:51:24.173 WARN 12028 --- [ main] ationConfigEmbeddedWebApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'batchMBeanExporter' defined in class path resource [app-context.xml]: Cannot create inner bean 'org.springframework.aop.framework.ProxyFactoryBean#5287ba5f' of type [org.springframework.aop.framework.ProxyFactoryBean] while setting bean property 'jobService'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.aop.framework.ProxyFactoryBean#5287ba5f': FactoryBean threw exception on object creation; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'jobService' available

bean 创建仍然与 springboot 迁移之前相同:-

<bean id="batchMBeanExporter" class="org.springframework.batch.admin.jmx.BatchMBeanExporter">
<property name="server" ref="mbeanServer" />
<property name="jobService">
<bean class="org.springframework.aop.framework.ProxyFactoryBean">
<property name="targetName" value="jobService" />
<property name="interceptorNames" value="cacheInterceptor" />
</bean>
</property>
<property name="defaultDomain" value="etl.web.spring.application" />
<property name="excludedBeans">
<list>
<value>integrationMBeanExporter</value>
</list>
</property>
</bean>

------------ 更新部分解决方案 ----------以下 2 个更改解决了问题:-

  1. 将 spring-batch-admin 的版本从 1.2.2.RELEASE 更改为 1.3.1.RELEASE
  2. 并添加 jobService bean

但现在我遇到了异常,因为 SimpleEhCacheInterceptor 已从 Spring Batch admin 1.3.1 中删除。有关如何在 Spring Batch admin 1.3.1 版本中替换此属性的任何线索-

java.lang.ClassNotFoundException: org.springframework.batch.admin.util.SimpleEhCacheInterceptor
at java.net.URLClassLoader.findClass(URLClassLoader.java:381) ~[na:1.8.0_101]
at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[na:1.8.0_101]
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) ~[na:1.8.0_101]
at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[na:1.8.0_101]
at org.springframework.util.ClassUtils.forName(ClassUtils.java:250) ~[spring-core-4.3.14.RELEASE.jar:4.3.14.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanDefinition.resolveBeanClass(AbstractBeanDefinition.java:401) ~[spring-beans-4.3.14.RELEASE.jar:4.3.14.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.doResolveBeanClass(AbstractBeanFactory.java:1432) ~[spring-beans-4.3.14.RELEASE.jar:4.3.14.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1377) ~[spring-beans-4.3.14.RELEASE.jar:4.3.14.RELEASE]
... 30 common frames omitted

cachInterceptor 的 Bean-

<bean id="cacheInterceptor" class="org.springframework.batch.admin.util.SimpleEhCacheInterceptor" >
<property name="cacheName" value="webSimple_${env}"/>
</bean>

最佳答案

Now I am able to start the server without any of the above mentioned issues.

SimpleEhCacheInterceptor is removed from version 1.3.0 to remove explicit caching instead caching is implemented internally in version 1.3.0 of spring batch admin manager. JIRA for the same https://jira.spring.io/browse/BATCHADM-133

After removing cacheInterceptor, application was throwing below issue-
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'batchMBeanExporter' defined in class path resource [app-context.xml]: Cannot create inner bean 'org.springframework.aop.framework.ProxyFactoryBean#4ae2e781' of type [org.springframework.aop.framework.ProxyFactoryBean] while setting bean property 'jobService'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.aop.framework.ProxyFactoryBean#4ae2e781': Post-processing of FactoryBean's object failed; nested exception is java.lang.IllegalStateException: Need to invoke method 'removeInactiveExecutions' declared on target class 'SimpleJobService', but not found in any interface(s) of the exposed proxy type. Either pull the method up to an interface or switch to CGLIB proxies by enforcing proxy-target-class mode in your configuration.

have set the proxyTargetClass property to true, now the embedded tomcat with spring boot is starting up without any issue.

https://github.com/spring-projects/spring-batch-admin-samples/issues/12 Spring 文档 - https://docs.spring.io/spring/docs/3.2.x/spring-framework-reference/html/aop-api.html#aop-pfb-proxy-types JIRA 同样 - https://jira.spring.io/browse/BATCHADM-126

working configuration:-
Spring batch admin manager version 1.3.1

<bean id="batchMBeanExporter" class="org.springframework.batch.admin.jmx.BatchMBeanExporter">
<property name="server" ref="mbeanServer" />
<property name="jobService">
<bean class="org.springframework.aop.framework.ProxyFactoryBean">
<property name="targetName" value="jobService" />
<property name="proxyTargetClass" value="true"/>
</bean>
</property>
<property name="defaultDomain" value="spring.application" />
</bean>

<bean id="jobService" class="org.springframework.batch.admin.service.SimpleJobServiceFactoryBean">
<property name="jobRepository" ref="jobRepository"/>
<property name="jobLauncher" ref="jobLauncher"/>
<property name="jobLocator" ref="jobRegistry"/>
<property name="dataSource" ref="dataSource"/>
</bean>

关于java - 无法在本地 tomcat(spring boot 嵌入式)服务器上运行 Spring Boot 1.5.10.RELEASE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48788459/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com