Ibatis -sqlMap

6 respostas
M

Olá,

Estou começando a usar o ibatis, e no primeiro exemplo que fiz usei o 2.2... aí vi que tem o 2.3 e resolvi fazer o upgrade. Mas agora a coisa não funciona mais... segue erro e códigos

Estou usando o JDev e PostGre.

Erro:

java.lang.RuntimeException: Error occurred. Cause: com.ibatis.common.xml.NodeletException: Error parsing XML. Cause: java.lang.RuntimeException: Error parsing XPath '/sqlMapConfig/sqlMap'. Cause: com.ibatis.common.xml.NodeletException: Error parsing XML. Cause: org.xml.sax.SAXParseException: The content of element type "sqlMap" must match "(typeAlias*|cacheModel*|resultMap*|parameterMap*|sql*|statement*|insert*|update*|delete*|select*|procedure*)+".
at com.ibatis.sqlmap.engine.builder.xml.SqlMapConfigParser.parse(SqlMapConfigParser.java:89)
at com.ibatis.sqlmap.client.SqlMapClientBuilder.buildSqlMapClient(SqlMapClientBuilder.java:63)
at bean.MapeiaSql.(MapeiaSql.java:21)
at action.Servico.(Servico.java:23)
at action.Servico.main(Servico.java:151)
Caused by: com.ibatis.common.xml.NodeletException: Error parsing XML. Cause: java.lang.RuntimeException: Error parsing XPath '/sqlMapConfig/sqlMap'. Cause: com.ibatis.common.xml.NodeletException: Error parsing XML. Cause: org.xml.sax.SAXParseException: The content of element type "sqlMap" must match "(typeAlias*|cacheModel*|resultMap*|parameterMap*|sql*|statement*|insert*|update*|delete*|select*|procedure*)+".
at com.ibatis.common.xml.NodeletParser.parse(NodeletParser.java:53)
at com.ibatis.sqlmap.engine.builder.xml.SqlMapConfigParser.parse(SqlMapConfigParser.java:86)
... 4 more
Caused by: java.lang.RuntimeException: Error parsing XPath '/sqlMapConfig/sqlMap'. Cause: com.ibatis.common.xml.NodeletException: Error parsing XML. Cause: org.xml.sax.SAXParseException: The content of element type "sqlMap" must match "(typeAlias*|cacheModel*|resultMap*|parameterMap*|sql*|statement*|insert*|update*|delete*|select*|procedure*)+".
at com.ibatis.common.xml.NodeletParser.processNodelet(NodeletParser.java:123)
at com.ibatis.common.xml.NodeletParser.process(NodeletParser.java:84)
at com.ibatis.common.xml.NodeletParser.process(NodeletParser.java:102)
at com.ibatis.common.xml.NodeletParser.parse(NodeletParser.java:72)
at com.ibatis.common.xml.NodeletParser.parse(NodeletParser.java:51)
... 5 more
Caused by: com.ibatis.common.xml.NodeletException: Error parsing XML. Cause: org.xml.sax.SAXParseException: The content of element type "sqlMap" must match "(typeAlias*|cacheModel*|resultMap*|parameterMap*|sql*|statement*|insert*|update*|delete*|select*|procedure*)+".
at com.ibatis.common.xml.NodeletParser.parse(NodeletParser.java:53)
at com.ibatis.sqlmap.engine.builder.xml.SqlMapParser.parse(SqlMapParser.java:51)
at com.ibatis.sqlmap.engine.builder.xml.SqlMapConfigParser$11.process(SqlMapConfigParser.java:410)
at com.ibatis.common.xml.NodeletParser.processNodelet(NodeletParser.java:121)
... 9 more
Caused by: org.xml.sax.SAXParseException: The content of element type "sqlMap" must match "(typeAlias*|cacheModel*|resultMap*|parameterMap*|sql*|statement*|insert*|update*|delete*|select*|procedure*)+".
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:236)
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:172)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:382)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:316)
at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.handleEndElement(XMLDTDValidator.java:2048)
at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.endElement(XMLDTDValidator.java:932)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(XMLDocumentFragmentScannerImpl.java:1241)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(XMLDocumentFragmentScannerImpl.java:1685)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:368)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:834)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:764)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:148)
at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:250)
at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:292)
at com.ibatis.common.xml.NodeletParser.createDocument(NodeletParser.java:157)
at com.ibatis.common.xml.NodeletParser.parse(NodeletParser.java:50)
... 12 more
Exception in thread "main" java.lang.ExceptionInInitializerError
at action.Servico.(Servico.java:23)
at action.Servico.main(Servico.java:151)
Caused by: java.lang.RuntimeException: Erro class. Cause: java.lang.RuntimeException: Error occurred. Cause: com.ibatis.common.xml.NodeletException: Error parsing XML. Cause: java.lang.RuntimeException: Error parsing XPath '/sqlMapConfig/sqlMap'. Cause: com.ibatis.common.xml.NodeletException: Error parsing XML. Cause: org.xml.sax.SAXParseException: The content of element type "sqlMap" must match "(typeAlias*|cacheModel*|resultMap*|parameterMap*|sql*|statement*|insert*|update*|delete*|select*|procedure*)+".
at bean.MapeiaSql.(MapeiaSql.java:29)
... 2 more

