You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user-java@ibatis.apache.org by Cesar Villar <ce...@yahoo.es> on 2005/08/25 10:49:46 UTC

com.ibatis.common.exception.NestedRuntimeException: Error parsing XPath '/sqlMapConfig/sqlMap'

Hi evereybody!!
I have a dao layer defined in my sql-map-config with
several sqlMaps. Recently, when i try to access to
this layer i get this error:
- AbstractUnafeDAO static block:
com.ibatis.common.exception.NestedRuntimeException:
Error occurred.  Cause:
com.ibatis.common.xml.NodeletException: Error parsing
XML.  Cause:
com.ibatis.common.exception.NestedRuntimeException:
Error parsing XPath '/sqlMapConfig/sqlMap'.  Cause:
com.ibatis.common.xml.NodeletException: Error parsing
XML.  Cause: org.xml.sax.SAXParseException: Falta
elemento de raíz de documento.

I've tried to delete all sqlMap references from the
sql-map-config and included one by one. I discovered
that only with a few got this error. So I clear the
content of these XML archives with only
<sqlMap></sqlMap>. But i'm having the same error.

¿What can I do? I have no idea to resolve it.
Thanks a lot


		
______________________________________________ 
Renovamos el Correo Yahoo! 
Nuevos servicios, más seguridad 
http://correo.yahoo.es

Re: com.ibatis.common.exception.NestedRuntimeException: Error parsing XPath '/sqlMapConfig/sqlMap'

Posted by Cesar Villar <ce...@yahoo.es>.
When I write the content of the file that fails into
another file the problem disappears.
The stack exception is:
- AbstractUnafeDAO static block:
com.ibatis.common.exception.NestedRuntimeException:
Error occurred.  Cause:
com.ibatis.common.xml.NodeletException: Error parsing
XML.  Cause:
com.ibatis.common.exception.NestedRuntimeException:
Error parsing XPath '/sqlMapConfig/sqlMap'.  Cause:
com.ibatis.common.xml.NodeletException: Error parsing
XML.  Cause: org.xml.sax.SAXParseException: Falta
elemento de raíz de documento.
Caused by: org.xml.sax.SAXParseException: Falta
elemento de raíz de documento.
Caused by: com.ibatis.common.xml.NodeletException:
Error parsing XML.  Cause:
org.xml.sax.SAXParseException: Falta elemento de raíz
de documento.
Caused by: org.xml.sax.SAXParseException: Falta
elemento de raíz de documento.
Caused by:
com.ibatis.common.exception.NestedRuntimeException:
Error parsing XPath '/sqlMapConfig/sqlMap'.  Cause:
com.ibatis.common.xml.NodeletException: Error parsing
XML.  Cause: org.xml.sax.SAXParseException: Falta
elemento de raíz de documento.
Caused by: org.xml.sax.SAXParseException: Falta
elemento de raíz de documento.
Caused by: com.ibatis.common.xml.NodeletException:
Error parsing XML.  Cause:
org.xml.sax.SAXParseException: Falta elemento de raíz
de documento.
Caused by: org.xml.sax.SAXParseException: Falta
elemento de raíz de documento.
Caused by: com.ibatis.common.xml.NodeletException:
Error parsing XML.  Cause:
com.ibatis.common.exception.NestedRuntimeException:
Error parsing XPath '/sqlMapConfig/sqlMap'.  Cause:
com.ibatis.common.xml.NodeletException: Error parsing
XML.  Cause: org.xml.sax.SAXParseException: Falta
elemento de raíz de documento.
Caused by: org.xml.sax.SAXParseException: Falta
elemento de raíz de documento.
Caused by: com.ibatis.common.xml.NodeletException:
Error parsing XML.  Cause:
org.xml.sax.SAXParseException: Falta elemento de raíz
de documento.
Caused by: org.xml.sax.SAXParseException: Falta
elemento de raíz de documento.
Caused by:
com.ibatis.common.exception.NestedRuntimeException:
Error parsing XPath '/sqlMapConfig/sqlMap'.  Cause:
com.ibatis.common.xml.NodeletException: Error parsing
XML.  Cause: org.xml.sax.SAXParseException: Falta
elemento de raíz de documento.
Caused by: org.xml.sax.SAXParseException: Falta
elemento de raíz de documento.
Caused by: com.ibatis.common.xml.NodeletException:
Error parsing XML.  Cause:
org.xml.sax.SAXParseException: Falta elemento de raíz
de documento.
Caused by: org.xml.sax.SAXParseException: Falta
elemento de raíz de documento.
java.lang.ExceptionInInitializerError
	at
