BeanUtils.copyProperties使用中各种出错,求大神指导~~

RainyNight_WC 2016-08-26 12:35:00
com.bdyc.manager.pojo包中的Employee

package com.bdyc.manager.pojo;
import java.util.Date;
import java.util.HashSet;
import java.util.Set;
public class Employee implements java.io.Serializable {
private int eid;
private Role role;
private String ename;
private String epwd;
private String esex;
private int eage;
private String ephone;
private Date ehiredate;
private String eidcard;
private int estatus;
private String ejob;
private String etips;
private Set<Items> itemses = new HashSet<Items>();
private Set<Access> accesses = new HashSet<Access>();
private Set<Info> infosForEid = new HashSet<Info>();
private Set<Info> infosForEmpEid = new HashSet<Info>();
private Set<Task> tasks = new HashSet<Task>();
//有参构造与无参构造
//所有的set和get
}

com.bdyc.manager.bean包中的Employee

package com.bdyc.manager.bean;
import java.util.Date;
import java.util.HashSet;
import java.util.Set;
public class Employee {
private int eid;
private Role role;
private String ename;
private String epwd;
private String esex;
private int eage;
private String ephone;
private Date ehiredate;
private String eidcard;
private int estatus;
private String ejob;
private String etips;
private Set<Items> itemses = new HashSet<Items>();
private Set<Access> accesses = new HashSet<Access>();
private Set<Info> infosForEid = new HashSet<Info>();
private Set<Info> infosForEmpEid = new HashSet<Info>();
private Set<Task> tasks = new HashSet<Task>();
//有参构造与无参构造
//所有的set和get
}

Employee的Service

package com.bdyc.manager.service;
import java.lang.reflect.InvocationTargetException;
import org.apache.commons.beanutils.BeanUtils;
import com.bdyc.manager.bean.Employee;
import com.bdyc.manager.dao.EmployeeDao;
public class EmployeeService {
public Employee Login(String ename, String epwd) {
EmployeeDao ed = new EmployeeDao();//dao类,用于连接数据库和增删改查
com.bdyc.manager.pojo.Employee ee = ed.get(ename, epwd);//查询,返回的是com.bdyc.manager.pojo包下的Employee
Employee emp = new Employee();
if (ee != null) {
try {
BeanUtils.copyProperties(emp, ee);
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
}
return emp;
}
}

错误信息是

2016-8-26 0:01:24 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet [LoginServlet] in context with path [/itemmanager] threw exception
java.lang.IllegalArgumentException: Cannot invoke com.bdyc.manager.bean.Employee.setRole on bean class 'class com.bdyc.manager.bean.Employee' - argument type mismatch - had objects of type "com.bdyc.manager.pojo.Role" but expected signature "com.bdyc.manager.bean.Role"
at org.apache.commons.beanutils.PropertyUtilsBean.invokeMethod(PropertyUtilsBean.java:2235)
at org.apache.commons.beanutils.PropertyUtilsBean.setSimpleProperty(PropertyUtilsBean.java:2151)
at org.apache.commons.beanutils.BeanUtilsBean.copyProperty(BeanUtilsBean.java:439)
at org.apache.commons.beanutils.BeanUtilsBean.copyProperties(BeanUtilsBean.java:286)
at org.apache.commons.beanutils.BeanUtils.copyProperties(BeanUtils.java:137)
at com.bdyc.manager.service.EmployeeService.Login(EmployeeService.java:18)
at com.bdyc.manager.servlet.LoginServlet.doGet(LoginServlet.java:21)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:624)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:436)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1078)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:625)
at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:2517)
at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2506)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:619)
Caused by: java.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.apache.commons.beanutils.PropertyUtilsBean.invokeMethod(PropertyUtilsBean.java:2170)
... 26 more


有关BeanUtils.copyProperties的资料我百度谷歌了一天了,重写过好几种方法,都报错,有时候是类中的类没办法复制,有时侯是java.util.Date无法复制(使用Hibernate链接MySQL的时候java.sql.Date使用不成功),还有时候没有catch到错误,但是return的emp是个空值........
已经无奈了,求大神帮忙看一下是哪里出错了~~~
...全文
1218 回复 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

51,396

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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