gpt4 book ai didi

Spring Batch - 未定义名为 'job-configurations' 的 bean

转载 作者:行者123 更新时间:2023-12-01 19:07:55 25 4
gpt4 key购买 nike

我正在使用一个自定义的 MVC 应用程序,该应用程序依赖于 SPring Batch,如其文档中所述,并得到了此 SO 问题 Integrating Spring Batch Admin into an existing application 的帮助。 .

现在的问题是,当网络应用程序开始将各种 URL 映射到适当的 Controller 时,作业配置步骤就会崩溃。

2012-06-04 10:17:54,966 INFO [org.springframework.web.servlet.handler.SimpleUrlHandlerMapping] - <Mapped URL path [/resources/**] onto handler 'org.springframework.web.servlet.resource.ResourceHttpRequestHandler#0'>
2012-06-04 10:17:55,512 INFO [org.springframework.ui.freemarker.SpringTemplateLoader] - <SpringTemplateLoader for FreeMarker: using resource loader [WebApplicationContext for namespace 'admin-servlet': startup date [Mon Jun 04 10:17:54 EDT 2012]; parent: Root WebApplicationContext] and template loader path [/WEB-INF/web/]>
2012-06-04 10:17:55,512 INFO [org.springframework.ui.freemarker.SpringTemplateLoader] - <SpringTemplateLoader for FreeMarker: using resource loader [WebApplicationContext for namespace 'admin-servlet': startup date [Mon Jun 04 10:17:54 EDT 2012]; parent: Root WebApplicationContext] and template loader path [classpath:/org/springframework/batch/admin/web/]>
2012-06-04 10:17:55,512 INFO [org.springframework.batch.admin.web.freemarker.HippyFreeMarkerConfigurer] - <ClassTemplateLoader for Spring macros added to FreeMarker configuration>
2012-06-04 10:17:55,528 INFO [org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping] - <Mapped URL path [/configuration] onto handler 'configurationHandler'>
2012-06-04 10:17:56,230 INFO [org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping] - <Mapped URL path [/job-configuration] onto handler '/job-configuration'>
...
2012-06-04 10:17:56,230 ERROR [org.springframework.web.servlet.DispatcherServlet] - <Context initialization failed>
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping': Initialization of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name '/job-configuration.json': Cannot resolve reference to bean 'job-configurations' while setting bean property 'requestChannel'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'job-configurations' is defined

有人遇到过这种情况吗?该应用程序依赖于一个简单的 spring-batch jar,该 jar 完全独立工作,我希望它能够从该工件中提取任何所需的作业 bean。

最佳答案

我向一些同事提出了这个问题,这似乎是我认为 Spring Batch 管理设计中的一个缺陷,它违背了许多典型的 Spring 设计模式。

依赖的 Spring Batch 管理 jar 对解决方案的上下文(包括数据源)“了解太多”。这样做的问题是,在一个像样的网络应用程序中,数据源可能在运行时根据数字或环境变量(环境、数据中心、应用程序服务器)动态确定,并且不像Dave Syer's那么简单。 (Mysql 或 HSQL)方法。我已阅读posts in spring然而,他在论坛上坚持这一点,近乎侮辱被提问者。

如果您的批处理作业使用多个数据源(即源数据库和目标数据库),情况会变得越来越复杂。而且并不像在 Web 应用程序中加载数据源那么简单,因为所有相关的 Bean 都已与 Dave 的 HSQL 驱动程序 DS、相关的 .sql 文件和初始化脚本连接。

这导致我基本上覆盖了批处理管理 jar 中的每个与数据源相关的 bean,包括 jobrepository(预期)、jobExplorer、jobService 以及其他一些在 META-INF/spring/batch/override 中具有不同文件的 bean目录。每个文件都利用 spring 3.1 的 Profile 命名空间来加载正确的数据源,并注入(inject)所有必需的 bean。

关于Spring Batch - 未定义名为 'job-configurations' 的 bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10883066/

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