I just made changes to the tutorial wiki. You can review them as you have
time or feel total confidence and completely ignore them. I'll be making
more additions as I have time (posting personal phone numbers, confidential
information from the Pentagon, and the secret crabby patty formula) which
you can also review at your leisure. 

Cliff

mraible wrote:
> 
> It's probably not in the tutorial because we expect you to use 2.0-m5.
> Since you've encountered this issue, it's likely others will too. We
> should add a note to the tutorial and M5 release notes. Please add an
> issue to JIRA or update the wiki yourself if you like.
> 
> Thanks!
> 
> Matt
> 
> 
> On 5/9/07, Clifton <[EMAIL PROTECTED]> wrote:
>>
>> Thanx Matt,
>>
>> I put an excludes entry for sql-map-config.xml and that fixed it! Was
>> that a
>> step somewhere in the tutorial that I missed or is that something that I
>> was
>> supposed to do naturally? I only ask because I'm trying to get
>> comfortable
>> and proficient enough to use your framework full time.
>>
>> Cliff
>>
>> mraible wrote:
>> >
>> > It looks like it might not be picking up your sql-map-config.xml.
>> > It's possibly loading the one from AppFuse instead.  Make sure
>> > sql-map-config.xml is excluded in the warpath plugin settings in
>> > pom.xml.
>> >
>> > You could also look in the appfuse-ibatis.jar to see if there's a
>> > sql-map-config.xml in it (in your local repo).  If there is, delete it
>> > and see if yours is picked up instead.
>> >
>> > Matt
>> >
>> > On 5/8/07, Clifton <[EMAIL PROTECTED]> wrote:
>> >>
>> >> Ok, I'm on the last step on this page and still having trouble! Yes, I
>> >> made
>> >> my own person object but my package name is different than the
>> examples.
>> >> That could be the source of my latest problem. I use com.craig as my
>> root
>> >> package. Now when I run mvn test I get:
>> >> Running com.craig.dao.PersonDaoTest
>> >> AbandonedObjectPool is used
>> >> ([EMAIL PROTECTED])
>> >>    LogAbandoned: false
>> >>    RemoveAbandoned: true
>> >>    RemoveAbandonedTimeout: 60
>> >> Tests run: 2, Failures: 0, Errors: 2, Skipped: 0, Time elapsed: 2.56
>> sec
>> >> <<<
>> >> FAILURE!
>> >> testFindPersonByLastName(com.craig.dao.PersonDaoTest)  Time elapsed:
>> >> 2.453
>> >> sec  <<< ERROR!
>> >> com.ibatis.sqlmap.client.SqlMapException: There is no statement named
>> >> findByLastName in this SqlMap.
>> >>         at
>> >>
>> com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.getMappedStatement(SqlMapExecutorDelegate.java:293)
>> >>         at
>> >>
>> com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(SqlMapExecutorDelegate.java:606)
>> >>         at
>> >>
>> com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(SqlMapExecutorDelegate.java:589)
>> >>         at
>> >>
>> com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.queryForList(SqlMapSessionImpl.java:118)
>> >>         at
>> >>
>> org.springframework.orm.ibatis.SqlMapClientTemplate$3.doInSqlMapClient(SqlMapClientTemplate.java:268)
>> >>         at
>> >>
>> org.springframework.orm.ibatis.SqlMapClientTemplate.execute(SqlMapClientTemplate.java:193)
>> >>         at
>> >>
>> org.springframework.orm.ibatis.SqlMapClientTemplate.executeWithListResult(SqlMapClientTemplate.java:219)
>> >>         at
>> >>
>> org.springframework.orm.ibatis.SqlMapClientTemplate.queryForList(SqlMapClientTemplate.java:266)
>> >>         at
>> >>
>> com.craig.dao.ibatis.PersonDaoiBatis.findByLastName(PersonDaoiBatis.java:21)
>> >>         at
>> >>
>> com.craig.dao.PersonDaoTest.testFindPersonByLastName(PersonDaoTest.java:20)
>> >>         at
>> >>
>> com.craig.dao.PersonDaoTest.testFindPersonByLastName(PersonDaoTest.java:20)
>> >>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>> >>         at
>> >>
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>> >>         at
>> >>
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>> >>         at java.lang.reflect.Method.invoke(Method.java:585)
>> >>         at junit.framework.TestCase.runTest(TestCase.java:164)
>> >>         at junit.framework.TestCase.runBare(TestCase.java:130)
>> >>         at
>> >>
>> org.springframework.test.ConditionalTestCase.runBare(ConditionalTestCase.java:69)
>> >>         at junit.framework.TestResult$1.protect(TestResult.java:106)
>> >>         at
>> junit.framework.TestResult.runProtected(TestResult.java:124)
>> >>         at junit.framework.TestResult.run(TestResult.java:109)
>> >>         at junit.framework.TestCase.run(TestCase.java:120)
>> >>         at junit.framework.TestSuite.runTest(TestSuite.java:230)
>> >>         at junit.framework.TestSuite.run(TestSuite.java:225)
>> >>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>> >>         at
>> >>
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>> >>         at
>> >>
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>> >>         at java.lang.reflect.Method.invoke(Method.java:585)
>> >>         at
>> >>
>> org.apache.maven.surefire.junit.JUnitTestSet.execute(JUnitTestSet.java:213)
>> >>         at
>> >>
>> org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet(AbstractDirectoryTestSuite.java:138)
>> >>         at
>> >>
>> org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java:125)
>> >>         at org.apache.maven.surefire.Surefire.run(Surefire.java:132)
>> >>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>> >>         at
>> >>
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>> >>         at
>> >>
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>> >>         at java.lang.reflect.Method.invoke(Method.java:585)
>> >>         at
>> >>
>> org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:290)
>> >>         at
>> >>
>> org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:818)
>> >>
>> >> testAddAndRemovePerson(com.craig.dao.PersonDaoTest)  Time elapsed:
>> 0.015
>> >> sec
>> >> <<< ERROR!
>> >> com.ibatis.sqlmap.client.SqlMapException: There is no statement named
>> >> addPerson in this SqlMap.
>> >>         at
>> >>
>> com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.getMappedStatement(SqlMapExecutorDelegate.java:293)
>> >>         at
>> >>
>> com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.insert(SqlMapExecutorDelegate.java:429)
>> >>         at
>> >>
>> com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.insert(SqlMapSessionImpl.java:82)
>> >>         at
>> >>
>> org.springframework.orm.ibatis.SqlMapClientTemplate$9.doInSqlMapClient(SqlMapClientTemplate.java:369)
>> >>         at
>> >>
>> org.springframework.orm.ibatis.SqlMapClientTemplate.execute(SqlMapClientTemplate.java:193)
>> >>         at
>> >>
>> org.springframework.orm.ibatis.SqlMapClientTemplate.insert(SqlMapClientTemplate.java:367)
>> >>         at
>> >> org.appfuse.dao.ibatis.GenericDaoiBatis.save(GenericDaoiBatis.java:75)
>> >>         at
>> >>
>> com.craig.dao.PersonDaoTest.testAddAndRemovePerson(PersonDaoTest.java:30)
>> >>         at
>> >>
>> com.craig.dao.PersonDaoTest.testAddAndRemovePerson(PersonDaoTest.java:30)
>> >>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>> >>         at
>> >>
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>> >>         at
>> >>
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>> >>         at java.lang.reflect.Method.invoke(Method.java:585)
>> >>         at junit.framework.TestCase.runTest(TestCase.java:164)
>> >>         at junit.framework.TestCase.runBare(TestCase.java:130)
>> >>         at
>> >>
>> org.springframework.test.ConditionalTestCase.runBare(ConditionalTestCase.java:69)
>> >>         at junit.framework.TestResult$1.protect(TestResult.java:106)
>> >>         at
>> junit.framework.TestResult.runProtected(TestResult.java:124)
>> >>         at junit.framework.TestResult.run(TestResult.java:109)
>> >>         at junit.framework.TestCase.run(TestCase.java:120)
>> >>         at junit.framework.TestSuite.runTest(TestSuite.java:230)
>> >>         at junit.framework.TestSuite.run(TestSuite.java:225)
>> >>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>> >>         at
>> >>
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>> >>         at
>> >>
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>> >>         at java.lang.reflect.Method.invoke(Method.java:585)
>> >>         at
>> >>
>> org.apache.maven.surefire.junit.JUnitTestSet.execute(JUnitTestSet.java:213)
>> >>         at
>> >>
>> org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet(AbstractDirectoryTestSuite.java:138)
>> >>         at
>> >>
>> org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java:125)
>> >>         at org.apache.maven.surefire.Surefire.run(Surefire.java:132)
>> >>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>> >>         at
>> >>
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>> >>         at
>> >>
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>> >>         at java.lang.reflect.Method.invoke(Method.java:585)
>> >>         at
>> >>
>> org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:290)
>> >>         at
>> >>
>> org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:818)
>> >>
>> >>
>> >> Results :
>> >>
>> >> Tests in error:
>> >>   testFindPersonByLastName(com.craig.dao.PersonDaoTest)
>> >>   testAddAndRemovePerson(com.craig.dao.PersonDaoTest)
>> >>
>> >> Tests run: 3, Failures: 0, Errors: 2, Skipped: 0
>> >>
>> >> Here's my sqlMap:
>> >> <sqlMap namespace="PersonSQL">
>> >>     <typeAlias alias="person" type="com.craig.model.Person"/>
>> >>
>> >>     <parameterMap id="addParam" class="person">
>> >>         <parameter property="firstName" jdbcType="VARCHAR"
>> >> javaType="java.lang.String"/>
>> >>         <parameter property="lastName" jdbcType="VARCHAR"
>> >> javaType="java.lang.String"/>
>> >>     </parameterMap>
>> >>
>> >>     <parameterMap id="updateParam" class="person">
>> >>         <parameter property="id" jdbcType="INTEGER"
>> >> javaType="java.lang.Long"/>
>> >>         <parameter property="firstName" jdbcType="VARCHAR"
>> >> javaType="java.lang.String"/>
>> >>         <parameter property="lastName" jdbcType="VARCHAR"
>> >> javaType="java.lang.String"/>
>> >>     </parameterMap>
>> >>
>> >>     <resultMap id="personResult" class="person">
>> >>         <result property="id" column="id"/>
>> >>         <result property="firstName" column="first_name"/>
>> >>         <result property="lastName" column="last_name"/>
>> >>     </resultMap>
>> >>
>> >>     <select id="getPersons" resultMap="personResult">
>> >>         <![CDATA[
>> >>         select * from person
>> >>     ]]>
>> >>     </select>
>> >>
>> >>     <select id="getPerson" resultMap="personResult">
>> >>         <![CDATA[
>> >>         select * from person where id = #value#
>> >>     ]]>
>> >>     </select>
>> >>
>> >>     <select id="findByLastName" resultMap="personResult">
>> >>         select * from person where last_name = #value#
>> >>     </select>
>> >>
>> >>     <insert id="addPerson" parameterMap="addParam">
>> >>         <![CDATA[
>> >>             insert into person (first_name,last_name) values ( ?,? )
>> >>         ]]>
>> >>         <selectKey resultClass="java.lang.Long" keyProperty="id"
>> >> type="post">
>> >>             SELECT LAST_INSERT_ID() AS id
>> >>         </selectKey>
>> >>     </insert>
>> >>
>> >>     <update id="updatePerson" parameterMap="updateParam">
>> >>         <![CDATA[
>> >>         update person set first_name = ?, last_name = ? where id = ?
>> >>     ]]>
>> >>     </update>
>> >>
>> >>     <delete id="deletePerson">
>> >>         <![CDATA[
>> >>         delete from person where id = #value#
>> >>     ]]>
>> >>     </delete>
>> >> </sqlMap>
>> >>
>> >> And here's my Spring bean def:
>> >>     <bean id="personDao" class="com.craig.dao.ibatis.PersonDaoiBatis">
>> >>         <property name="dataSource" ref="dataSource"/>
>> >>         <property name="sqlMapClient" ref="sqlMapClient"/>
>> >>     </bean>
>> >>
>> >> What am I missing now?
>> >>
>> >> Cliff wrote:
>> >> >
>> >> > I'm following the Spring/iBatis tutorial and I'm at the step where
>> you
>> >> run
>> >> > the PersonDaoTest using the GenericDao. The error I get is different
>> >> from
>> >> > the error the tutorial expects. I get:
>> >> >
>> >> > AbandonedObjectPool is used
>> >> > ([EMAIL PROTECTED])
>> >> >    LogAbandoned: false
>> >> >    RemoveAbandoned: true
>> >> >    RemoveAbandonedTimeout: 60
>> >> >
>> >> > org.springframework.beans.factory.BeanCreationException: Error
>> creating
>> >> > bean with name 'universalDao' defined in URL
>> >> >
>> >>
>> [jar:file:/home/ccc/.m2/repository/org/appfuse/appfuse-ibatis/2.0-m5-SNAPSHOT/appfuse-ibatis-2.0-m5-SNAPSHOT.jar!/applicationContext-dao.xml]:
>> >> > Cannot resolve reference to bean 'sqlMapClient' while setting bean
>> >> > property 'sqlMapClient'; nested exception is
>> >> > org.springframework.beans.factory.BeanCreationException: Error
>> creating
>> >> > bean with name 'sqlMapClient' defined in URL
>> >> >
>> >>
>> [jar:file:/home/ccc/.m2/repository/org/appfuse/appfuse-ibatis/2.0-m5-SNAPSHOT/appfuse-ibatis-2.0-m5-SNAPSHOT.jar!/applicationContext-dao.xml]:
>> >> > Invocation of init method failed; nested exception is
>> >> > 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:
>> >> > java.lang.RuntimeException: Error parsing XPath '/sqlMap/resultMap'.
>> >> > Cause: java.lang.RuntimeException: Error configuring Result.  Could
>> not
>> >> > set ResultClass.  Cause: java.lang.ClassNotFoundException:
>> >> > org.appfuse.tutorial.model.Person
>> >> > Caused by: org.springframework.beans.factory.BeanCreationException:
>> >> Error
>> >> > creating bean with name 'sqlMapClient' defined in URL
>> >> >
>> >>
>> [jar:file:/home/ccc/.m2/repository/org/appfuse/appfuse-ibatis/2.0-m5-SNAPSHOT/appfuse-ibatis-2.0-m5-SNAPSHOT.jar!/applicationContext-dao.xml]:
>> >> > Invocation of init method failed; nested exception is
>> >> > 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:
>> >> > java.lang.RuntimeException: Error parsing XPath '/sqlMap/resultMap'.
>> >> > Cause: java.lang.RuntimeException: Error configuring Result.  Could
>> not
>> >> > set ResultClass.  Cause: java.lang.ClassNotFoundException:
>> >> > org.appfuse.tutorial.model.Person
>> >> > Caused by: 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:
>> >> > java.lang.RuntimeException: Error parsing XPath '/sqlMap/resultMap'.
>> >> > Cause: java.lang.RuntimeException: Error configuring Result.  Could
>> not
>> >> > set ResultClass.  Cause: java.lang.ClassNotFoundException:
>> >> > org.appfuse.tutorial.model.Person
>> >> >       at
>> >> >
>> >>
>> com.ibatis.sqlmap.engine.builder.xml.SqlMapConfigParser.parse(SqlMapConfigParser.java:109)
>> >> >       at
>> >> >
>> >>
>> com.ibatis.sqlmap.client.SqlMapClientBuilder.buildSqlMapClient(SqlMapClientBuilder.java:90)
>> >> >
>> >> > I can see the error is from the missing sqlMapClient bean definition
>> in
>> >> > applicationContext.xml. I noticed the problem right when I created
>> the
>> >> > file and copied the contents from the tutorial as Idea was
>> highlighting
>> >> > it. (I also noted how the dataSource was defined in another spring
>> bean
>> >> > def file so I ignored that error.) I'm looking back over the
>> tutorial
>> >> and
>> >> > I don't see where I was supposed to define this bean. So now I ask
>> did
>> >> I
>> >> > miss something or is the tutorial leaving out a step?
>> >> >
>> >>
>> >> --
>> >> View this message in context:
>> >> http://www.nabble.com/Did-I-miss-a-step--tf3711975s2369.html#a10383761
>> >> Sent from the AppFuse - User mailing list archive at Nabble.com.
>> >>
>> >> ---------------------------------------------------------------------
>> >> To unsubscribe, e-mail: [EMAIL PROTECTED]
>> >> For additional commands, e-mail: [EMAIL PROTECTED]
>> >>
>> >>
>> >
>> >
>> > --
>> > http://raibledesigns.com
>> >
>> > ---------------------------------------------------------------------
>> > To unsubscribe, e-mail: [EMAIL PROTECTED]
>> > For additional commands, e-mail: [EMAIL PROTECTED]
>> >
>> >
>> >
>>
>> --
>> View this message in context:
>> http://www.nabble.com/Did-I-miss-a-step--tf3711975s2369.html#a10393226
>> Sent from the AppFuse - User mailing list archive at Nabble.com.
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>> For additional commands, e-mail: [EMAIL PROTECTED]
>>
>>
> 
> 
> -- 
> http://raibledesigns.com
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
> 
> 

-- 
View this message in context: 
http://www.nabble.com/Did-I-miss-a-step--tf3711975s2369.html#a10396271
Sent from the AppFuse - User mailing list archive at Nabble.com.

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to