- MapeiaSlq

package bean;

import com.ibatis.common.resources.Resources;
import com.ibatis.sqlmap.client.SqlMapClient;
import com.ibatis.sqlmap.client.SqlMapClientBuilder;


import java.io.Reader;



public class MapeiaSql {
    
  private static final SqlMapClient sqlMap;

  static {

    try {
        String resource = "SqlMapConfig.xml";
        Reader reader = Resources.getResourceAsReader (resource);
        sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader);
      } catch (Exception e) {

      e.printStackTrace();
        throw new RuntimeException (" Erro class. Cause: " + e);
    }
    }

    public static SqlMapClient getSqlMapInstance () {
      return sqlMap;
    }
    

}
- SqlMapConfig
<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE sqlMapConfig
PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"
"http://ibatis.apache.org/dtd/sql-map-config-2.dtd">
<!-- Always ensure to use the correct XML header as above! -->

<sqlMapConfig>
<!-- The properties (name=value) in the file specified here can be used placeholders in this config
file (e.g. ?${driver}?. The file is usually relative to the classpath and is optional. -->

<properties resource="SqlMapConfig.properties" />

<!-- These settings control SqlMap configuration details, primarily to do with transaction
management. They are all optional (see the Developer Guide for more). -->
<settings
cacheModelsEnabled="true"
enhancementEnabled="true"
lazyLoadingEnabled="true"
maxRequests="32"
maxSessions="10"
maxTransactions="5"
useStatementNamespaces="false"
/>
<!-- Type aliases allow you to use a shorter name for long fully qualified class names. -->
<!--<typeAlias alias="order" type="testdomain.Order"/> -->

<!-- Configure a datasource to use with this SQL Map using SimpleDataSource.
Notice the use of the properties from the above resource -->
<transactionManager type="JDBC" >
<dataSource type="SIMPLE">
<property name="JDBC.Driver" value="${driver}"/>
<property name="JDBC.ConnectionURL" value="${url}"/>
<property name="JDBC.Username" value="${username}"/>
<property name="JDBC.Password" value="${password}"/>
</dataSource>
</transactionManager>

<!-- Identify all SQL Map XML files to be loaded by this SQL map. Notice the paths
are relative to the classpath. For now, we only have one? -->
<sqlMap resource="Teste.xml"/>
</sqlMapConfig>
estou chamando assim:
if (MapeiaSql.getSqlMapInstance()!= null) {
          System.out.println("SqlMap não é nula...!");
        }

valeu
fico no aguardo.
t+

6 Respostas

W

Falta o resto do código para ver se não há dependncias de arquivos .jar, mais se vc. olhar a documentação verá que alguns arquivos .jar estão “deprecad” inclusive o iBATIS-DAC. E na versão^iBATIS 2.3 é somente usar o arquivo “ibatis-2.3.0.677.jar” e outras dependências em seu projeto.
sds.

M

Valeu William… mas eu consegui resolver o problema.

Além de trocar o referido .jar eu tinho deixado um erro no Teste.xml, aí dava erro e eu pensava que era no MapearSql.

Agora sei que ele verifica todos os sqlMap ao passar pelo sqlMapConfig.

Valeu

Abraço
Marcio

W


Logo terá uma versão para os paises de lingua Portuguesa.

M

William
foi daí mesmo que tirei o meu exemplo…

vamos ficar no agurdo da versão Português. Ela tem data?

t+

Abraço

W

Não tem não, mais vamos tentar postar p/ final de julho ok…

A

William, quando voce fala “vamos…”
Você esta participando da Tradução?

Criado 4 de julho de 2007
Ultima resposta 18 de jul. de 2007
Respostas 6
Participantes 3