ibatis报错,急!!在线等!

shilei156144339 2008-01-16 02:49:29
错误信息:
2008-01-16 12:56:41 StandardWrapperValve[action]: Servlet.service() for servlet action threw exception
com.ibatis.dao.client.DaoException: Failed to queryForList - id [queryCompanyListByCompanyName], parameterObject [%%], skip [0], max [948]. Cause: com.ibatis.common.jdbc.exception.NestedSQLException:
--- The error occurred in com/yadcom/mbs/properties/sql/Company.xml.
--- The error occurred while applying a result map.
--- Check the Company.companyResult.
--- Check the result mapping for the 'marketer' property.
--- Cause: net.sf.cglib.beans.BulkBeanException
Caused by: net.sf.cglib.beans.BulkBeanException
Caused by: com.ibatis.common.jdbc.exception.NestedSQLException:
--- The error occurred in com/yadcom/mbs/properties/sql/Company.xml.
--- The error occurred while applying a result map.
--- Check the Company.companyResult.
--- Check the result mapping for the 'marketer' property.
--- Cause: net.sf.cglib.beans.BulkBeanException
Caused by: net.sf.cglib.beans.BulkBeanException
at com.ibatis.dao.client.template.SqlMapDaoTemplate.queryForList(SqlMapDaoTemplate.java:216)
at com.yadcom.mbs.properties.sqlmapdao.CompanySqlMapDao.queryCompanyListByCompanyName(CompanySqlMapDao.java:43)
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:324)
at com.ibatis.dao.engine.impl.DaoProxy.invoke(DaoProxy.java:61)
at $Proxy1.queryCompanyListByCompanyName(Unknown Source)
at com.yadcom.mbs.properties.service.CompanyService.queryCompanyListByCompanyName(CompanyService.java:56)
at com.yadcom.mbs.SysAdmin.action.fee.QueryFeesumAction.execute(QueryFeesumAction.java:18)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at com.yadcom.mbs.MBSFilter.doFilter(MBSFilter.java:138)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:536)
Caused by: com.ibatis.common.jdbc.exception.NestedSQLException:
--- The error occurred in com/yadcom/mbs/properties/sql/Company.xml.
--- The error occurred while applying a result map.
--- Check the Company.companyResult.
--- Check the result mapping for the 'marketer' property.
--- Cause: net.sf.cglib.beans.BulkBeanException
Caused by: net.sf.cglib.beans.BulkBeanException
at com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryWithCallback(GeneralStatement.java:157)
at com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryForList(GeneralStatement.java:99)
at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(SqlMapExecutorDelegate.java:341)
at com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.queryForList(SqlMapSessionImpl.java:81)
at com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.queryForList(SqlMapClientImpl.java:58)
at com.ibatis.dao.client.template.SqlMapDaoTemplate.queryForList(SqlMapDaoTemplate.java:214)
... 42 more
Caused by: net.sf.cglib.beans.BulkBeanException
at com.yadcom.mbs.properties.bean.Company$$BulkBeanByCGLIB$$9c0cd3f6.setPropertyValues(<generated>)
at com.ibatis.sqlmap.engine.accessplan.EnhancedPropertyAccessPlan.setProperties(EnhancedPropertyAccessPlan.java:18)
at com.ibatis.sqlmap.engine.exchange.JavaBeanDataExchange.setData(JavaBeanDataExchange.java:73)
at com.ibatis.sqlmap.engine.mapping.result.BasicResultMap.setResultObjectValues(BasicResultMap.java:148)
at com.ibatis.sqlmap.engine.mapping.statement.RowHandlerCallback.handleResultObject(RowHandlerCallback.java:29)
at com.ibatis.sqlmap.engine.execution.SqlExecutor.handleResults(SqlExecutor.java:279)
at com.ibatis.sqlmap.engine.execution.SqlExecutor.executeQuery(SqlExecutor.java:127)
at com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.sqlExecuteQuery(GeneralStatement.java:174)
at com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryWithCallback(GeneralStatement.java:142)
... 47 more
Caused by: java.lang.NullPointerException
... 56 more

...全文
757 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
Sou2012 2009-03-15
  • 打赏
  • 举报
回复
有NULL!
hahe7788 2008-01-16
  • 打赏
  • 举报
回复
按有几个群,你不妨加进去,可以和大家一起讨论啊.........46986340,28039577,4804620
在那里看看有无能回答你的,谢谢,LZ,甭忘了给俺分哦,谢谢LZ
shilei156144339 2008-01-16
  • 打赏
  • 举报
回复
现在测试是查询部分能成功,就是加入查询条件,也就是companyname
huguang 2008-01-16
  • 打赏
  • 举报
回复
我猜想还是运行环境与编译环境的差异问题!

没有想过经验,只能帮顶了!
shilei156144339 2008-01-16
  • 打赏
  • 举报
