首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

java.lang.IllegalArgumentException: argument type mismatch解决方案

2012-09-08 
java.lang.IllegalArgumentException: argument type mismatch这是控制台输出的Java codeERROR 01 六月 20

java.lang.IllegalArgumentException: argument type mismatch
这是控制台输出的

Java code
ERROR 01 六月 2010 14:28:48 [org.hibernate.property.BasicPropertyAccessor$BasicSetter] [set] - IllegalArgumentException in class: com.baidu.manageSystem.machineRoom.dto.UserRights, setter method of property: userCodeERROR 01 六月 2010 14:28:48 [org.hibernate.property.BasicPropertyAccessor$BasicSetter] [set] - expected type: com.baidu.manageSystem.machineRoom.dto.Users, actual value: java.lang.StringWARN  01 六月 2010 14:28:48 [org.apache.struts.action.RequestProcessor] [processException] - Unhandled Exception thrown: class org.springframework.orm.hibernate3.HibernateSystemExceptionERROR 01 六月 2010 14:28:48 [org.apache.catalina.core.StandardWrapperValve] [invoke] - Servlet.service() for servlet action threw exceptionjava.lang.IllegalArgumentException: argument type mismatch    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.setIdentifier(AbstractEntityTuplizer.java:211)    at org.hibernate.tuple.entity.AbstractEntityTuplizer.instantiate(AbstractEntityTuplizer.java:353)    at org.hibernate.persister.entity.AbstractEntityPersister.instantiate(AbstractEntityPersister.java:3606)    at org.hibernate.impl.SessionImpl.instantiate(SessionImpl.java:1275)    at org.hibernate.impl.SessionImpl.instantiate(SessionImpl.java:1264)    at org.hibernate.loader.Loader.instanceNotYetLoaded(Loader.java:1299)    at org.hibernate.loader.Loader.getRow(Loader.java:1206)    at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:580)    at org.hibernate.loader.Loader.doQuery(Loader.java:701)    at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236)    at org.hibernate.loader.Loader.doList(Loader.java:2220)    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 org.springframework.orm.hibernate3.HibernateTemplate$29.doInHibernate(HibernateTemplate.java:849)    at org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:372)    at org.springframework.orm.hibernate3.HibernateTemplate.find(HibernateTemplate.java:840)    at org.springframework.orm.hibernate3.HibernateTemplate.find(HibernateTemplate.java:832)    [color=#33CCCC]at com.baidu.manageSystem.machineRoom.dao.UserRightsDao.queryById(UserRightsDao.java:42)[/color]    [color=#FF0000]at com.baidu.manageSystem.machineRoom.controller.UserRightsAction.jurisdiction(UserRightsAction.java:67)[/color]    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.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:270)    at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:187)    at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)    at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)    at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)    at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)    at javax.servlet.http.HttpServlet.service(HttpServlet.java:627)    at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)    at com.baidu.manageSystem.common.filter.EncodingFilter.doFilter(EncodingFilter.java:32)    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:875)    at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)    at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)    at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)    at java.lang.Thread.run(Thread.java:619) 


这是红色错误位置
Java code
public ActionForward jurisdiction(ActionMapping mapping, ActionForm form,            HttpServletRequest request, HttpServletResponse response) throws Exception             {            String dai = request.getParameter("userCode");            System.out.println(dai);            UserRightsForm f = (UserRightsForm) form;            UserRights room = new UserRights();            Users users =new Users();             users.setCode(dai);            f.setUsercode(users);            Users userCode = f.getUsercode();            System.out.println(f.getUsercode().getCode());            MyBeanUtils.copyBean2Bean(f, room, true);            System.out.println(userCode.getCode());            UserRights userRights =(UserRights) userRightsDao.queryById(userCode);            System.out.println(userRights);            if(userRights!=null){                String menuCode=userRights.getMenu().getMenuName();                request.setAttribute("menuCode",menuCode);                            }            return indexPage(mapping, form, request, response);                        }


这是绿色字体位置
Java code
    public UserRights queryById(Users userCode) throws Exception {                         System.out.println(userCode);            System.out.println(this.getHibernateTemplate());            String id = userCode.getCode();            return (UserRights) this.getHibernateTemplate().find("from UserRights where userCode=id");        }   


[解决办法]
System.out.println(userCode.getCode());
UserRights userRights =(UserRights) userRightsDao.queryById(userCode);
System.out.println(userRights);
这两个能打印出来????
[解决办法]
探讨
Java code
String id = userCode.getCode();
return (UserRights) this.getHibernateTemplate().find("from UserRights where userCode=id");
这个sql不对吧
应该是如下吧
String id = userCode.getCode();
……

热点排行