Spring   发布时间:2022-04-09  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了java – Spring Batch Admin,无法替换占位符’batch.business.schema.script’大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

尝试将Spring Batch Admin添加到现有的Spring Batch项目中.

我已经使用spring-batch-admin-resources和spring-batch-admin-manager更新了web.xml

我的设置:

在src / main / resources /下

添加了2个属性文件. 1是batch-default-properties,它是一个文件,另一个是batch-sqlserver.properties,其中包含以下内容

batch.jdbc.driver=com.microsoft.sqlserver.jdbc.sqlServerDriver    batch.jdbc.url=jdbc:sqlserver://xxx.xxx.xxx:1433;Databasename=SpringBatch
batch.jdbc.user=user
batch.jdbc.password=password
batch.jdbc.testWhilEIDle=false
batch.jdbc.validationQuery=
batch.drop.script=/org/springframework/batch/core/scheR_588_11845@a-drop-sqlserver.sql
batch.scheR_588_11845@a.script=/org/springframework/batch/core/scheR_588_11845@a-sqlserver.sql
batch.database.incrementer.class=org.springframework.jdbc.support.incrementer.sqlServerMaxValueIncrementer
batch.lob.handler.class=org.springframework.jdbc.support.lob.DefaultLobHandler
batch.business.scheR_588_11845@a.script=business-scheR_588_11845@a-sqlserver.sql
batch.database.incrementer.parent=columnIncrementerParent
batch.grid.size=2
batch.jdbc.pool.size=6
batch.verify.cursor.position=true
batch.isolationlevel=isolation_seriaLIZABLE
batch.table.prefix=BATCH_
batch.data.source.init=false

在webapp / Meta-INF / spring / batch / override /下,我添加了带内容的data-source-context.xml:

http://www.springframework.org/scheR_588_11845@a/beans" xmlns:xsi="http://www.w3.org/2001/XMLscheR_588_11845@a-instance" xsi:scheR_588_11845@aLOCATIOn="http://www.springframework.org/scheR_588_11845@a/beans http://www.springframework.org/scheR_588_11845@a/beans/spring-beans.xsd">

       diobjectfactorybean">
              

这是在JBoss EAP 6.3中运行的.每次我启动服务器时,都会出现以下异常:

