- 浏览: 57716 次
- 性别:
- 来自: 深圳
最新评论
-
wendy.wujing:
emptySessionPath="true&quo ...
Jboss的URIEncoding设置 -
Alicus520:
I met the same problem.Actually ...
关于ibatis配置新项目的一个错误 -
czwlucky:
看来对于iBatis的容错性处理没有处理好啊
关于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>
于是就启动正常了!
评论
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的容错性处理没有处理好啊
发表评论
-
使用ToStringBuilder的反射API实现toString方法
2009-02-07 16:33 2866可以省却太多代码,并鼓励重写toString方法。 publi ... -
一个jsp:include引起的IE6的css错误
2008-12-04 16:40 1929问题描述:页面的内容和底部分别为jsp:include引用的页 ... -
JavaEE缓存问题
2008-11-03 12:36 1366在JavaEE项目开发中,顽固的缓存经常无视我们对程序的改动, ... -
用ibatis调用数据库函数返回游标
2008-09-02 11:29 1959Oracle中有一个函数,返回一个游标,需要在ibatis中调 ...
相关推荐
iBatis是一个优秀的持久层框架,它允许开发者将SQL语句直接写在XML配置文件中,提供了一个简单的SQL映射框架,从而将SQL与Java代码分离,提高了代码的可维护性。iBatis3.0是其最新版本,引入了更多的改进和新特性。 ...
IBatis,一个轻量级的Java ORM(对象关系映射)框架,它为开发者提供了比JDBC更高级的抽象层,使得开发者可以更加专注于SQL语句的编写,而无需关心底层的数据库连接管理和结果集处理。在2.3.4这个版本中,开发者可以...
iBATIS,全称为“Integration Between Applications and SQL”,即应用程序与SQL之间的集成,是由Apache软件基金会维护的一个开源项目。它为Java应用程序提供了灵活的数据库访问层,使得开发者可以避免直接编写大量...
IBatis 是一个流行的数据访问层(DAL)框架,它允许开发者将SQL语句与.NET应用程序中的业务逻辑分离。在.NET环境中,有两个主要版本被广泛使用:IBatis.Net 1.9.2 和 IBatis.DataMapper 1.6.2。这些版本是该框架的...
在MyBatis和iBatis的配置文件中充分利用这一特性,可以极大地提高开发的准确性和效率。在实际工作中,结合源码阅读和工具使用,可以更好地理解和掌握这两个框架,从而编写出更高效、更稳定的代码。
- 新建一个ibatis配置文件,根据实际使用的数据库类型,调整数据库驱动名称、链接URL、驱动位置等配置项。 #### 数据库配置与代码生成模板 对于不同的数据库,其驱动链接方式存在差异。以下是基于ibatis框架进行...
iBATIS,全称为“Infrastructure As A Business Logic Translation Service”,是一个优秀的开源持久层框架,它允许开发者将SQL语句直接写在Java代码中,通过XML配置文件或注解来映射SQL与Java对象之间的关系,简化...
- 测试: 为iBATIS配置和映射文件编写单元测试,确保其正确性。 #### 总结 iBATIS作为一个轻量级的ORM框架,不仅提供了简单易用的数据库访问接口,还支持动态SQL、缓存等功能,能够有效提高开发效率并优化性能。...
1. Visual Studio 2008解决方案结构图:在Visual Studio 2008中,首先创建一个新的解决方案`IBatisNetTestVersion2.0`,然后在解决方案中添加两个项目,一个用于业务逻辑和数据访问(如DAL层),另一个用于展示层...
4. iBATIS配置 - 强调了配置对于iBATIS应用来说是一个重要的部分,涉及XML文件的编写和设置,用以定义对象和数据库之间的映射关系。 5. iBATIS基础语义 - 详细解释了iBATIS的基本概念和工作原理,包括对象关系的...
首先,在开发环境中(如Eclipse)创建一个新的Web项目。这一步主要是为整个应用提供基础的项目结构和支持。 ##### 2. 加载Flex支持 加载Flex支持通常包括以下几个步骤: - 在Eclipse中安装Flex插件,例如Adobe ...
- "IBatis.DataAccess.1.9.2.bin.zip":这个文件可能是IBatis的另一个组件DataAccess的1.9.2版本,可能包含与DataMapper协同工作的类库和接口。 - "Ibatis.DataMapper.1.6.2.bin":这是一个单独的1.6.2版本的...
在IT行业中,Ibatis是一个广泛使用的轻量级Java ORM(对象关系映射)框架,它允许开发者将SQL查询与Java代码分离,提高了代码的可维护性和可读性。"ibatis_修改sqlmap不重启"这个主题聚焦于如何在开发过程中优化流程...
标题 "ibatis3 jar" 指的是MyBatis 3的Java Archive(JAR)文件,这是一个流行的持久层框架,用于简化Java应用程序中的数据库操作。MyBatis 3是MyBatis框架的一个主要版本,它提供了一种灵活的方式来映射SQL语句,将...
例如,清单1展示了示例应用程序中使用的Automobile类,这是一个简单的Java对象(POJO),ibatis3配置后,可以将其持久化到数据库或作为查询结果返回。 五、数据库表创建与脚本执行 清单2展示了用于创建automobiles...
"Struts2+Spring+Ibatis+MySQL" 是一个经典的Java Web开发框架组合,用于构建高效、可扩展的企业级应用程序。这个组合集成了强大的MVC(Model-View-Controller)框架Struts2、依赖注入与面向切面编程的Spring框架、...
2. **ibatis**:iBATIS是MyBatis的前身,是一个基于Java的持久层框架,它允许开发者将SQL语句直接写在XML配置文件中,使得数据库访问更加灵活且易于维护。 【部分内容详解】: 1. **使用svn避免空格方法**:在开发...
iBATIS开发教程 iBATIS是一种流行的Java持久层框架...iBATIS是一个功能强大且灵活的持久层框架,提供了一个高效的数据访问解决方案。本教程为您提供了iBATIS开发教程的详细信息,希望您能够快速掌握iBATIS的使用方法。
MyEclipse 是一个集成开发环境,广泛用于Java项目开发。在本教程中,我们将探讨如何在MyEclipse中创建一个基于Ibatis的入门工程,并通过图文教程的方式来理解其基本操作。 一、Ibatis框架介绍 Ibatis的核心思想是将...
然而,在实际开发过程中,开发者可能会遇到一个问题:如何让iBatis的XML配置文件在编写时提供有效的提示信息,以提高开发效率并减少错误。下面我们将详细讨论如何实现这一目标。 首先,我们需要理解iBatis的XML配置...