com.unafe.dao.DAOFactory.getCursoDAO(DAOFactory.java:74)
	at
com.unafe.dao.pruebas.PruebaCursos.obtenerCursos(PruebaCursos.java:47)
	at
com.unafe.dao.pruebas.PruebaCursos.main(PruebaCursos.java:39)
Caused by: java.lang.RuntimeException: Error
Initializing AbstractUnafeDAO
:com.ibatis.common.exception.NestedRuntimeException:
Error occurred.  Cause:
com.ibatis.common.xml.NodeletException: Error parsing
XML.  Cause:
com.ibatis.common.exception.NestedRuntimeException:
Error parsing XPath '/sqlMapConfig/sqlMap'.  Cause:
com.ibatis.common.xml.NodeletException: Error parsing
XML.  Cause: org.xml.sax.SAXParseException: Falta
elemento de raíz de documento.
Caused by: org.xml.sax.SAXParseException: Falta
elemento de raíz de documento.
Caused by: com.ibatis.common.xml.NodeletException:
Error parsing XML.  Cause:
org.xml.sax.SAXParseException: Falta elemento de raíz
de documento.
Caused by: org.xml.sax.SAXParseException: Falta
elemento de raíz de documento.
Caused by:
com.ibatis.common.exception.NestedRuntimeException:
Error parsing XPath '/sqlMapConfig/sqlMap'.  Cause:
com.ibatis.common.xml.NodeletException: Error parsing
XML.  Cause: org.xml.sax.SAXParseException: Falta
elemento de raíz de documento.
Caused by: org.xml.sax.SAXParseException: Falta
elemento de raíz de documento.
Caused by: com.ibatis.common.xml.NodeletException:
Error parsing XML.  Cause:
org.xml.sax.SAXParseException: Falta elemento de raíz
de documento.
Caused by: org.xml.sax.SAXParseException: Falta
elemento de raíz de documento.
Caused by: com.ibatis.common.xml.NodeletException:
Error parsing XML.  Cause:
com.ibatis.common.exception.NestedRuntimeException:
Error parsing XPath '/sqlMapConfig/sqlMap'.  Cause:
com.ibatis.common.xml.NodeletException: Error parsing
XML.  Cause: org.xml.sax.SAXParseException: Falta
elemento de raíz de documento.
Caused by: org.xml.sax.SAXParseException: Falta
elemento de raíz de documento.
Caused by: com.ibatis.common.xml.NodeletException:
Error parsing XML.  Cause:
org.xml.sax.SAXParseException: Falta elemento de raíz
de documento.
Caused by: org.xml.sax.SAXParseException: Falta
elemento de raíz de documento.
Caused by:
com.ibatis.common.exception.NestedRuntimeException:
Error parsing XPath '/sqlMapConfig/sqlMap'.  Cause:
com.ibatis.common.xml.NodeletException: Error parsing
XML.  Cause: org.xml.sax.SAXParseException: Falta
elemento de raíz de documento.
Caused by: org.xml.sax.SAXParseException: Falta
elemento de raíz de documento.
Caused by: com.ibatis.common.xml.NodeletException:
Error parsing XML.  Cause:
org.xml.sax.SAXParseException: Falta elemento de raíz
de documento.
Caused by: org.xml.sax.SAXParseException: Falta
elemento de raíz de documento.
	at
com.unafe.dao.AbstractUnafeDAO.<clinit>(AbstractUnafeDAO.java:43)
	... 3 more
Exception in thread "main" 

And the content of the file is:

<?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="CursoSQL">
 
   <!-- 
   
==============================================================
   
    ======================== CACHES
==============================
   
==============================================================
   
    -->
    
    <cacheModel id="curso_cache" type="MEMORY" >
        <flushInterval   hours="24"/>
        <flushOnExecute statement= "insertCurso" />
        <flushOnExecute statement= "updateCurso" /> 
        <flushOnExecute statement= "deleteCurso" /> 
        <property name="reference-type" value="WEAK"
/>
    </cacheModel>

    <!-- 
   
=============================================================
   
    ======================== ALIAS
==============================
   
=============================================================
   
    -->

   	<typeAlias alias="CursoDTO"
type="com.unafe.dto.cursos.CursoDTO"/>

    <!-- 
   
=================================================================
    ======================== PARAMETERMAPS
==========================
   
=================================================================
    -->

  	<parameterMap id="tipoSanitario" class="CursoDTO">
  		<parameter property="sanitario"/>
  	</parameterMap>
  	
 	<parameterMap id="cursoId" class="CursoDTO">
  		<parameter property="id"/>
  	</parameterMap> 
  	
  	<parameterMap id="datosAlumnoSanitario"