11:58:36,116 WARN  [org.springframework.web.context.support.XmlWebApplicationContext] (Serverservice Thread Pool -- 112) Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.beanDeFinitionStoreException: Invalid bean deFinition with name 'org.springframework.jdbc.datasource.init.DatasourceInitializer#0' defined in null: Could not resolve placeholder 'batch.business.scheR_588_11845@a.script' in String value "${Batch.business.scheR_588_11845@a.script}"; nested exception is java.lang.IllegalArgumentexception: Could not resolve placeholder 'batch.business.scheR_588_11845@a.script' in String value "${Batch.business.scheR_588_11845@a.script}"
    at org.springframework.beans.factory.config.PlaceholderConfigurerSupport.doprocessProperties(PlaceholderConfigurerSupport.java:211) [spring-beans-4.1.3.RELEASE.jar:4.1.3.RELEASE]
    at org.springframework.beans.factory.config.PropertyPlaceholderConfigurer.processProperties(PropertyPlaceholderConfigurer.java:223) [spring-beans-4.1.3.RELEASE.jar:4.1.3.RELEASE]
    at org.springframework.beans.factory.config.PropertyresourceConfigurer.postProcessbeanfactory(PropertyresourceConfigurer.java:86) [spring-beans-4.1.3.RELEASE.jar:4.1.3.RELEASE]
    at org.springframework.context.support.PostProcessorRegistrationDelegate.invokebeanfactoryPostProcessors(PostProcessorRegistrationDelegate.java:265) [spring-context-4.1.3.RELEASE.jar:4.1.3.RELEASE]
    at org.springframework.context.support.PostProcessorRegistrationDelegate.invokebeanfactoryPostProcessors(PostProcessorRegistrationDelegate.java:162) [spring-context-4.1.3.RELEASE.jar:4.1.3.RELEASE]
    at org.springframework.context.support.AbstractApplicationContext.invokebeanfactoryPostProcessors(AbstractApplicationContext.java:606) [spring-context-4.1.3.RELEASE.jar:4.1.3.RELEASE]
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:462) [spring-context-4.1.3.RELEASE.jar:4.1.3.RELEASE]
    at org.springframework.web.servlet.FrameworkServlet.configureAndrefreshWebApplicationContext(FrameworkServlet.java:663) [spring-webmvc-4.1.3.RELEASE.jar:4.1.3.RELEASE]
    at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:629) [spring-webmvc-4.1.3.RELEASE.jar:4.1.3.RELEASE]
    at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:677) [spring-webmvc-4.1.3.RELEASE.jar:4.1.3.RELEASE]
    at org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:548) [spring-webmvc-4.1.3.RELEASE.jar:4.1.3.RELEASE]
    at org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:489) [spring-webmvc-4.1.3.RELEASE.jar:4.1.3.RELEASE]
    at org.springframework.web.servlet.httpServletBean.init(httpServletBean.java:136) [spring-webmvc-4.1.3.RELEASE.jar:4.1.3.RELEASE]
    at javax.servlet.GenericServlet.init(GenericServlet.java:242) [jboss-servlet-api_3.0_spec-1.0.2.Final-redhat-1.jar:1.0.2.Final-redhat-1]
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1194) [jbossweb-7.4.8.Final-redhat-4.jar:7.4.8.Final-redhat-4]
    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1100) [jbossweb-7.4.8.Final-redhat-4.jar:7.4.8.Final-redhat-4]
    at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3591) [jbossweb-7.4.8.Final-redhat-4.jar:7.4.8.Final-redhat-4]
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:3798) [jbossweb-7.4.8.Final-redhat-4.jar:7.4.8.Final-redhat-4]
    at org.jboss.as.web.deployment.WebDeploymentservice.doStart(WebDeploymentservice.java:161) [jboss-as-web-7.4.0.Final-redhat-19.jar:7.4.0.Final-redhat-19]
    at org.jboss.as.web.deployment.WebDeploymentservice.access$000(WebDeploymentservice.java:59) [jboss-as-web-7.4.0.Final-redhat-19.jar:7.4.0.Final-redhat-19]
    at org.jboss.as.web.deployment.WebDeploymentservice$1.run(WebDeploymentservice.java:94) [jboss-as-web-7.4.0.Final-redhat-19.jar:7.4.0.Final-redhat-19]
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [rt.jar:1.8.0_51]
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) [rt.jar:1.8.0_51]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [rt.jar:1.8.0_51]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [rt.jar:1.8.0_51]
    at java.lang.Thread.run(Thread.java:745) [rt.jar:1.8.0_51]
    at org.jboss.threads.JBossThread.run(JBossThread.java:122)
