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

Reply via email to