ibatis-user-java mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Niels Beekman" <n.beek...@wis.nl>
Subject RE: First sqlMap causing Parse Errors Please Assist
Date Tue, 22 Nov 2005 23:13:37 GMT
You cannot use the attribute "id" on the sqlMap-tag (hence the parser
complains that you are using an attribute that is not defined in the DTD
for that tag):

<sqlMap id="LabelValueSQL">

should just be:

<sqlMap>

Be sure to use a DTD-validating XML-editor, these errors are much harder
to debug without one.
Also, the DTD-locations have been changed (see mail archive), but I
don't know if the examples got changed yet...

Hope this helps,

Niels

-----Original Message-----
From: Scott Purcell [mailto:spurcell@vertisinc.com] 
Sent: dinsdag 22 november 2005 23:50
To: user-java@ibatis.apache.org
Subject: First sqlMap causing Parse Errors Please Assist

Hello,

I am just trying to get underway with some IBatis and I am running into
parse problems. The sqlMapConfig is straight from the PDF, supplied my
own DB props.

I have a servlet that  performs the parsing of config at startup. It
apparently gets thriough the sqlMapConfig and blows up with errors while
trying to read the LabelValueSQL.xml.  The error does not make sense as
I have an id for the sqlMap?

If someone could please look at this, it would make my day.

Thanks,
Scott


ERROR: INFO
 [ContainerBackgroundProcessor[StandardEngine[Catalina]]]
(ValidatorPlugIn.java:213) - Loading validation rules file from
'/WEB-INF/classes/com/mb/purcell/conf/validation.xml'
 INFO [http-80-Processor24] (?:?) -
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx
 INFO [http-80-Processor24] (?:?) -
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
ERROR [http-80-Processor24] (?:?) - BaseDAO 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: Attribute "id" must be declared for
element type "sqlMap".
Caused by: org.xml.sax.SAXParseException: Attribute "id" must be
declared for element type "sqlMap".
Caused by: com.ibatis.common.xml.NodeletException: Error parsing XML.
Cause: org.xml.sax.SAXParseException: Attribute "id" must be declared
for element type "sqlMap".
Caused by: org.xml.sax.SAXParseException: Attribute "id" must be
declared for element type "sqlMap".
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: Attribute "id" must be declared for
element type "sqlMap".
Caused by: org.xml.sax.SAXParseException: Attribute "id" must be
declared for element type "sqlMap".
Caused by: com.ibatis.common.xml.NodeletException: Error parsing XML.
Cause: org.xml.sax.SAXParseException: Attribute "id" must be declared
for element type "sqlMap".
Caused by: org.xml.sax.SAXParseException: Attribute "id" must be
declared for element type "sqlMap".
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: Attribute "id" must be declared for
element type "sqlMap".
Caused by: org.xml.sax.SAXParseException: Attribute "id" must be
declared for element type "sqlMap".
Caused by: com.ibatis.common.xml.NodeletException: Error parsing XML.
Cause: org.xml.sax.SAXParseException: Attribute "id" must be declared
for element type "sqlMap".
Caused by: org.xml.sax.SAXParseException: Attribute "id" must be
declared for element type "sqlMap".
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: Attribute "id" must be declared for
element type "sqlMap".
Caused by: org.xml.sax.SAXParseException: Attribute "id" must be
declared for element type "sqlMap".
Caused by: com.ibatis.common.xml.NodeletException: Error parsing XML.
Cause: org.xml.sax.SAXParseException: Attribute "id" must be declared
for element type "sqlMap".
Caused by: org.xml.sax.SAXParseException: Attribute "id" must be
declared for element type "sqlMap".
ERROR [http-80-Processor24] (ApplicationContext.java:662) - Servlet
/UPIbatis threw load() exception
javax.servlet.ServletException: Error instantiating servlet class
com.mb.purcell.SetupServlet
        at
org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.jav
a:1034)
        at
org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:900)
        at
org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.j
ava:3823)
        at
org.apache.catalina.core.StandardContext.start(StandardContext.java:4087
)
        at