class="AlumnoDTO">
  		<parameter property="id"/>
  		<parameter property="id"/>  		
  		<parameter property="sanitario"/>  		
  	</parameterMap> 	

    <!-- 
   
=================================================================
    ======================== RESULTMAP
==============================
   
=================================================================
    -->

	<resultMap id="curso_resultado"  class="CursoDTO">
		<result property="id"			column="CUR_ID" />
		<result property="nombre"		column="CUR_NOMBRE" /> 
		<result property="temario"		column="CUR_TEMARIO" /> 
		<result property="creditos"		column="CUR_CREDITOS"
/>
		<result property="horas"		column="CUR_NUMHORAS" />
		<result property="sanitario"	column="CUR_SANITARIO"
/>
		<result property="precio"		column="CUR_PRECIO" />
		<result property="codigo"		column="CUR_CODIGO" />		
    </resultMap>
    
	<resultMap id="curso_resultado_para_lista" 
class="CursoDTO">
		<result property="id"			column="CUR_ID" />
		<result property="nombre"		column="CUR_NOMBRE" /> 
		<result property="codigo"		column="CUR_CODIGO" />		
		<result property="sanitario"	column="CUR_SANITARIO"
/>
    </resultMap>

   <!-- 
   
=================================================================
    ======================== CONSULTAS
==============================
   
=================================================================
    -->
     <select  id="getCursos" resultClass="CursoDTO"
cacheModel="curso_cache">    
        SELECT CUR_ID AS id, 
			CUR_NOMBRE AS nombre, 
			CUR_TEMARIO AS temario, 
			CUR_CREDITOS AS creditos, 
			CUR_SANITARIO AS sanitario, 
			CUR_NUMHORAS AS horas, 
			CUR_PRECIO AS precio,
			CUR_CODIGO AS codigo
		FROM CURSO  	
    </select>

    <select id="getCursosPorTipo"
parameterMap="tipoSanitario"
resultMap="curso_resultado">
    	SELECT CUR_ID, 
			CUR_NOMBRE, 
			CUR_TEMARIO, 
			CUR_CREDITOS, 
			CUR_SANITARIO, 
			CUR_NUMHORAS, 
			CUR_PRECIO,
			CUR_CODIGO
		FROM CURSO  
        <dynamic prepend="where"> 
            <isNotNull prepend="AND"
property="sanitario"> 
		        CUR_SANITARIO = #sanitario#
            </isNotNull> 
        </dynamic> 
    </select>   
    
    <select id="getTipoDeCurso" parameterClass="int"
resultClass="java.lang.String">
    	SELECT CUR_SANITARIO
		FROM CURSO  
	    WHERE CUR_ID = #value#
    </select>       
    
	<select id="getCursoPorID" parameterClass="int"
resultMap="curso_resultado">
    	SELECT CUR_ID, 
			CUR_NOMBRE, 
			CUR_TEMARIO, 
			CUR_CREDITOS, 
			CUR_SANITARIO, 
			CUR_NUMHORAS, 
			CUR_PRECIO,
			CUR_CODIGO
		FROM CURSO  
	    WHERE CUR_ID = #value#
    </select> 
   
   
    <select