回复
<select id="queryCompanyListByCompanyName" resultMap="companyResult" parameterClass="java.lang.String">
select * from mb_company where companyName like #value# and (status=0 or status=2) order by create_date desc
</select>
这条语句在数据库种执行正确
select * from mb_company where companyName like '%%' and (status=0 or status=2) order by create_date desc
shilei156144339 2008-01-16
  • 打赏
  • 举报
回复
在eclipse里已经设置成1.4了
还是在本地是可以运行的没错
huguang 2008-01-16
  • 打赏
  • 举报
回复
还有,建议本地换1.4编译看看
shilei156144339 2008-01-16
  • 打赏
  • 举报
回复
数据库表
create table MB_COMPANY
(
COMPANYID NUMBER(10) not null,
COMPANYNAME VARCHAR2(100),
SMS NUMBER(1),
MEETING NUMBER(1),
MOBILEDATA NUMBER(1),
MOBILEOA NUMBER(1),
BANLANCE NUMBER(11,3) default 0,
STATUS CHAR(1),
POSTCODE CHAR(10),
ADDRESS VARCHAR2(100),
PHONE_NUMBER VARCHAR2(30),
FAX_NUMBER VARCHAR2(30),
CONTACT VARCHAR2(30),
CONTACT_NUMBER VARCHAR2(30),
CREATE_DATE DATE default sysdate,
FEE_DATE VARCHAR2(30),
BANKTYPE VARCHAR2(20),
BANKACCOUNT VARCHAR2(30),
AREA VARCHAR2(4),
VOCATION NUMBER(4),
OVERDRAFT NUMBER(11,3) default 0,
ADMIN_NAME VARCHAR2(20),
AGENTID NUMBER(10),
LOGOUTDATE DATE,
MONTHFEE NUMBER(11,3) default 0,
MARKETER VARCHAR2(30),
MEMO VARCHAR2(100)
)
这样可以了吗
huguang 2008-01-16
  • 打赏
  • 举报
回复
还需要你的数据库表,比如导出的sql
shilei156144339 2008-01-16
  • 打赏
  • 举报
回复
同样的配置在我的本地可以运行
放到服务器上就不行了
服务器环境是jdk1.4,tomcat5,oracle9
本地是jdk1.5,tomcat5,oracle9

根据错误可能是marketer这个有问题
但是拼写什么都没问题
怎么就出错呢
shilei156144339 2008-01-16
  • 打赏
  • 举报
回复
还需要什么我帖出来
shilei156144339 2008-01-16
  • 打赏
  • 举报
回复
xml文件:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN" "http://www.ibatis.com/dtd/sql-map-2.dtd">

<!-- The SQL in these maps files has purposely been typed with more verbosity than is actually required.
For example, many of the selects could have just used SELECT * FROM... instead of listing all of the columns.
This is to demonstrate that even complex SQL can be handled and coded and formatted the way SQL was meant
to be (i.e. not a bunch of concatenated strings in a Java class). -->

<sqlMap namespace="Company">

<typeAlias alias="company" type="com.yadcom.mbs.properties.bean.Company"/>
<typeAlias alias="qcompany" type="com.yadcom.mbs.AgentAdmin.action.bean.QCompany"/>

<resultMap id="companyResult" class="company">
<result property="companyID" column="companyID"/>
<result property="companyName" column="companyName"/>
<result property="sms" column="sms"/>
<result property="meeting" column="meeting"/>
<result property="mobileData" column="mobileData"/>
<result property="mobileOA" column="mobileOA"/>
<result property="banlance" column="banlance"/>
<result property="status" column="status"/>
<result property="postcode" column="postcode"/>
<result property="address" column="address"/>
<result property="phone_number" column="phone_number"/>
<result property="fax_number" column="fax_number"/>
<result property="contact" column="contact"/>
<result property="contact_number" column="contact_number"/>
<result property="create_date" column="create_date"/>
<result property="fee_date" column="fee_date"/>
<result property="area" column="area"/>
<result property="vocation" column="vocation"/>
<result property="adminName" column="admin_name"/>
<result property="overdraft" column="overdraft"/>
<result property="agentID" column="agentID"/>
<result property="monthfee" column="monthfee"/>
<result property="marketer" column="marketer"/>
</resultMap>

