Spring batch Spring批处理管理-实例化Bean时出错';就业服务';
我在项目中使用spring-batch-admin-manager-1.2.2.RELEASE以及spring-batch 2.2.3.RELEASE。我正在尝试使用spring批处理管理控制台和我的webapp来监视批处理作业。在tomcat上部署web应用程序时,出现以下应用程序初始化错误。我已经浏览了这张JIRA票据,其中提到这个bug已经被修复以支持SpringBatch 2.2.0,但是为这个修复发布的SpringBatch管理器版本说它是1.3.0。我在maven repo上的任何地方都找不到1.3.0,我无法将我的应用程序与Spring Batch Admin一起部署。我是不是遗漏了什么Spring batch Spring批处理管理-实例化Bean时出错';就业服务';,spring-batch,spring-batch-admin,Spring Batch,Spring Batch Admin,我在项目中使用spring-batch-admin-manager-1.2.2.RELEASE以及spring-batch 2.2.3.RELEASE。我正在尝试使用spring批处理管理控制台和我的webapp来监视批处理作业。在tomcat上部署web应用程序时,出现以下应用程序初始化错误。我已经浏览了这张JIRA票据,其中提到这个bug已经被修复以支持SpringBatch 2.2.0,但是为这个修复发布的SpringBatch管理器版本说它是1.3.0。我在maven repo上的任何地
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'jobService': FactoryBean threw exception on object creation; nested exception is java.lang.NoSuchMethodError: org.springframework.batch.admin.service.JdbcSearchableJobInstanceDao.setJdbcTemplate(Lorg/springframework/jdbc/core/simple/SimpleJdbcOperations;)V
at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:149)
at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.getObjectFromFactoryBean(FactoryBeanRegistrySupport.java:102)
at org.springframework.beans.factory.support.AbstractBeanFactory.getObjectForBeanInstance(AbstractBeanFactory.java:1442)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:248)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
... 86 more
Caused by: java.lang.NoSuchMethodError: org.springframework.batch.admin.service.JdbcSearchableJobInstanceDao.setJdbcTemplate(Lorg/springframework/jdbc/core/simple/SimpleJdbcOperations;)V
at org.springframework.batch.admin.service.SimpleJobServiceFactoryBean.createJobInstanceDao(SimpleJobServiceFactoryBean.java:195)
at org.springframework.batch.admin.service.SimpleJobServiceFactoryBean.getObject(SimpleJobServiceFactoryBean.java:255)
at org.springframework.batch.admin.service.SimpleJobServiceFactoryBean.getObject(SimpleJobServiceFactoryBean.java:54)
at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:142)
... 91 more
这是我的web.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>rcg-webapp</display-name>
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- Spring Batch Admin Configuration -->
<env-entry>
<env-entry-name>ENVIRONMENT</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>mysql</env-entry-value>
</env-entry>
<servlet>
<servlet-name>Batch Servlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<!-- <param-value>classpath*:/org/springframework/batch/admin/web/resources/servlet-config.xml,classpath*:/org/springframework/batch/admin/web/resources/webapp-config.xml</param-value> -->
<param-value>classpath:register-spring-admin-servlet.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
</web-app>
rcg网络应用程序
支柱2
org.apache.struts2.dispatcher.ng.filter.strutspreadexecutefilter
支柱2
/*
环境
java.lang.String
mysql
批处理Servlet
org.springframework.web.servlet.DispatcherServlet
上下文配置位置
类路径:register-spring-admin-servlet.xml
1.
以下是src.main.resources文件夹下register-spring-admin-servlet.xml文件的内容:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
<import resource="classpath*:/META-INF/spring/batch/servlet/resources/*.xml" />
<import resource="classpath*:/META-INF/spring/batch/servlet/manager/*.xml" />
<import resource="classpath*:/META-INF/spring/batch/servlet/override/*.xml" />
<import resource="classpath*:/META-INF/spring/batch/bootstrap/**/*.xml" />
<import resource="classpath*:/META-INF/spring/batch/override/**/*.xml" />
<!-- Override the standard location for spring batch admin resources -->
<bean id="resourceService" class="org.springframework.batch.admin.web.resources.DefaultResourceService">
<property name="servletPath" value="/batch" />
</bean>
<bean id="parameterUnpackerFilter" class="org.springframework.batch.admin.web.filter.ParameterUnpackerFilter">
<property name="prefix" value="unpack_"/>
<property name="putEmptyParamsInPath" value="true"/>
</bean>
</beans>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<bean id="resourceService"
class="org.springframework.batch.admin.web.resources.DefaultResourceService">
<property name="servletPath" value="/admin-console" />
</bean>
<!-- stored job-meta in database -->
<bean id="jobRepository"
class="org.springframework.batch.core.repository.support.JobRepositoryFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="transactionManager" ref="transactionManager" />
<property name="databaseType" value="mysql" />
</bean>
<bean id="transactionManager"
class="org.springframework.batch.support.transaction.ResourcelessTransactionManager" />
<bean id="jobLauncher"
class="org.springframework.batch.core.launch.support.SimpleJobLauncher">
<property name="jobRepository" ref="jobRepository" />
</bean>
</beans>
以下是src.main.resources文件夹下的my application-context.xml:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
<import resource="classpath*:/META-INF/spring/batch/servlet/resources/*.xml" />
<import resource="classpath*:/META-INF/spring/batch/servlet/manager/*.xml" />
<import resource="classpath*:/META-INF/spring/batch/servlet/override/*.xml" />
<import resource="classpath*:/META-INF/spring/batch/bootstrap/**/*.xml" />
<import resource="classpath*:/META-INF/spring/batch/override/**/*.xml" />
<!-- Override the standard location for spring batch admin resources -->
<bean id="resourceService" class="org.springframework.batch.admin.web.resources.DefaultResourceService">
<property name="servletPath" value="/batch" />
</bean>
<bean id="parameterUnpackerFilter" class="org.springframework.batch.admin.web.filter.ParameterUnpackerFilter">
<property name="prefix" value="unpack_"/>
<property name="putEmptyParamsInPath" value="true"/>
</bean>
</beans>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<bean id="resourceService"
class="org.springframework.batch.admin.web.resources.DefaultResourceService">
<property name="servletPath" value="/admin-console" />
</bean>
<!-- stored job-meta in database -->
<bean id="jobRepository"
class="org.springframework.batch.core.repository.support.JobRepositoryFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="transactionManager" ref="transactionManager" />
<property name="databaseType" value="mysql" />
</bean>
<bean id="transactionManager"
class="org.springframework.batch.support.transaction.ResourcelessTransactionManager" />
<bean id="jobLauncher"
class="org.springframework.batch.core.launch.support.SimpleJobLauncher">
<property name="jobRepository" ref="jobRepository" />
</bean>
</beans>
我也很难建立一个spring批处理管理项目,因为在网上找不到太多的指导。
最后我找到了这个,这是一个很好的起点
如果您正在使用STS,您可以通过以下方式访问它:File->New->Spring project->Batch->Simple Batch Admin Webapp
编辑:至于spring batch admin manager 1.3.0,我也没有看到最终版本。但是您可以尝试一下最新的里程碑,它似乎足够稳定,可以包含在前面提到的示例项目中
把这个放在pom.xml中
<dependency>
<groupId>org.springframework.batch</groupId>
<artifactId>spring-batch-admin-manager</artifactId>
<version>1.3.0.M1</version>
</dependency>
<repository>
<id>spring-milestones</id>
<url>http://repo.springsource.org/libs-milestone/</url>
</repository>
org.springframework.batch
spring批处理管理器
1.3.0.M1
春季里程碑
http://repo.springsource.org/libs-milestone/
祝你好运 谢谢你的评论!但我并不是在尝试使用STS构建一个新的Web应用程序。我想使用spring-batch-admin-manager-1.2.2.RELEASE.jar将spring-batch-admin-manager集成到我已经存在的webapp中。我的错。我编辑了我的答案。也许里程碑会有所帮助。