id="selectCursosNoSeleccionadosEnUnPeriodo"
parameterClass="int"
resultMap="curso_resultado_para_lista">
    	SELECT CUR_ID, 
	    	CUR_CODIGO,
			CUR_NOMBRE,
			CUR_SANITARIO
		FROM CURSO
	    WHERE CUR_ID NOT IN (SELECT CURPER_CURSO 
	    					 FROM CURSO_PERIODOLECTIVO 
	    					 WHERE CURPER_PERIODO = #value#)
	    ORDER BY CUR_SANITARIO,CUR_NOMBRE
    </select>

    <select id="selectCursosNoCompradosPorAlumno"
parameterMap="datosAlumnoSanitario"
resultMap="curso_resultado">
    	SELECT CUR_ID, 
			CUR_NOMBRE, 
			CUR_TEMARIO, 
			CUR_CREDITOS, 
			CUR_SANITARIO, 
			CUR_NUMHORAS, 
			CUR_PRECIO,
			CUR_CODIGO
		FROM CURSO, V_CURSOSPERIODOACTUAL
		WHERE CUR_ID NOT IN(
			<!--  CURSOS QUE NO ESTEN YA COMPRADOS EN EL
PERIODO LECTIVO ACTUAL -->
				SELECT CCPL_CURSO
				FROM COMPRA, COMPRA_CURSO_PERIODOLECTIVO
				WHERE COM_ALUMNO = ?
				AND COM_ESTADO IN ('A','E')
				AND CCPL_COMPRA = COM_ID
				AND CCPL_PERIODO = (SELECT PER_ID 
									FROM PERIODOLECTIVO 
									WHERE PER_FEC_INICIO <![CDATA[<=]]> SYSDATE 
									AND PER_FEC_FIN>=SYSDATE
									)
			)
		AND CUR_ID NOT IN (
			<!--  CURSOS APROBADOS ANTERIORMENTE -->
			SELECT CUR_ID
			FROM CURSO, EXAMEN, PRUEBAEXAMEN,
CURSO_PERIODOLECTIVO
			WHERE CUR_ID=EXA_CURSO
			AND EXA_ID=PEXA_EXAMEN
			AND PEXA_ESTADO= 'AP'
			AND PEXA_ALUMNO = ?
			AND CURPER_CURSO=CUR_ID
			AND CURPER_PERIODO IN (SELECT PER_ID 
									FROM PERIODOLECTIVO 
									WHERE PER_FEC_INICIO <![CDATA[<]]> SYSDATE 
									AND PER_FEC_FIN<![CDATA[<]]>SYSDATE)
		)		
		AND CUR_SANITARIO=? 
		AND CPA_CURSO = CUR_ID  
    </select>
    <!-- 
   
==============================================================
    ======================== INSERT
==============================
   
==============================================================
    -->
    
    <insert id="insertCurso"
parameterClass="CursoDTO">
    	<selectKey resultClass="int" keyProperty="id">
			SELECT CURSO_SEQ.NEXTVAL AS ID
			FROM DUAL    	
    	</selectKey>
        INSERT INTO CURSO ( CUR_ID, CUR_NOMBRE,
CUR_TEMARIO, CUR_CREDITOS, 
        					CUR_NUMHORAS, CUR_SANITARIO, CUR_PRECIO,
CUR_CODIGO)
        VALUES  ( #id#, #nombre#, #temario:VARCHAR#,
#creditos#, #horas#, #sanitario#, 
        		#precio#, #codigo# )
    </insert>
    
    <!-- 
   
===============================================================
      
    ======================== UPDATES
==============================
   
===============================================================
      
    -->

    <statement   id="updateCurso"
parameterClass="CursoDTO">
        UPDATE CURSO 
        SET CUR_NOMBRE= #nombre#, CUR_TEMARIO=
#temario:VARCHAR#, 
        	CUR_CREDITOS= #creditos#, CUR_NUMHORAS=
#horas#, CUR_SANITARIO= #sanitario#,
        	CUR_PRECIO= #precio#, CUR_CODIGO= #codigo#
        WHERE CUR_ID = #id# 
    </statement>
    
    <!-- 
   
===============================================================
      
    ======================== DELETES
==============================
   
===============================================================
  
    -->
    <delete id="deleteCursoPorID"
parameterClass="CursoDTO">
    	DELETE FROM CURSO WHERE CUR_ID = #id#
    </delete>   
</sqlMap>

I can attach all others xml files and a class to prove
the files.
Thanks a lot.



		
______________________________________________ 
Renovamos el Correo Yahoo! 
Nuevos servicios, más seguridad 
http://correo.yahoo.es

Re: com.ibatis.common.exception.NestedRuntimeException: Error parsing XPath '/sqlMapConfig/sqlMap'

Posted by Larry Meadors <la...@gmail.com>.
Can you send your xml file as an attachment, and also provide a stack trace?

Larry


On 8/25/05, Cesar Villar <ce...@yahoo.es> wrote:
> Hi evereybody!!
> I have a dao layer defined in my sql-map-config with
> several sqlMaps. Recently, when i try to access to
> this layer i get this error:
> - AbstractUnafeDAO static block:
> com.ibatis.common.exception.NestedRuntimeException:
> Error occurred.  Cause:
> com.ibatis.common.xml.NodeletException: Error parsing
> XML.  Cause:
> com.ibatis.common.exception.NestedRuntimeException:
> Error parsing XPath '/sqlMapConfig/sqlMap'.  Cause:
> com.ibatis.common.xml.NodeletException: Error parsing
> XML.  Cause: org.xml.sax.SAXParseException: Falta
> elemento de raíz de documento.
> 
> I've tried to delete all sqlMap references from the
> sql-map-config and included one by one. I discovered
> that only with a few got this error. So I clear the
> content of these XML archives with only
> <sqlMap></sqlMap>. But i'm having the same error.
> 
> ¿What can I do? I have no idea to resolve it.
> Thanks a lot
> 
> 
> 
> ______________________________________________
> Renovamos el Correo Yahoo!
> Nuevos servicios, más seguridad
> http://correo.yahoo.es
>