org.apache.catalina.core.StandardContext.reload(StandardContext.java:292
0)
        at
org.apache.catalina.manager.ManagerServlet.reload(ManagerServlet.java:90
6)
        at
org.apache.catalina.manager.HTMLManagerServlet.reload(HTMLManagerServlet
.java:456)
        at
org.apache.catalina.manager.HTMLManagerServlet.doGet(HTMLManagerServlet.
java:98)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
tionFilterChain.java:252)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
erChain.java:173)
        at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValv
e.java:214)
        at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValv
e.java:178)
        at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(Authenticator
Base.java:482)
        at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java
:126)
        at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java
:105)
        at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.
java:107)
        at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:1
48)
        at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:82
5)
        at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processC
onnection(Http11Protocol.java:738)
        at
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint
.java:526)
        at
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollow
erWorkerThread.java:80)
        at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool
.java:684)
        at java.lang.Thread.run(Unknown Source)
 INFO [http-80-Processor24] (TilesPlugin.java:238) - Tiles definition
factory loaded for module ''.
 INFO [http-80-Processor24] (ValidatorPlugIn.java:213) - Loading
validation rules file from
'/WEB-INF/classes/com/mb/purcell/conf/validator-rules.xml'
 INFO [http-80-Processor24] (ValidatorPlugIn.java:213) - Loading
validation rules file from
'/WEB-INF/classes/com/mb/purcell/conf/validation.xml'



######################################## called at startup
###############################################3



    static {
        try {
 
log.info("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx");
            String resource = "com/conf/sqlMapConfig.xml";
            Reader reader = Resources.getResourceAsReader(resource);
            log.info("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA");
            log.debug("reader = "+reader );
            sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader);
            log.info("BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB");
            log.debug("sqlMap = "+sqlMap );
            reader.close();
        } catch (Exception ex) {
            log.error("BaseDAO static block: " + ex);
            throw new RuntimeException("Error Initializing BaseDAO :" +
ex);
        }


It apparently gets thriough my sqlMapConfig.xml without any problems.
But blows up apparently when trying to use the resource that is called
at bottom LabelValueSQL.xml


The culprit is here I bet, but I cannot figure it out
<!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN"
 "http://www.ibatis.com/dtd/sql-map-2.dtd">


<sqlMap id="LabelValueSQL">

    
    <cacheModel id="label_value_cache" type="STRONG">
        <flushInterval hours="48"/>
    </cacheModel>
     
    <resultMap id="label_value_result"
class="com.mb.purcell.LabelValue">
        <result property="value"                  column="id" />
        <result property="label"                  column="name" />
    </resultMap>
    
    <statement  id="selectAllCategories"
resultMap="label_value_result" cacheModel="label_value_cache">
        SELECT  id, name FROM item ORDER BY  id
    </statement>
     
</sqlMap>






sqlMapConfig.xml from pdf 2.0 Ibatis
<?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">

<!-- 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 relative to the classpath and is
completely optional. -->
<properties resource="com/mb/purcell/conf/database.properties" />
<!-- These settings control SqlMapClient configuration details,
primarily to do with transaction
management. They are all optional (more detail later in this document).
-->
<settings
cacheModelsEnabled="true"
enhancementEnabled="true"
lazyLoadingEnabled="true"
maxRequests="128"
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}"/>
<property name="JDBC.DefaultAutoCommit" value="true" />
<property name="Pool.MaximumActiveConnections" value="10"/>
<property name="Pool.MaximumIdleConnections" value="5"/>
<property name="Pool.MaximumCheckoutTime" value="120000"/>
<property name="Pool.TimeToWait" value="500"/>
<property name="Pool.PingQuery" value="select 1 from ACCOUNT"/>
<property name="Pool.PingEnabled" value="false"/>
<property name="Pool.PingConnectionsOlderThan" value="1"/>
<property name="Pool.PingConnectionsNotUsedFor" value="1"/>
</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="com/mb/purcell/sql/LabelValueSQL.xml" />

</sqlMapConfig>


Mime
View raw message