SSH 查找时出现java.lang.IllegalArgumentException异常

很诡异的异常 现在可以确定报错函数传参没问题,vo和hibernate映射也没问题,并且查另一个VO用同样的方式没有报错,郁闷,求助高手!下面是异常信息:
2:42:26,106 ERROR [default]:253 - Servlet.service() for servlet default threw exception
java.lang.IllegalArgumentException
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:597)
at org.hibernate.property.BasicPropertyAccessor$BasicSetter.set(BasicPropertyAccessor.java:42)
at org.hibernate.tuple.entity.AbstractEntityTuplizer.setPropertyValues(AbstractEntityTuplizer.java:337)
at org.hibernate.tuple.entity.PojoEntityTuplizer.setPropertyValues(PojoEntityTuplizer.java:200)
at org.hibernate.persister.entity.AbstractEntityPersister.setPropertyValues(AbstractEntityPersister.java:3571)
at org.hibernate.engine.TwoPhaseLoad.initializeEntity(TwoPhaseLoad.java:133)
at org.hibernate.loader.Loader.initializeEntitiesAndCollections(Loader.java:854)
at org.hibernate.loader.Loader.doQuery(Loader.java:729)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236)
at org.hibernate.loader.Loader.doList(Loader.java:2213)
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2104)
at org.hibernate.loader.Loader.list(Loader.java:2099)
at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:378)
at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:338)
at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:172)
at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1121)
at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
at cn.sl.dao.imp.AddressDaoImp.findDistrict(AddressDaoImp.java:16)//我写的方法
//报错语句:List<District> list=this.getSession().createQuery("from District d where d.city.cId="+cityId).list();
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:597)

java.lang.IllegalArgumentException说明是参数类型不匹配,查不出不会出错是因为返回的是null,没有类型之分,查出数据就报错,说明有地方类型不匹配,楼主在仔细检查检查哪里类型不匹配的,像hibernate映射的xml和Jsp里指定的接收参数的类型是否和hibernate的一样!从异常堆栈上看应该在action上和spring里没有错误!
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-11-10
Servlet.service() for servlet default threw exception
java.lang.IllegalArgumentException
这表示servlet的service方法中的参数异常,有可能是把参数写错了,
check下
第2个回答  2010-11-11
你说同一个方法查询不同的对象时出错,说明不是java代码本身的语法问题.你看看是否该实体对应的数据库表中数据类型是不是跟你传入的参数不匹配?这种问题通常都是粗心引起的.
未解决之前觉得很想不通,找到问题的原因之后你就会觉得很好笑了.我也碰到过,仔细检查一下吧.
第3个回答  2010-11-11
where d.city.cId="+cityId
有人用hql这样子直接传参的吗?用setParameter吧
第4个回答  2010-11-10
你传的代码不是全,不是很清楚你的问题出在哪,我猜想错可能在你的Action中

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网