`
sysuxk
  • 浏览: 57716 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

关于ibatis配置新项目的一个错误

阅读更多

     最近要开展一个新项目,spring+ibatis的,在建立项目框架时,需要配置ibatis,就在dataAccessContext-local.xml中添加:

	<!-- SqlMap setup for iBATIS Database Layer -->
	<bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
		<property name="configLocation" value="WEB-INF/sql-map-config.xml"/>
		<property name="dataSource" ref="dataSource"/>
	</bean>

      因项目还未开始,也没有sql配置文件,sql-map-config.xml就没有resource,只有

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMapConfig PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN"
    "http://www.ibatis.com/dtd/sql-map-config-2.dtd">

<sqlMapConfig>
</sqlMapConfig>

      于是启动jboss时出现一个错误:

ERROR [ContextLoader] Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlMapClient' defined in ServletContext resource [/WEB-INF/dataAccessContext-local.xml]: Invocation of init method failed; nested exception is org.springframework.core.NestedIOException: Failed to parse config resource: ServletContext resource [/WEB-INF/sql-map-config.xml]; nested exception is com.ibatis.common.xml.NodeletException: Error parsing XML.  Cause: org.xml.sax.SAXParseException: The content of element type "sqlMapConfig" is incomplete, it must match "(properties?,settings?,resultObjectFactory?,typeAlias*,typeHandler*,transactionManager?,sqlMap+)+".
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1338)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:473)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409)
	at java.security.AccessController.doPrivileged(Native Method)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380)
	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264)
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:423)
	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:728)
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:380)
	at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:255)
	at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:199)
	at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:45)
	at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3763)
	at org.apache.catalina.core.StandardContext.start(StandardContext.java:4211)
	at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:759)
	at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:739)
	at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:524)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.apache.commons.modeler.BaseModelMBean.invoke(BaseModelMBean.java:503)
	at org.jboss.mx.server.RawDynamicInvoker.invoke(RawDynamicInvoker.java:164)
	at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
	at org.apache.catalina.core.StandardContext.init(StandardContext.java:5052)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.apache.commons.modeler.BaseModelMBean.invoke(BaseModelMBean.java:503)
	at org.jboss.mx.server.RawDynamicInvoker.invoke(RawDynamicInvoker.java:164)
	at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
	at org.jboss.web.tomcat.tc5.TomcatDeployer.performDeployInternal(TomcatDeployer.java:297)
	at org.jboss.web.tomcat.tc5.TomcatDeployer.performDeploy(TomcatDeployer.java:103)
	at org.jboss.web.AbstractWebDeployer.start(AbstractWebDeployer.java:371)
	at org.jboss.web.WebModule.startModule(WebModule.java:83)
	at org.jboss.web.WebModule.startService(WebModule.java:61)
	at org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanSupport.java:289)
	at org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMBeanSupport.java:245)
	at sun.reflect.GeneratedMethodAccessor22.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
	at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
	at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
	at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
	at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
	at org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.java:978)
	at $Proxy0.start(Unknown Source)
	at org.jboss.system.ServiceController.start(ServiceController.java:417)
	at sun.reflect.GeneratedMethodAccessor9.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
	at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
	at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
	at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
	at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
	at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
	at $Proxy38.start(Unknown Source)
	at org.jboss.web.AbstractWebContainer.start(AbstractWebContainer.java:466)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
	at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
	at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133)
	at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
	at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142)
	at org.jboss.mx.interceptor.DynamicInterceptor.invoke(DynamicInterceptor.java:97)
	at org.jboss.system.InterceptorServiceMBeanSupport.invokeNext(InterceptorServiceMBeanSupport.java:238)
	at org.jboss.ws.integration.jboss.DeployerInterceptor.start(DeployerInterceptor.java:92)
	at org.jboss.deployment.SubDeployerInterceptorSupport$XMBeanInterceptor.start(SubDeployerInterceptorSupport.java:188)
	at org.jboss.deployment.SubDeployerInterceptor.invoke(SubDeployerInterceptor.java:95)
	at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
	at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
	at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
	at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
	at $Proxy39.start(Unknown Source)
	at org.jboss.deployment.MainDeployer.start(MainDeployer.java:1025)
	at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:819)
	at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:782)
	at sun.reflect.GeneratedMethodAccessor57.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
	at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
	at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133)
	at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
	at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142)
	at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
	at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
	at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
	at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
	at $Proxy8.deploy(Unknown Source)
	at org.jboss.deployment.scanner.URLDeploymentScanner.deploy(URLDeploymentScanner.java:421)
	at org.jboss.deployment.scanner.URLDeploymentScanner.scan(URLDeploymentScanner.java:634)
	at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.doScan(AbstractDeploymentScanner.java:263)
	at org.jboss.deployment.scanner.AbstractDeploymentScanner.startService(AbstractDeploymentScanner.java:336)
	at org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanSupport.java:289)
	at org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMBeanSupport.java:245)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
	at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
	at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
	at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
	at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
	at org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.java:978)
	at $Proxy0.start(Unknown Source)
	at org.jboss.system.ServiceController.start(ServiceController.java:417)
	at sun.reflect.GeneratedMethodAccessor9.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
	at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
	at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
	at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
	at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
	at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
	at $Proxy4.start(Unknown Source)
	at org.jboss.deployment.SARDeployer.start(SARDeployer.java:302)
	at org.jboss.deployment.MainDeployer.start(MainDeployer.java:1025)
	at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:819)
	at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:782)
	at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:766)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
	at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
	at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133)
	at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
	at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142)
	at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
	at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
	at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
	at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
	at $Proxy5.deploy(Unknown Source)
	at org.jboss.system.server.ServerImpl.doStart(ServerImpl.java:482)
	at org.jboss.system.server.ServerImpl.start(ServerImpl.java:362)
	at org.jboss.Main.boot(Main.java:200)
	at org.jboss.Main$1.run(Main.java:490)
	at java.lang.Thread.run(Unknown Source)

     在网上搜索未果。。。

     后添加了一个resource,sql-map-config.xml变为:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMapConfig PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN"
    "http://www.ibatis.com/dtd/sql-map-config-2.dtd">

<sqlMapConfig>
	<sqlMap resource="com/byfunds/www/dao/sql/Order.xml"/>
</sqlMapConfig>

      Order.xml只是敷衍地加了点东西:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN" "http://www.ibatis.com/dtd/sql-map-2.dtd">

<sqlMap namespace="Order">
  <select id="getOrder" resultClass="java.sql.Date">
    select sysdate from dual
  </select>
</sqlMap>

     于是就启动正常了!

4
1
分享到:
评论
2 楼 Alicus520 2011-10-29  
I met the same problem.Actually, two xml file both need to add some info.
1 楼 czwlucky 2008-11-10  
看来对于iBatis的容错性处理没有处理好啊

相关推荐

    配置ibatis3.0时,发生的小错误

    iBatis是一个优秀的持久层框架,它允许开发者将SQL语句直接写在XML配置文件中,提供了一个简单的SQL映射框架,从而将SQL与Java代码分离,提高了代码的可维护性。iBatis3.0是其最新版本,引入了更多的改进和新特性。 ...

    IBatis2.34最新整合(包括jar-src-doc)

    IBatis,一个轻量级的Java ORM(对象关系映射)框架,它为开发者提供了比JDBC更高级的抽象层,使得开发者可以更加专注于SQL语句的编写,而无需关心底层的数据库连接管理和结果集处理。在2.3.4这个版本中,开发者可以...

    ibatis 开发指南 和 iBATIS-SqlMaps两本图书

    iBATIS,全称为“Integration Between Applications and SQL”,即应用程序与SQL之间的集成,是由Apache软件基金会维护的一个开源项目。它为Java应用程序提供了灵活的数据库访问层,使得开发者可以避免直接编写大量...

    IBatis.net1.9.2&1.6.2最新版本

    IBatis 是一个流行的数据访问层(DAL)框架,它允许开发者将SQL语句与.NET应用程序中的业务逻辑分离。在.NET环境中,有两个主要版本被广泛使用:IBatis.Net 1.9.2 和 IBatis.DataMapper 1.6.2。这些版本是该框架的...

    MyBatis和IBatis配置文件中的自动补全功能

    在MyBatis和iBatis的配置文件中充分利用这一特性,可以极大地提高开发的准确性和效率。在实际工作中,结合源码阅读和工具使用,可以更好地理解和掌握这两个框架,从而编写出更高效、更稳定的代码。

    利用ibatis 生成代码

    - 新建一个ibatis配置文件,根据实际使用的数据库类型,调整数据库驱动名称、链接URL、驱动位置等配置项。 #### 数据库配置与代码生成模板 对于不同的数据库,其驱动链接方式存在差异。以下是基于ibatis框架进行...

    iBATIS2.3及其说明文档

    iBATIS,全称为“Infrastructure As A Business Logic Translation Service”,是一个优秀的开源持久层框架,它允许开发者将SQL语句直接写在Java代码中,通过XML配置文件或注解来映射SQL与Java对象之间的关系,简化...

    ibatis培训教程

    - 测试: 为iBATIS配置和映射文件编写单元测试,确保其正确性。 #### 总结 iBATIS作为一个轻量级的ORM框架,不仅提供了简单易用的数据库访问接口,还支持动态SQL、缓存等功能,能够有效提高开发效率并优化性能。...

    IBatis.Net实例详细讲解

    1. Visual Studio 2008解决方案结构图:在Visual Studio 2008中,首先创建一个新的解决方案`IBatisNetTestVersion2.0`,然后在解决方案中添加两个项目,一个用于业务逻辑和数据访问(如DAL层),另一个用于展示层...

    ibatis_开发指南

    4. iBATIS配置 - 强调了配置对于iBATIS应用来说是一个重要的部分,涉及XML文件的编写和设置,用以定义对象和数据库之间的映射关系。 5. iBATIS基础语义 - 详细解释了iBATIS的基本概念和工作原理,包括对象关系的...

    flex-ibatis-sping项目的创建

    首先,在开发环境中(如Eclipse)创建一个新的Web项目。这一步主要是为整个应用提供基础的项目结构和支持。 ##### 2. 加载Flex支持 加载Flex支持通常包括以下几个步骤: - 在Eclipse中安装Flex插件,例如Adobe ...

    IBatis.DataMapper.1.6.2.bin.zip

    - "IBatis.DataAccess.1.9.2.bin.zip":这个文件可能是IBatis的另一个组件DataAccess的1.9.2版本,可能包含与DataMapper协同工作的类库和接口。 - "Ibatis.DataMapper.1.6.2.bin":这是一个单独的1.6.2版本的...

    ibatis_修改sqlmap不重启

    在IT行业中,Ibatis是一个广泛使用的轻量级Java ORM(对象关系映射)框架,它允许开发者将SQL查询与Java代码分离,提高了代码的可维护性和可读性。"ibatis_修改sqlmap不重启"这个主题聚焦于如何在开发过程中优化流程...

    ibatis3 jar

    标题 "ibatis3 jar" 指的是MyBatis 3的Java Archive(JAR)文件,这是一个流行的持久层框架,用于简化Java应用程序中的数据库操作。MyBatis 3是MyBatis框架的一个主要版本,它提供了一种灵活的方式来映射SQL语句,将...

    ibatis3开发指南

    例如,清单1展示了示例应用程序中使用的Automobile类,这是一个简单的Java对象(POJO),ibatis3配置后,可以将其持久化到数据库或作为查询结果返回。 五、数据库表创建与脚本执行 清单2展示了用于创建automobiles...

    struts2+spring+ibatis+mysql

    "Struts2+Spring+Ibatis+MySQL" 是一个经典的Java Web开发框架组合,用于构建高效、可扩展的企业级应用程序。这个组合集成了强大的MVC(Model-View-Controller)框架Struts2、依赖注入与面向切面编程的Spring框架、...

    配置svn教会你ibatis的好个人笔记

    2. **ibatis**:iBATIS是MyBatis的前身,是一个基于Java的持久层框架,它允许开发者将SQL语句直接写在XML配置文件中,使得数据库访问更加灵活且易于维护。 【部分内容详解】: 1. **使用svn避免空格方法**:在开发...

    iBATIS开发教程.docx

    iBATIS开发教程 iBATIS是一种流行的Java持久层框架...iBATIS是一个功能强大且灵活的持久层框架,提供了一个高效的数据访问解决方案。本教程为您提供了iBATIS开发教程的详细信息,希望您能够快速掌握iBATIS的使用方法。

    ibatis MyEclipse 入门工程代码 图文教程

    MyEclipse 是一个集成开发环境,广泛用于Java项目开发。在本教程中,我们将探讨如何在MyEclipse中创建一个基于Ibatis的入门工程,并通过图文教程的方式来理解其基本操作。 一、Ibatis框架介绍 Ibatis的核心思想是将...

    让ibatis有提示信息

    然而,在实际开发过程中,开发者可能会遇到一个问题:如何让iBatis的XML配置文件在编写时提供有效的提示信息,以提高开发效率并减少错误。下面我们将详细讨论如何实现这一目标。 首先,我们需要理解iBatis的XML配置...

Global site tag (gtag.js) - Google Analytics