Caused by: java.lang.IllegalArgumentexception: Could not resolve placeholder 'batch.business.scheR_588_11845@a.script' in String value "${Batch.business.scheR_588_11845@a.script}"
    at org.springframework.util.PropertyPlaceholderHelper.parsestringvalue(PropertyPlaceholderHelper.java:174) [spring-core-4.1.3.RELEASE.jar:4.1.3.RELEASE]
    at org.springframework.util.PropertyPlaceholderHelper.replacePlaceholders(PropertyPlaceholderHelper.java:126) [spring-core-4.1.3.RELEASE.jar:4.1.3.RELEASE]
    at org.springframework.beans.factory.config.PropertyPlaceholderConfigurer$PlaceholderResolvingstringvalueResolver.resolvestringvalue(PropertyPlaceholderConfigurer.java:259) [spring-beans-4.1.3.RELEASE.jar:4.1.3.RELEASE]
    at org.springframework.beans.factory.config.beanDeFinitionVisitor.resolvestringvalue(BeanDeFinitionVisitor.java:282) [spring-beans-4.1.3.RELEASE.jar:4.1.3.RELEASE]
    at org.springframework.beans.factory.config.beanDeFinitionVisitor.resolveValue(BeanDeFinitionVisitor.java:204) [spring-beans-4.1.3.RELEASE.jar:4.1.3.RELEASE]
    at org.springframework.beans.factory.config.beanDeFinitionVisitor.visiTindexedArgumentValues(BeanDeFinitionVisitor.java:150) [spring-beans-4.1.3.RELEASE.jar:4.1.3.RELEASE]
    at org.springframework.beans.factory.config.beanDeFinitionVisitor.visitBeanDeFinition(BeanDeFinitionVisitor.java:84) [spring-beans-4.1.3.RELEASE.jar:4.1.3.RELEASE]
    at org.springframework.beans.factory.config.beanDeFinitionVisitor.resolveValue(BeanDeFinitionVisitor.java:169) [spring-beans-4.1.3.RELEASE.jar:4.1.3.RELEASE]
    at org.springframework.beans.factory.config.beanDeFinitionVisitor.visitPropertyValues(BeanDeFinitionVisitor.java:141) [spring-beans-4.1.3.RELEASE.jar:4.1.3.RELEASE]
    at org.springframework.beans.factory.config.beanDeFinitionVisitor.visitBeanDeFinition(BeanDeFinitionVisitor.java:82) [spring-beans-4.1.3.RELEASE.jar:4.1.3.RELEASE]
    at org.springframework.beans.factory.config.beanDeFinitionVisitor.resolveValue(BeanDeFinitionVisitor.java:169) [spring-beans-4.1.3.RELEASE.jar:4.1.3.RELEASE]
    at org.springframework.beans.factory.config.beanDeFinitionVisitor.visitList(BeanDeFinitionVisitor.java:228) [spring-beans-4.1.3.RELEASE.jar:4.1.3.RELEASE]
    at org.springframework.beans.factory.config.beanDeFinitionVisitor.resolveValue(BeanDeFinitionVisitor.java:192) [spring-beans-4.1.3.RELEASE.jar:4.1.3.RELEASE]
    at org.springframework.beans.factory.config.beanDeFinitionVisitor.visitPropertyValues(BeanDeFinitionVisitor.java:141) [spring-beans-4.1.3.RELEASE.jar:4.1.3.RELEASE]
    at org.springframework.beans.factory.config.beanDeFinitionVisitor.visitBeanDeFinition(BeanDeFinitionVisitor.java:82) [spring-beans-4.1.3.RELEASE.jar:4.1.3.RELEASE]
    at org.springframework.beans.factory.config.beanDeFinitionVisitor.resolveValue(BeanDeFinitionVisitor.java:169) [spring-beans-4.1.3.RELEASE.jar:4.1.3.RELEASE]
    at org.springframework.beans.factory.config.beanDeFinitionVisitor.visitPropertyValues(BeanDeFinitionVisitor.java:141) [spring-beans-4.1.3.RELEASE.jar:4.1.3.RELEASE]
    at org.springframework.beans.factory.config.beanDeFinitionVisitor.visitBeanDeFinition(BeanDeFinitionVisitor.java:82) [spring-beans-4.1.3.RELEASE.jar:4.1.3.RELEASE]
    at org.springframework.beans.factory.config.PlaceholderConfigurerSupport.doprocessProperties(PlaceholderConfigurerSupport.java:208) [spring-beans-4.1.3.RELEASE.jar:4.1.3.RELEASE]
    ... 26 more

我看到batch.business.scheR_588_11845@a.script来自:

弹簧分批管理的管理器/ SRC /主/资源/ Meta-INF /弹簧/批次/引导/管理器/数据源的context.xml,

还有“${Batch.scheR_588_11845@a.script}”,它是从我的batch-sqlserver.properties加载而不是batch.business.scheR_588_11845@a.script.

有谁知道为什么或有任何建议?
谢谢!

最佳答案
我也遇到了这个问题.我没有单独的覆盖data-source-context.xml,但是我通过使用名为ENVIRONMENT的JVM选项启动服务器(在我的情况下为tomcat)来解决它:

-DENVIRONMENT = POSTGResql的.

你的情况下,它将是:

-DENVIRONMENT = sqlSERVER

我的猜测是Spring批处理应用程序使用spring配置文件来选择要使用的数据库类型,并需要初始标志来播种.

作为参,这是David Syer关于此的帖子:

http://forum.spring.io/forum/spring-projects/batch/105054-spring-batch-admin-configuration-for-pointing-the-database?p=562140#post562140

对于覆盖上下文方法,他说:

所以你把文件放在了错误的地方.您需要将其移动到类路径上的目录中.

大佬总结

以上是大佬教程为你收集整理的java – Spring Batch Admin,无法替换占位符’batch.business.schema.script’全部内容,希望文章能够帮你解决java – Spring Batch Admin,无法替换占位符’batch.business.schema.script’所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。