| This is a common problem. You need to understand how ibatis maps the properties of an object. It uses the java bean specification.
I would try and change your map to look like....
<insert id="getPerson1" parameterClass="com.dwrtest.model.Employee" > insert into Test_Emp (NAME, EMPNO) values(#name#,#empNo#) </insert>
Notice the lower case on the "Name" and "EmpNo".
A side note ....
Watch how you manage your transaction. In this case if the sql threw an exception the transaction would hang. Make sure that you rollBack the XA in the catch block.
On May 3, 2006, at 9:36 AM, Akhil Kodali wrote: Hi,
I'm trying to use iBATIS over weblogic 8.1. I've attached the files.
Sorry for sending so many attachments.
The output error message is:
=========================================================== Caused by: com.ibatis.common.beans.ProbeException: There is no READABLE property named 'Name' in class 'com.dwrtest.model.Employee' at com.ibatis.common.beans.ClassInfo.getGetterType(ClassInfo.java:188) at com.ibatis.common.beans.GenericProbe.getClassPropertyTypeForGetter(Ge nericProbe.java:226) at com.ibatis.common.beans.GenericProbe.getPropertyTypeForGetter(Generic Probe.java:155) at com.ibatis.sqlmap.engine.mapping.parameter.InlineParameterMapParser.r esolveTypeHandler(InlineParameterMapParser.java:212) at com.ibatis.sqlmap.engine.mapping.parameter.InlineParameterMapParser.n ewParseMapping( InlineParameterMapParser.java:121) at com.ibatis.sqlmap.engine.mapping.parameter.InlineParameterMapParser.p arseInlineParameterMap(InlineParameterMapParser.java:50) at com.ibatis.sqlmap.engine.builder.xml.SqlStatementParser.applyInlinePa rameterMap(SqlStatementParser.java:377) at com.ibatis.sqlmap.engine.builder.xml.SqlStatementParser.processSqlSta tement(SqlStatementParser.java:185) at com.ibatis.sqlmap.engine.builder.xml.SqlStatementParser.parseGeneralS tatement(SqlStatementParser.java:139) at com.ibatis.sqlmap.engine.builder.xml.SqlMapParser$19.process(SqlMapPa rser.java:516) at com.ibatis.common.xml.NodeletParser.processNodelet(NodeletParser.java :112) at com.ibatis.common.xml.NodeletParser.process(NodeletParser.java:75) at com.ibatis.common.xml.NodeletParser.process(NodeletParser.java:93) at com.ibatis.common.xml.NodeletParser.parse (NodeletParser.java:63) at com.ibatis.common.xml.NodeletParser.parse(NodeletParser.java:51) at com.ibatis.sqlmap.engine.builder.xml.SqlMapParser.parse(SqlMapParser. java:45) at com.ibatis.sqlmap.engine.builder.xml.SqlMapConfigParser$11.process (Sq lMapConfigParser.java:347) at com.ibatis.common.xml.NodeletParser.processNodelet(NodeletParser.java :112) at com.ibatis.common.xml.NodeletParser.process(NodeletParser.java:75) at com.ibatis.common.xml.NodeletParser.process(NodeletParser.java:93) at com.ibatis.common.xml.NodeletParser.parse(NodeletParser.java:63) at com.ibatis.common.xml.NodeletParser.parse(NodeletParser.java:51) at com.ibatis.sqlmap.engine.builder.xml.SqlMapConfigParser.parse(SqlMapC onfigParser.java:78) at com.ibatis.sqlmap.client.SqlMapClientBuilder.buildSqlMapClient(SqlMap ClientBuilder.java:62) at com.dwrtest.util.SqlClient.<clinit>(SqlClient.java:16) at com.dwrtest.util.EmployeeDAO.execute(EmployeeDAO.java:13) at jsp_servlet._pages.__test._jspService(__test.java:131) at weblogic.servlet.jsp.JspBase.service(JspBase.java:33) at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run (ServletStubImpl.java:1006) at weblogic.servlet.internal.ServletStubImpl.invokeServlet (ServletStubIm pl.java:419) at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm pl.java:463) at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm pl.java :315) at weblogic.servlet.internal.WebAppServletContext$ServletInvocationActio n.run(WebAppServletContext.java:6718) at weblogic.security.acl.internal.AuthenticatedSubject.doAs(Authenticate dSubject.java :321) at weblogic.security.service.SecurityManager.runAs(SecurityManager.java: 121) at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppSe rvletContext.java:3764) at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestIm pl.java:2644) at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219) at weblogic.kernel.ExecuteThread.run(ExecuteThread.java :178)
Caused by: com.ibatis.common.exception.NestedRuntimeException: Error parsing XPath '/sqlMap /insert'. Cause: com.ibatis.common.beans.ProbeException: There is no READABLE p roperty named 'Name' in class ' com.dwrtest.model.Employee' Caused by: com.ibatis.common.beans.ProbeException: There is no READABLE property named 'Name' in class 'com.dwrtest.model.Employee' at com.ibatis.common.xml.NodeletParser.processNodelet (NodeletParser.java :114) at com.ibatis.common.xml.NodeletParser.process(NodeletParser.java:75) at com.ibatis.common.xml.NodeletParser.process(NodeletParser.java:93) at com.ibatis.common.xml.NodeletParser.parse (NodeletParser.java:63) at com.ibatis.common.xml.NodeletParser.parse(NodeletParser.java:51) at com.ibatis.sqlmap.engine.builder.xml.SqlMapParser.parse(SqlMapParser. java:45) at com.ibatis.sqlmap.engine.builder.xml.SqlMapConfigParser$11.process (Sq lMapConfigParser.java:347) at com.ibatis.common.xml.NodeletParser.processNodelet(NodeletParser.java :112) at com.ibatis.common.xml.NodeletParser.process(NodeletParser.java:75) at com.ibatis.common.xml.NodeletParser.process(NodeletParser.java:93) at com.ibatis.common.xml.NodeletParser.parse(NodeletParser.java:63) at com.ibatis.common.xml.NodeletParser.parse(NodeletParser.java:51) at com.ibatis.sqlmap.engine.builder.xml.SqlMapConfigParser.parse(SqlMapC onfigParser.java:78) at com.ibatis.sqlmap.client.SqlMapClientBuilder.buildSqlMapClient(SqlMap ClientBuilder.java:62) at com.dwrtest.util.SqlClient.<clinit>(SqlClient.java:16) at com.dwrtest.util.EmployeeDAO.execute(EmployeeDAO.java:13) at jsp_servlet._pages.__test._jspService(__test.java:131) at weblogic.servlet.jsp.JspBase.service(JspBase.java:33) at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run (ServletStubImpl.java:1006) at weblogic.servlet.internal.ServletStubImpl.invokeServlet (ServletStubIm pl.java:419) at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm pl.java:463) at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm pl.java :315) at weblogic.servlet.internal.WebAppServletContext$ServletInvocationActio n.run(WebAppServletContext.java:6718) at weblogic.security.acl.internal.AuthenticatedSubject.doAs(Authenticate dSubject.java :321) at weblogic.security.service.SecurityManager.runAs(SecurityManager.java: 121) at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppSe rvletContext.java:3764) at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestIm pl.java:2644) at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219) at weblogic.kernel.ExecuteThread.run(ExecuteThread.java :178) Caused by: com.ibatis.common.beans.ProbeException: There is no READABLE property named 'Name' in class 'com.dwrtest.model.Employee' at com.ibatis.common.beans.ClassInfo.getGetterType(ClassInfo.java :188) at com.ibatis.common.beans.GenericProbe.getClassPropertyTypeForGetter(Ge nericProbe.java:226) at com.ibatis.common.beans.GenericProbe.getPropertyTypeForGetter(Generic Probe.java:155) at com.ibatis.sqlmap.engine.mapping.parameter.InlineParameterMapParser.r esolveTypeHandler(InlineParameterMapParser.java:212) at com.ibatis.sqlmap.engine.mapping.parameter.InlineParameterMapParser.n ewParseMapping( InlineParameterMapParser.java:121) at com.ibatis.sqlmap.engine.mapping.parameter.InlineParameterMapParser.p arseInlineParameterMap(InlineParameterMapParser.java:50) at com.ibatis.sqlmap.engine.builder.xml.SqlStatementParser.applyInlinePa rameterMap(SqlStatementParser.java:377) at com.ibatis.sqlmap.engine.builder.xml.SqlStatementParser.processSqlSta tement(SqlStatementParser.java:185) at com.ibatis.sqlmap.engine.builder.xml.SqlStatementParser.parseGeneralS tatement(SqlStatementParser.java:139) at com.ibatis.sqlmap.engine.builder.xml.SqlMapParser$19.process(SqlMapPa rser.java:516) at com.ibatis.common.xml.NodeletParser.processNodelet(NodeletParser.java :112) ... 28 more
Caused by: com.ibatis.common.beans.ProbeException: There is no READABLE property named 'Nam e' in class 'com.dwrtest.model.Employee' at com.ibatis.common.beans.ClassInfo.getGetterType (ClassInfo.java:188) at com.ibatis.common.beans.GenericProbe.getClassPropertyTypeForGetter(Ge nericProbe.java:226) at com.ibatis.common.beans.GenericProbe.getPropertyTypeForGetter(Generic Probe.java :155) at com.ibatis.sqlmap.engine.mapping.parameter.InlineParameterMapParser.r esolveTypeHandler(InlineParameterMapParser.java:212) at com.ibatis.sqlmap.engine.mapping.parameter.InlineParameterMapParser.n ewParseMapping(InlineParameterMapParser.java:121) at com.ibatis.sqlmap.engine.mapping.parameter.InlineParameterMapParser.p arseInlineParameterMap(InlineParameterMapParser.java:50) at com.ibatis.sqlmap.engine.builder.xml.SqlStatementParser.applyInlinePa rameterMap(SqlStatementParser.java:377) at com.ibatis.sqlmap.engine.builder.xml.SqlStatementParser.processSqlSta tement(SqlStatementParser.java:185) at com.ibatis.sqlmap.engine.builder.xml.SqlStatementParser.parseGeneralS tatement(SqlStatementParser.java:139) at com.ibatis.sqlmap.engine.builder.xml.SqlMapParser$19.process(SqlMapPa rser.java:516) at com.ibatis.common.xml.NodeletParser.processNodelet(NodeletParser.java :112) at com.ibatis.common.xml.NodeletParser.process(NodeletParser.java:75) at com.ibatis.common.xml.NodeletParser.process(NodeletParser.java:93) at com.ibatis.common.xml.NodeletParser.parse (NodeletParser.java:63) at com.ibatis.common.xml.NodeletParser.parse(NodeletParser.java:51) at com.ibatis.sqlmap.engine.builder.xml.SqlMapParser.parse(SqlMapParser. java:45) at com.ibatis.sqlmap.engine.builder.xml.SqlMapConfigParser$11.process (Sq lMapConfigParser.java:347) at com.ibatis.common.xml.NodeletParser.processNodelet(NodeletParser.java :112) at com.ibatis.common.xml.NodeletParser.process(NodeletParser.java:75) at com.ibatis.common.xml.NodeletParser.process(NodeletParser.java:93) at com.ibatis.common.xml.NodeletParser.parse(NodeletParser.java:63) at com.ibatis.common.xml.NodeletParser.parse(NodeletParser.java:51) at com.ibatis.sqlmap.engine.builder.xml.SqlMapConfigParser.parse(SqlMapC onfigParser.java:78) at com.ibatis.sqlmap.client.SqlMapClientBuilder.buildSqlMapClient(SqlMap ClientBuilder.java:62) at com.dwrtest.util.SqlClient.<clinit>(SqlClient.java:16) at com.dwrtest.util.EmployeeDAO.execute(EmployeeDAO.java:13) at jsp_servlet._pages.__test._jspService(__test.java:131) at weblogic.servlet.jsp.JspBase.service(JspBase.java:33) at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run (ServletStubImpl.java:1006) at weblogic.servlet.internal.ServletStubImpl.invokeServlet (ServletStubIm pl.java:419) at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm pl.java:463) at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm pl.java :315) at weblogic.servlet.internal.WebAppServletContext$ServletInvocationActio n.run(WebAppServletContext.java:6718) at weblogic.security.acl.internal.AuthenticatedSubject.doAs(Authenticate dSubject.java :321) at weblogic.security.service.SecurityManager.runAs(SecurityManager.java: 121) at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppSe rvletContext.java:3764) at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestIm pl.java:2644) at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219) at weblogic.kernel.ExecuteThread.run(ExecuteThread.java :178)
Caused by: com.ibatis.common.beans.ProbeException: There is no READABLE property named 'Nam e' in class 'com.dwrtest.model.Employee' at com.ibatis.common.beans.ClassInfo.getGetterType(ClassInfo.java :188) at com.ibatis.common.beans.GenericProbe.getClassPropertyTypeForGetter(Ge nericProbe.java:226) at com.ibatis.common.beans.GenericProbe.getPropertyTypeForGetter(Generic Probe.java:155) at com.ibatis.sqlmap.engine.mapping.parameter.InlineParameterMapParser.r esolveTypeHandler(InlineParameterMapParser.java:212) at com.ibatis.sqlmap.engine.mapping.parameter.InlineParameterMapParser.n ewParseMapping( InlineParameterMapParser.java:121) at com.ibatis.sqlmap.engine.mapping.parameter.InlineParameterMapParser.p arseInlineParameterMap(InlineParameterMapParser.java:50) at com.ibatis.sqlmap.engine.builder.xml.SqlStatementParser.applyInlinePa rameterMap(SqlStatementParser.java:377) at com.ibatis.sqlmap.engine.builder.xml.SqlStatementParser.processSqlSta tement(SqlStatementParser.java:185) at com.ibatis.sqlmap.engine.builder.xml.SqlStatementParser.parseGeneralS tatement(SqlStatementParser.java:139) at com.ibatis.sqlmap.engine.builder.xml.SqlMapParser$19.process(SqlMapPa rser.java:516) at com.ibatis.common.xml.NodeletParser.processNodelet(NodeletParser.java :112) at com.ibatis.common.xml.NodeletParser.process(NodeletParser.java:75) at com.ibatis.common.xml.NodeletParser.process(NodeletParser.java:93) at com.ibatis.common.xml.NodeletParser.parse (NodeletParser.java:63) at com.ibatis.common.xml.NodeletParser.parse(NodeletParser.java:51) at com.ibatis.sqlmap.engine.builder.xml.SqlMapParser.parse(SqlMapParser. java:45) at com.ibatis.sqlmap.engine.builder.xml.SqlMapConfigParser$11.process (Sq lMapConfigParser.java:347) at com.ibatis.common.xml.NodeletParser.processNodelet(NodeletParser.java :112) at com.ibatis.common.xml.NodeletParser.process(NodeletParser.java:75) at com.ibatis.common.xml.NodeletParser.process(NodeletParser.java:93) at com.ibatis.common.xml.NodeletParser.parse(NodeletParser.java:63) at com.ibatis.common.xml.NodeletParser.parse(NodeletParser.java:51) at com.ibatis.sqlmap.engine.builder.xml.SqlMapConfigParser.parse(SqlMapC onfigParser.java:78) at com.ibatis.sqlmap.client.SqlMapClientBuilder.buildSqlMapClient(SqlMap ClientBuilder.java:62) at com.dwrtest.util.SqlClient.<clinit>(SqlClient.java:16) at com.dwrtest.util.EmployeeDAO.execute(EmployeeDAO.java:13) at jsp_servlet._pages.__test._jspService(__test.java:131) at weblogic.servlet.jsp.JspBase.service(JspBase.java:33) at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run (ServletStubImpl.java:1006) at weblogic.servlet.internal.ServletStubImpl.invokeServlet (ServletStubIm pl.java:419) at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm pl.java:463) at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm pl.java :315) at weblogic.servlet.internal.WebAppServletContext$ServletInvocationActio n.run(WebAppServletContext.java:6718) at weblogic.security.acl.internal.AuthenticatedSubject.doAs(Authenticate dSubject.java :321) at weblogic.security.service.SecurityManager.runAs(SecurityManager.java: 121) at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppSe rvletContext.java:3764) at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestIm pl.java:2644) at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219) at weblogic.kernel.ExecuteThread.run(ExecuteThread.java :178) java.lang.NullPointerException at com.dwrtest.util.EmployeeDAO.execute(EmployeeDAO.java:20) at jsp_servlet._pages.__test._jspService(__test.java:131) at weblogic.servlet.jsp.JspBase.service (JspBase.java:33) at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run (ServletStubImpl.java:1006) at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm pl.java :419) at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm pl.java:463) at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm pl.java:315) at weblogic.servlet.internal.WebAppServletContext$ServletInvocationActio n.run(WebAppServletContext.java:6718) at weblogic.security.acl.internal.AuthenticatedSubject.doAs(Authenticate dSubject.java:321) at weblogic.security.service.SecurityManager.runAs(SecurityManager.java : 121) at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppSe rvletContext.java:3764) at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestIm pl.java:2644) at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219) at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178)
-- Akhil Kodali<Employee.java> <EmployeeDAO.java> <SqlClient.java> <SqlMapConfig.xml> <SqlMapTest.xml>
|