我们已经使用eclipse构建了一个spring批处理应用程序。每当我通过eclipse执行程序时,它都运行良好。但当我尝试生成并运行使用ant创建的jar文件时,我得到了这个丑陋的堆栈跟踪。
2012年12月27日11:10:30880 1141[主][]错误(CommandLineJobRunner.java:355):作业因错误而终止:类路径资源[启动上下文.XML]的XML文档中的第12行无效;嵌套异常为组织。xml。萨克斯。SAXParseException:cvc elt。1: 找不到元素“bean”的声明。组织。springframework。豆。工厂xml。XmlBeanDefinitionStoreException:类路径资源[启动上下文.XML]的XML文档中的第12行无效;嵌套异常为组织。xml。萨克斯。SAXParseException:cvc elt。1: 找不到元素“bean”的声明。位于组织。springframework。豆。工厂xml。XmlBeanDefinitionReader。doLoadBeanDefinitions(XmlBeanDefinitionReader.java:396)位于org。springframework。豆。工厂xml。XmlBeanDefinitionReader。在org上加载beandefinitions(XmlBeanDefinitionReader.java:334)。springframework。豆。工厂xml。XmlBeanDefinitionReader。在org上加载BeanDefinitions(XmlBeanDefinitionReader.java:302)。springframework。豆。工厂支持AbstractBeanDefinitionReader。在org上加载BeanDefinitions(AbstractBeanDefinitionReader.java:143)。springframework。豆。工厂支持AbstractBeanDefinitionReader。在org上加载BeanDefinitions(AbstractBeanDefinitionReader.java:178)。springframework。豆。工厂支持AbstractBeanDefinitionReader。在org上加载BeanDefinitions(AbstractBeanDefinitionReader.java:149)。springframework。豆。工厂支持AbstractBeanDefinitionReader。在org上加载BeanDefinitions(AbstractBeanDefinitionReader.java:212)。springframework。上下文支持AbstractXmlApplicationContext。在org上加载BeanDefinitions(AbstractXmlApplicationContext.java:126)。springframework。上下文支持AbstractXmlApplicationContext。在org上加载BeanDefinitions(AbstractXmlApplicationContext.java:92)。springframework。上下文支持AbstractRefreshableApplicationContext。位于org的refreshBeanFactory(AbstractRefreshableApplicationContext.java:130)。springframework。上下文支持AbstractApplicationContext。在org上获得FreshBeanFactory(AbstractApplicationContext.java:467)。springframework。上下文支持AbstractApplicationContext。在org上刷新(AbstractApplicationContext.java:397)。springframework。上下文支持ClassPathXmlApplicationContext。(ClassPathXmlApplicationContext.java:139)位于org。springframework。上下文支持ClassPathXmlApplicationContext。(ClassPathXmlApplicationContext.java:83)位于org。springframework。一批果心发射支持CommandLineJobRunner。在组织上启动(CommandLineJobRunner.java:282)。springframework。一批果心发射支持CommandLineJobRunner。com上的main(CommandLineJobRunner.java:574)。我的路径调用程序。作业测试。main(JobTest.java:25)由:org引起。xml。萨克斯。SAXParseException:cvc elt。1: 找不到元素“bean”的声明。在com。太阳组织。阿帕奇。xerces。内部的util。ErrorHandlerWrapper。在com上创建SAXParseException(ErrorHandlerWrapper.java:195)。太阳组织。阿帕奇。xerces。内部的util。ErrorHandlerWrapper。com上出现错误(ErrorHandlerWrapper.java:131)。太阳组织。阿帕奇。xerces。内部的实施。XMLErrorReporter。com上的reportError(XMLErrorReporter.java:384)。太阳组织。阿帕奇。xerces。内部的实施。XMLErrorReporter。com上的reportError(XMLErrorReporter.java:318)。太阳组织。阿帕奇。xerces。内部的实施。xs。XMLSchemaValidator。com上的handlestarelement(XMLSchemaValidator.java:1916)。太阳组织。阿帕奇。xerces。内部的实施。xs。XMLSchemaValidator。startElement(XMLSchemaValidator.java:705)位于com。太阳组织。阿帕奇。xerces。内部的实施。XMLNSDocumentScannerImpl。com上的scanStartElement(XMLNSDocumentScannerImpl.java:400)。太阳组织。阿帕奇。xerces。内部的实施。XMLNSDocumentScannerImpl$NSContentDriver。com上的scanRootElementHook(XMLNSDocumentScannerImpl.java:626)。太阳组织。阿帕奇。xerces。内部的实施。XMLDocumentFragmentScannerImpl$FragmentContentDriver。下一步(XMLDocumentFragmentScannerImpl.java:3103)访问com。太阳组织。阿帕奇。xerces。内部的实施。XMLDocumentScannerImpl$PrologDriver。下一步(XMLDocumentScannerImpl.java:922)访问com。太阳组织。阿帕奇。xerces。内部的实施。XMLDocumentScannerImpl。接下来(XMLDocumentScannerImpl.java:648)访问com。太阳组织。阿帕奇。xerces。内部的实施。XMLNSDocumentScannerImpl。下一步(XMLNSDocumentScannerImpl.java:140),请访问com。太阳组织。阿帕奇。xerces。内部的实施。XMLDocumentFragmentScannerImpl。com上的ScandDocument(XMLDocumentFragmentScannerImpl.java:511)。太阳组织。阿帕奇。xerces。内部的解析器。XML11配置。在com上解析(XML11Configuration.java:808)。太阳组织。阿帕奇。xerces。内部的解析器。XML11配置。在com上解析(XML11Configuration.java:737)。太阳组织。阿帕奇。xerces。内部的解析器。XMLParser。com上的parse(XMLParser.java:119)。太阳组织。阿帕奇。xerces。内部的解析器。DOMParser。com上的parse(DOMParser.java:235)。太阳组织。阿帕奇。xerces。内部的jaxp。DocumentBuilderImpl。在org上解析(DocumentBuilderImpl.java:284)。springframework。豆。工厂xml。DefaultDocumentLoader。在org上加载文档(DefaultDocumentLoader.java:75)。springframework。豆。工厂xml。XmlBeanDefinitionReader。doLoadBeanDefinitions(XmlBeanDefinitionReader.java:388)。。。16个以上
它的基本意思是在第11行找不到元素bean的声明。这是我的发布上下文。
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:batch="http://www.springframework.org/schema/batch"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:jdbc="http://www.springframework.org/schema/jdbc"
xsi:schemaLocation="
http://www.springframework.org/schema/batch http://www.springframework.org/schema/batch/spring-batch-2.1.xsd
http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<bean id="placeholderConfig"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>file:batch.properties</value>
<value>file:application.properties</value>
</list>
</property>
</bean>
<context:component-scan base-package="com.my.path" />
<import resource="classpath:/META-INF/spring/batch-context.xml" />
<import resource="classpath:/META-INF/spring/module-context.xml" />
</beans>
还有我的身材。生成jar的xml。
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- WARNING: Eclipse auto-generated file.
Any modifications will be overwritten.
To include a user specific buildfile here, simply create one in the same
directory with the processing instruction <?eclipse.ant.import?>
as the first entry and export the buildfile again. -->
<project basedir="." default="jar" name="ERS2Utilities">
<property environment="env"/>
<property name="debuglevel" value="source,lines,vars"/>
<property name="target" value="1.6"/>
<property name="source" value="1.6"/>
<path id="CLASSPATH">
<pathelement location="target/classes"/>
<pathelement location="target/test-classes"/>
<!--
<pathelement location="src/main/resources/lib/antlr-2.7.7.jar"/>
<pathelement location="src/main/resources/lib/antlr-runtime-3.2.jar"/>
<pathelement location="src/main/resources/lib/org.springframework.instrument.tomcat-3.0.3.RELEASE.jar"/>
<pathelement location="src/main/resources/lib/org.springframework.jms-3.0.3.RELEASE.jar"/>
<pathelement location="src/main/resources/lib/org.springframework.js-2.1.1.RELEASE.jar"/>
<pathelement location="src/main/resources/lib/org.springframework.web-3.0.3.RELEASE.jar"/>
<pathelement location="src/main/resources/lib/org.springframework.web.portlet-3.0.3.RELEASE.jar"/>
<pathelement location="src/main/resources/lib/org.springframework.web.servlet-3.0.3.RELEASE.jar"/>
<pathelement location="src/main/resources/lib/org.springframework.web.struts-3.0.3.RELEASE.jar"/>
<pathelement location="src/main/resources/lib/org.springframework.webflow-2.1.1.RELEASE.jar"/>
<pathelement location="src/main/resources/lib/slf4j-api-1.6.1.jar"/>
<pathelement location="src/main/resources/lib/slf4j-api.jar"/>
<pathelement location="src/main/resources/lib/slf4j-log4j12-1.6.1.jar"/>
<pathelement location="src/main/resources/lib/commons-digester.jar"/>
-->
<pathelement location="src/main/resources/lib/com.springsource.org.aopalliance-1.0.0.jar"/>
<pathelement location="src/main/resources/lib/org.springframework.aop-3.0.3.RELEASE.jar"/>
<pathelement location="src/main/resources/lib/org.springframework.asm-3.0.3.RELEASE.jar"/>
<pathelement location="src/main/resources/lib/org.springframework.aspects-3.0.3.RELEASE.jar"/>
<pathelement location="src/main/resources/lib/org.springframework.beans-3.0.3.RELEASE.jar"/>
<pathelement location="src/main/resources/lib/org.springframework.binding-2.1.1.RELEASE.jar"/>
<pathelement location="src/main/resources/lib/org.springframework.context-3.0.3.RELEASE.jar"/>
<pathelement location="src/main/resources/lib/org.springframework.context.support-3.0.3.RELEASE.jar"/>
<pathelement location="src/main/resources/lib/org.springframework.core-3.0.3.RELEASE.jar"/>
<pathelement location="src/main/resources/lib/org.springframework.expression-3.0.3.RELEASE.jar"/>
<pathelement location="src/main/resources/lib/org.springframework.instrument-3.0.3.RELEASE.jar"/>
<pathelement location="src/main/resources/lib/org.springframework.jdbc-3.0.3.RELEASE.jar"/>
<pathelement location="src/main/resources/lib/org.springframework.orm-3.0.3.RELEASE.jar"/>
<pathelement location="src/main/resources/lib/org.springframework.oxm-3.0.3.RELEASE.jar"/>
<pathelement location="src/main/resources/lib/org.springframework.test-3.0.3.RELEASE.jar"/>
<pathelement location="src/main/resources/lib/org.springframework.transaction-3.0.3.RELEASE.jar"/>
<pathelement location="src/main/resources/lib/spring-batch-infrastructure-2.1.9.RELEASE.jar"/>
<pathelement location="src/main/resources/lib/spring-batch-core-2.1.9.RELEASE.jar"/>
<pathelement location="src/main/resources/lib/spring-batch-test-2.1.9.RELEASE.jar"/>
<pathelement location="src/main/resources/lib/commons-beanutils.jar"/>
<pathelement location="src/main/resources/lib/commons-collections-3.1.jar"/>
<pathelement location="src/main/resources/lib/commons-dbcp-1.4.jar"/>
<pathelement location="src/main/resources/lib/commons-lang-2.6.jar"/>
<pathelement location="src/main/resources/lib/commons-logging-1.1.1.jar"/>
<pathelement location="src/main/resources/lib/commons-pool-1.5.4.jar"/>
<pathelement location="src/main/resources/lib/junit-4.7.jar"/>
<pathelement location="src/main/resources/lib/ojdbc14.jar"/>
<pathelement location="src/main/resources/lib/log4j-1.2.16.jar"/>
<pathelement location="src/main/resources/lib/HashUtility.jar"/>
<pathelement location="src/main/resources/lib/commons-io-2.4.jar"/>
<pathelement location="src/main/resources/lib/mockito-all-1.9.5.jar"/>
</path>
<target name="init">
<mkdir dir="target/classes"/>
<mkdir dir="target/test-classes"/>
<copy includeemptydirs="false" todir="target/classes">
<fileset dir="src/main/resources">
<exclude name="**/*.java"/>
</fileset>
</copy>
<copy includeemptydirs="false" todir="target/classes">
<fileset dir="src/main/java">
<exclude name="**/*.java"/>
</fileset>
</copy>
<copy includeemptydirs="false" todir="target/test-classes">
<fileset dir="src/test/java">
<exclude name="**/*.java"/>
</fileset>
</copy>
<copy includeemptydirs="false" todir="target/classes">
<fileset dir="src/test/resources">
<exclude name="**/*.java"/>
</fileset>
</copy>
</target>
<target name="clean">
<delete dir="target/classes"/>
<delete dir="target/test-classes"/>
</target>
<target depends="init" name="build-project">
<echo message="${ant.project.name}: ${ant.file}"/>
<javac debug="true" debuglevel="${debuglevel}" destdir="target/classes" source="${source}" target="${target}">
<src path="src/main/resources"/>
<classpath refid="CLASSPATH"/>
</javac>
<javac debug="true" debuglevel="${debuglevel}" destdir="target/classes" source="${source}" target="${target}">
<src path="src/main/java"/>
<classpath refid="CLASSPATH"/>
</javac>
<javac debug="true" debuglevel="${debuglevel}" destdir="target/test-classes" source="${source}" target="${target}">
<src path="src/test/java"/>
<classpath refid="CLASSPATH"/>
</javac>
<javac debug="true" debuglevel="${debuglevel}" destdir="target/classes" source="${source}" target="${target}">
<src path="src/test/resources"/>
<classpath refid="CLASSPATH"/>
</javac>
</target>
<!-- <target description="compile project with Eclipse compiler" name="build-eclipse-compiler">
<property name="build.compiler" value="org.eclipse.jdt.core.JDTCompilerAdapter"/>
<antcall target="build"/>
</target> -->
<target name="JobTest">
<java classname="com.my.path.invoker.JobTest" failonerror="true" fork="yes">
<arg line="launch-context.xml oiaExtractorJob"/>
<classpath refid="CLASSPATH"/>
</java>
</target>
<target name="jar" depends="build-project">
<copy todir="build/main" file="src/main/resources/log4j.xml"/>
<copy todir="build/main" file="application.properties"/>
<copy todir="build/main" file="batch.properties"/>
<copy todir="build/main" file="src/main/resources/ERSUtilities.sh"/>
<copy todir="build/main" file="src/main/resources/ERSUtilities.bat"/>
<jar destfile="build/main/ERS2SupportingUtilities.jar">
<fileset dir="target/classes"/>
<restrict>
<name name="**/*.class"/>
<archives>
<zips>
<fileset dir="./src/main/resources/lib" includes="**/*.jar"/>
</zips>
</archives>
</restrict>
<manifest>
<attribute name="Main-Class" value="com.my.path.invoker.JobTest"/>
<attribute name="Class-Path" value="./lib/log4j-1.2.16.jar
./lib/org.springframework.context-3.0.3RELEASE.jar
./lib/org.springframework.asm-3.0.3.RELEASE.jar
./lib/junit-4.7.jar
./lib/org.springframework.orm-3.0.3.RELEASE.jar
./lib/org.springframework.transaction-3.0.3.RELEASE.jar
./lib/org.springframework.aspects-3.0.3.RELEASE.jar
./lib/commons-pool-1.5.4.jar
./lib/org.springframework.core-3.0.3.RELEASE.jar
./lib/commons-logging-1.1.1.jar
./lib/HashUtility.jar
./lib/org.springframework.expression-3.0.3.RELEASE.jar
./lib/commons-lang-2.6.jar
./lib/org.springframework.instrument-3.0.3.RELEASE.jar
./lib/mockito-all-1.9.5.jar
./lib/com.springsource.org.aopalliance-1.0.0.jar
./lib/ojdbc14.jar
./lib/commons-io-2.4.jar
./lib/commons-collections-3.1.jar
./lib/org.springframework.jdbc-3.0.3.RELEASE.jar
./lib/spring-batch-infrastructure-2.1.9.RELEASE.jar
./lib/org.springframework.context.support-3.0.3.RELEASE.jar
./lib/commons-dbcp-1.4.jar
./lib/spring-batch-test-2.1.9.RELEASE.jar
./lib/org.springframework.beans-3.0.3.RELEASE.jar
./lib/org.springframework.oxm-3.0.3.RELEASE.jar
./lib/org.springframework.aop-3.0.3.RELEASE.jar
./lib/commons-beanutils.jar
./lib/org.springframework.binding-2.1.1.RELEASE.jar
./lib/spring-batch-core-2.1.9.RELEASE.jar
./lib/org.springframework.test-3.0.3.RELEASE.jar
./launch-context.xml
./log4j.xml"
/>
</manifest>
</jar>
</target>
</project>
我已经花了三天多的时间在这上面,但都没有用。我已经确保我正在创建的xsd引用与我正在使用的spring jar版本兼容。
任何帮助都将不胜感激。
相同的启动上下文。当通过给定的ant构建构建时,xml在eclipse中工作。它抛出此错误的xml。
我正在尝试将所有依赖的罐子打包成一个胖罐子。我遇到过一些帖子,表明我做不到这一点。要引用打包的jar,我需要一个jar或eclipse的jarinjarloader。否则,我将不得不将依赖jar放在主jar之外。我会尝试这些选择,如果这是真正的问题,我会回来。同时,如果你们中的任何人对此编辑有任何意见,请更新您的答案,我会将其标记为正确。
如果您的执行服务器的防火墙阻止了对外部internet的访问(这通常是一件好事),那么您需要使用spring。操纵器和Spring。帮助应用程序分析上下文文件的架构。
这将引用框架库中存在的模式,而不是试图从internet中获取它们。
/META-INF/spring。处理程序
http\://www.springframework.org/schema/batch=org.springframework.batch.core.configuration.xml.CoreNamespaceHandler
http\://www.springframework.org/schema/context=org.springframework.context.config.ContextNamespaceHandler
http\://www.springframework.org/schema/jdbc=org.springframework.jdbc.config.JdbcNamespaceHandler
/META-INF/spring。架构
http\://www.springframework.org/schema/beans/spring-beans-3.0.xsd=org/springframework/beans/factory/xml/spring-beans-3.0.xsd
http\://www.springframework.org/schema/context/spring-context-3.0.xsd=org/springframework/context/config/spring-context-3.0.xsd
http\://www.springframework.org/schema/jdbc/spring-jdbc-3.0.xsd=org/springframework/jdbc/config/spring-jdbc-3.0.xsd
http\://www.springframework.org/schema/batch/spring-batch-2.1.xsd=org/springframework/batch/core/configuration/xml/spring-batch-2.1.xsd
在ant脚本中,您对spring 3.0.3有依赖关系,在应用程序上下文中,您包括spring 3.0,这可能是问题所在吗?
您选择的XML编辑器/验证器是否成功验证了您的应用程序上下文(您称之为启动上下文的上下文)?无效,因为<代码>http://www.springframework.org/schema/batch/spring-batch-2.1.xsd无效。
然而,你发布的内容(只是摘录吗?)甚至不需要批处理命名空间。因此,您可以删除它,从而将其转换为有效的XML。
本文向大家介绍Spring batch批处理框架,包括了Spring batch批处理框架的使用技巧和注意事项,需要的朋友参考一下 spring batch框架的简介 批处理任务是大多数IT项目的一个重要组成部分,批处理在业务系统中负责处理海量的数据,无须人工干预就能够自动高效的进行复杂的数据分析和处理。批处理会定期读入批量数据,经过相应的业务处理进行归档的业务操作,批处理的特征是自动执行,处理的
我有以下步骤:
反正可以禁用SQL,我只是想测试我的读写器和处理器工作正常。
我开始学习spring batch,遇到一个问题,当我想使用在数据库中持久化作业的状态时。编译器显示: “原因:org.springframework.beans.factory.beanCreationException:创建类路径资源[springconfig.xml]中定义的名为'job repository'的bean时出错:调用init方法失败;嵌套异常为java.lang.noClas
你好 我是Spring Batch世界的新手,最后几天我花时间观看Michael Minella的YouTube视频,阅读一些文档并成功运行我在互联网上找到的一些演示项目。我认为Spring Batch是我们需求的热门候选者。但这是我们的故事。 我在一家公司工作,该公司在十多年前为他们的业务部门开发了自己的调度和批处理框架。该框架能够运行数据库存储程序、数据库函数和动态SQL。不用说,维护它非常具