Hello and thanks in advice

I'm using ibatis java 2.1.5.

I've found in the mail-archive a link to a map example that use discriminator tag inside a resulMap
The file is named Documents.xml

I've tried to build an example over this map, but i'm getting errors during the building of daoManager
The error is :

13:21:39,643 INFO [STDOUT] com.ibatis.dao.client.DaoException: Error while configuring DaoManager. Cause: com.ibatis.sqlmap.client.SqlMapException: There was an error while building the SqlMap instance. --- The error occurred in com/taipan/monitor/persistence/sql/Documents.xml. --- The error occurred while building a result map. --- Check the null mapping of the Documents.document result map. --- Check the result mapping property type or name. --- Cause: java.lang.NullPointerException
Caused by: java.lang.NullPointerException
Caused by: com.ibatis.sqlmap.client.SqlMapException: There was an error while building the SqlMap instance. --- The error occurred in com/taipan/monitor/persistence/sql/Documents.xml. --- The error occurred while building a result map. --- Check the null mapping of the Documents.document result map. --- Check the result mapping property type or name. --- Cause: java.lang.NullPointerException
Caused by: java.lang.NullPointerException
13:21:39,653 INFO [STDOUT] at com.ibatis.dao.engine.builder.xml.XmlDaoManagerBuilder.buildDaoManager(XmlDaoManagerBuilder.java:112) 13:21:39,663 INFO [STDOUT] at com.ibatis.dao.engine.builder.xml.XmlDaoManagerBuilder.buildDaoManager(XmlDaoManagerBuilder.java:66) 13:21:39,663 INFO [STDOUT] at com.ibatis.dao.client.DaoManagerBuilder.buildDaoManager(DaoManagerBuilder.java:37) 13:21:39,663 INFO [STDOUT] at com.taipan.monitor.domain.logic.MonitorLogic.initDaoManager(MonitorLogic.java:35) 13:21:39,663 INFO [STDOUT] at com.taipan.monitor.domain.logic.MonitorLogic.<clinit>(MonitorLogic.java:27) 13:21:39,663 INFO [STDOUT] at com.taipan.monitor.service.CambioLavoroService.<init>(CambioLavoroService.java:48) 13:21:39,663 INFO [STDOUT] at com.taipan.monitor.service.CambioLavoroService.<clinit>(CambioLavoroService.java:32) 13:21:39,663 INFO [STDOUT] at com.taipan.monitor.presentation.action.ListaMacchineAction.<clinit>(ListaMacchineAction.java:27) 13:21:39,663 INFO [STDOUT] at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 13:21:39,663 INFO [STDOUT] at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) 13:21:39,663 INFO [STDOUT] at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) 13:21:39,663 INFO [STDOUT] at java.lang.reflect.Constructor.newInstance(Constructor.java:274) 13:21:39,663 INFO [STDOUT] at java.lang.Class.newInstance0(Class.java:308) 13:21:39,663 INFO [STDOUT] at java.lang.Class.newInstance(Class.java:261) 13:21:39,663 INFO [STDOUT] at org.apache.struts.util.RequestUtils.applicationInstance(RequestUtils.java:143) 13:21:39,663 INFO [STDOUT] at org.apache.struts.action.RequestProcessor.processActionCreate(RequestProcessor.java:280) 13:21:39,663 INFO [STDOUT] at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:218) 13:21:39,663 INFO [STDOUT] at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194) 13:21:39,663 INFO [STDOUT] at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414) 13:21:39,663 INFO [STDOUT] at javax.servlet.http.HttpServlet.service(HttpServlet.java:697) 13:21:39,663 INFO [STDOUT] at javax.servlet.http.HttpServlet.service(HttpServlet.java:810) 13:21:39,663 INFO [STDOUT] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) 13:21:39,663 INFO [STDOUT] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) 13:21:39,663 INFO [STDOUT] at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:81) 13:21:39,663 INFO [STDOUT] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) 13:21:39,663 INFO [STDOUT] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) 13:21:39,663 INFO [STDOUT] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) 13:21:39,663 INFO [STDOUT] at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178) 13:21:39,663 INFO [STDOUT] at org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipalValve.java:39) 13:21:39,663 INFO [STDOUT] at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:153) 13:21:39,663 INFO [STDOUT] at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:59) 13:21:39,663 INFO [STDOUT] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) 13:21:39,663 INFO [STDOUT] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) 13:21:39,663 INFO [STDOUT] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107) 13:21:39,663 INFO [STDOUT] at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) 13:21:39,663 INFO [STDOUT] at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856) 13:21:39,663 INFO [STDOUT] at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744) 13:21:39,663 INFO [STDOUT] at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527) 13:21:39,663 INFO [STDOUT] at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
13:21:39,663 INFO  [STDOUT]     at java.lang.Thread.run(Thread.java:534)

THe xml map file is:

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

<!DOCTYPE sqlMap
   PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN"
   "http://ibatis.apache.org/dtd/sql-map-2.dtd";>

<sqlMap namespace="Documents">
<resultMap id="document" class="testdomain.Document">
   <result property="id" column="DOCUMENT_ID"/>
   <result property="title" column="DOCUMENT_TITLE"/>
   <result property="type" column="DOCUMENT_TYPE"/>
   <discriminator column="DOCUMENT_TYPE" javaType="string" >
     <subMap value="Book" resultMap="book"/>
     <subMap value="Newspaper" resultMap="news"/>
   </discriminator>
 </resultMap>

 <resultMap id="book" class="testdomain.Book" extends="document">
   <result property="pages" column="DOCUMENT_PAGENUMBER"/>
 </resultMap>

 <resultMap id="news" class="testdomain.Magazine" extends="document">
   <result property="city" column="DOCUMENT_CITY"/>
 </resultMap>

 <select id="getDocuments" resultMap="document">
   select * from DOCUMENTS
 </select>

 <select id="getDocument" parameterClass="int" resultMap="document">
   select * from DOCUMENTS where DOCUMENT_ID = #id#
 </select>

 <insert id="insertDocument" parameterClass="testdomain.Document">
insert into DOCUMENTS (DOCUMENT_ID, DOCUMENT_TITLE, DOCUMENT_TYPE) values (#id#, #title#, #type#)
 </insert>

 <update id="updateDocument" parameterClass="testdomain.Document">
update DOCUMENTS set DOCUMENT_TITLE = #title#, DOCUMENT_TYPE = #type# where DOCUMENT_ID = #id#
 </update>

 <delete id="deleteDocument" parameterClass="testdomain.Document">
   delete from DOCUMENTS where DOCUMENT_ID = #id#
 </delete>

</sqlMap>

Any help is appreciated
Regards

Fabio Bongiovanni

Reply via email to