<insert id="insertCompany" parameterClass="company">
insert into mb_company (companyID,companyName,sms,meeting,mobileData,mobileOA,banlance,area,vocation,status,postcode,address,contact,contact_number,create_date,admin_name,overdraft,agentID,monthfee,marketer,phone_number) values (#companyID#,#companyName#,#sms#,#meeting#,#mobileData#,#mobileOA#,#banlance#,#area#,#vocation#,#status#,#postcode#,#address#,#contact#,#contact_number#,to_date(#create_date#,'yyyy-MM-dd'),#adminName#,#overdraft#,#agentID#,#monthfee#,#marketer#,#phone_number#)
</insert>

<insert id="insertCompanyOld" parameterClass="company">
insert into ei_company (company_ID,company_Name,area_name,status,postcode,address,contact,contact_mobile,create_date,admin_name,overdraft,memo)
values (#companyID#,#companyName#,#area#,#status#,#postcode#,#address#,#contact#,#contact_number#,to_date(#create_date#,'yyyy-MM-dd'),#adminName#,#overdraft#,#memo#)
</insert>

<select id="getCompanyList" resultMap="companyResult">
select * from mb_company where (status=0 or status=2)
</select>

<select id="countCompanyList" resultClass="java.lang.String">
select count(*) from mb_company where (status=0 or status=2)
</select>
<select id="getCompanyByCompanyID" resultMap="companyResult" parameterClass="java.lang.String">
select * from mb_company where companyID=#value#
</select>

<select id="getCompanyByCompanyName" resultMap="companyResult" parameterClass="java.lang.String">
select * from mb_company where CompanyName=#value# and (status=0 or status=2)
</select>

<select id="queryCompanyListByCompanyName" resultMap="companyResult" parameterClass="java.lang.String">
select * from mb_company where companyName like #value# and (status=0 or status=2) order by create_date desc
</select>

<select id="countCompanyBySmsNumber" resultClass="java.lang.String" parameterClass="java.lang.String">
select count(*) from mb_company,ei_company where ei_company.sms_number = #value# and mb_company.companyID=ei_company.company_ID
</select>

<select id="getCompanyBySms" resultMap="companyResult" parameterClass="java.lang.String">
select * from mb_company,ei_company where ei_company.sms_number = #value# and mb_company.companyID=ei_company.company_ID and (mb_company.status=0 or mb_company.status=2) and (ei_company.status=0 or ei_company.status=2)
</select>

<select id="countQueryCompanyListByCompanyName" resultClass="java.lang.String" parameterClass="java.lang.String">
select count(*) from mb_company where companyName like #value# and (status=0 or status=2)
</select>

<update id="updateCompanyByID" parameterClass="company">
update mb_company set address=#address# ,contact=#contact#,contact_number=#contact_number#,overdraft=#overdraft#,banlance=#banlance#,sms=#sms#,meeting=#meeting#,mobileData=#mobileData#,mobileOA=#mobileOA#,area=#area#,status=#status#,postcode=#postcode#,vocation=#vocation#,agentID=#agentID#,monthfee=#monthfee#,marketer=#marketer#,phone_number=#phone_number# where companyID=#companyID#
</update>

<select id="queryCompanyListByCompanyNameAgent" resultMap="companyResult" parameterClass="qcompany">
select * from mb_company where companyName like #var_string# and agentID=#agentID# and (status=0 or status=2) order by create_date desc
</select>

<!-- 新增 -->
<select id="queryCompanyListByMarketer" resultMap="companyResult" parameterClass="java.lang.String">
select * from mb_company where marketer=#value# and (status=0 or status=2)
</select>
<select id="countQueryCompanyListByMarketer" resultClass="java.lang.String" parameterClass="java.lang.String">
select count(*) from mb_company where marketer=#value# and (status=0 or status=2)
</select>
<select id="queryCompanyListByMarketerName" resultMap="companyResult" parameterClass="java.util.Map">
select * from mb_company where marketer=#marketer# and companyName like #companyName# and (status=0 or status=2)</select>
<select id="countCompanyListByMarketName" resultClass="java.lang.String" parameterClass="java.util.Map">
select count(*) from mb_company where marketer=#marketer# and companyName like #companyName# and (status=0 or status=2)
</select>
<!-- 20071120新增结束 -->
<select id="countQueryCompanyListByCompanyNameAgent" resultClass="java.lang.String" parameterClass="qcompany">
select count(*) from mb_company where companyName like #var_string# and agentID=#agentID# and (status=0 or status=2)
</select>

<select id="getCompanyByCompanyNameAgent" resultMap="companyResult" parameterClass="qcompany">
select * from mb_company where CompanyName=#var_string# and agentID=#agentID# and (status=0 or status=2)
</select>

<update id="delCompanyByIDOfOld" parameterClass="java.lang.String">
update ei_company set status=1 where company_id=#value#
</update>

<update id="delCompanyByID" parameterClass="java.lang.String">
update mb_company set status=1 , logoutDate=sysdate where companyID=#value#
</update>

<select id="getCompanyListByAgentID" resultMap="companyResult" parameterClass="java.lang.String">
select * from mb_company where agentID=#value# and (status=0 or status=2)
</select>

<select id="countCompanyListByAgentID" resultClass="java.lang.String" parameterClass="java.lang.String">
select count(*) from mb_company where agentID=#value# and (status=0 or status=2)
</select>
<update id="openSms" parameterClass="java.lang.String">
update ei_company set status=0 where company_id=#value#
</update>

<select id="countCompanyQlByCompanyID" resultClass="java.lang.String" parameterClass="java.lang.String">
select count(*) from ei_company where ei_company.company_id = #value# and ei_company.memo='ql'
</select>
</sqlMap>

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