exception javax.servlet.ServletException: java.lang.String cannot be cast to java.lang.Integer
org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:523)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:421)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
mis.struts.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:37)
root cause java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer
org.hibernate.type.IntegerType.set(IntegerType.java:39)
org.hibernate.type.NullableType.nullSafeSet(NullableType.java:62)
org.hibernate.type.NullableType.nullSafeSet(NullableType.java:44)
org.hibernate.loader.Loader.bindPositionalParameters(Loader.java:1115)
org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1177)
org.hibernate.loader.Loader.doQuery(Loader.java:390)
org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:218)
org.hibernate.loader.Loader.loadEntity(Loader.java:1345)
org.hibernate.loader.entity.EntityLoader.load(EntityLoader.java:116)
org.hibernate.loader.entity.EntityLoader.load(EntityLoader.java:101)
org.hibernate.persister.entity.BasicEntityPersister.load(BasicEntityPersister.java:2471)
org.hibernate.event.def.DefaultLoadEventListener.loadFromDatasource(DefaultLoadEventListener.java:351)
org.hibernate.event.def.DefaultLoadEventListener.doLoad(DefaultLoadEventListener.java:332)
org.hibernate.event.def.DefaultLoadEventListener.load(DefaultLoadEventListener.java:113)
org.hibernate.event.def.DefaultLoadEventListener.proxyOrLoad(DefaultLoadEventListener.java:167)
org.hibernate.event.def.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:79)
org.hibernate.impl.SessionImpl.get(SessionImpl.java:621)
mis.hibernate.dao.CustomerDAO.findByCustomerUserName(CustomerDAO.java:80)
mis.spring.service.CustomerLoginServiceImpl.findcustomer(CustomerLoginServiceImpl.java:29)
mis.struts.actions.CustomerLoginAction.customerLogin(CustomerLoginAction.java:32)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
java.lang.reflect.Method.invoke(Unknown Source)
org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:274)
org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:194)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
mis.struts.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:37)

解决方案 »

  1.   

    java.lang.String cannot be cast to java.lang.Integer 
    类型错误
    请在这行下断点调试,确认一下数据
    mis.hibernate.dao.CustomerDAO.findByCustomerUserName(CustomerDAO.java:80)按理说,如果都是hibernate控制主键,这类问题是不会发生的,
    楼主在数据库中做的测试数据,可能有问题,也许出现了空字符串之类
      

  2.   

    方法是这样的,对吗
    public Customer findByCustomerUserName(String customerUserName) {
         log.debug("getting Customer instance with customerUserName: " + customerUserName);
            try {
                Customer instance = (Customer) getSession()
                        .get("mis.business.vo.Customer", customerUserName);
                return instance;
            } catch (RuntimeException re) {
                log.error("get failed", re);
                throw re;
            }
    }
      

  3.   

    java.lang.String cannot be cast to java.lang.Integer看你传入的参数是不是有问题.或者实体类 类型同你的hibernate 的映射类型不匹配.