本项目 使用 Spring+hibernate     
   服务器上tomcal日志里  报错 2012-2-21 0:25:59 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet annomvc threw exception
java.lang.IllegalStateException: Optional long parameter 'gid' is not present but cannot be translated into a null value due to being declared as a primitive type. Consider declaring it as object wrapper for the corresponding primitive type.
at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.resolveRequestParam(HandlerMethodInvoker.java:330)
at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.resolveHandlerArguments(HandlerMethodInvoker.java:198)
at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:128)
at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:310)
at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:297)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:875)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:809)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:501)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.jumai001.webapp.filter.IPToCityFilter.doFilter(IPToCityFilter.java:58)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:236)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:96)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:864)
at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:579)
at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1665)
at java.lang.Thread.run(Thread.java:619)
2012-2-21 0:26:10 org.apache.catalina.core.StandardWrapperValve invoke

解决方案 »

  1.   

      apache-tomcat-6.0.32    
      

  2.   

    以下是错误原因:
    1.servlet或jsp中,重复调用response的 getOutputStream(),response.getWriter()方法
    2.form表单里没有 method="post" action=""参数
    3.看JDBC操纵数据库的代码,仔细看,例如调用的对象的属性为null。
      Connection conn=null; 之后之就调用了conn.??的方法
      我就时错在这里
      仅供参考!
      

  3.   

       页面没值 或者 空值    用  request.getParameter("")    这样的话 应该不会 报错啊
      

  4.   

    java.lang.IllegalStateException: Optional long parameter 'gid' is not present but cannot be translated into a null value due to being declared as a primitive type. Consider declaring it as object wrapper for the corresponding primitive type.可选的参数 gid 不存在,但无法被转换为NULL,因为你把它给定义为 基本类型。建议将其修改为 包装类型。就是说,你定义了参数:long gid
    但没有值,那么Spring按理来说按照null来处理,结果倒霉的事情来了:
    gid = null; 是不允许的,因为基础类型不能赋值为null。所以Spring建议你把参数定义修改为 Long gid根据错误信息提示,大致就是这样,楼主节哀。
      

  5.   

      问题 是 找了 整个 项目     没发现  long gid 的,,  String  gid   到有 ,,
      

  6.   

      问题 是 找了 整个 项目     没发现  long gid 的,,  String  gid   到有
      

  7.   

    那你悲剧的可以了不过Spring是不会骗人的,检查下运行环境跟你的开发环境是否完全一致吧。
      

  8.   

    既然找到了 gid  那就肯定是那里的问题咯  
      

  9.   

    10楼正解  
    我也刚好碰到这个问题 搜索到你这个帖子
    我的是private long userId
    方法为SpringMVC
    public String showHeadimg(HttpServletRequest request, HttpServletResponse response, long userId) 
    throws ServletException, IOException {...}
    这个是显示图片的方法 
    <img src="/xxx/xxx/showHeadimg}" 出现楼主所说异常 原因也就是10楼说的 没有userId  系统把他赋值成null  但是我long型的不能赋值null  所以报异常 
    解决办法 src="/xxx/xxx/showHeadimg?userId=${user.userId}