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]
