Pode ModelAttribute ser primitivo?

Estou tendo um problema estranho com o ModelAttribute no Spring MVC 3.0. Quando implanto o aplicativo no localhost, ele funciona bem. Mas quando implanto o aplicativo em um servidor remoto, ele falha sempre que o usuário acessa uma ação específica, com os erros:

ERROR: my.package.application.web.filter.ExceptionFilter - long.<init>()
java.lang.NoSuchMethodException: long.<init>()
        at java.lang.Class.getConstructor0(Class.java:2706)
        at java.lang.Class.getDeclaredConstructor(Class.java:1985)
        at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:104)
        at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.resolveModelAttribute(HandlerMethodInvoker.java:762)
        at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.resolveHandlerArguments(HandlerMethodInvoker.java:356)
        at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:153)
        at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:426)
        at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:414)
        at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:790)
        at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)
        at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)
        at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:549)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

O código que eu usuário para iniciar o ModelAttribute nesse controlador é:

    @ModelAttribute("id")
    public long getUserId(HttpSession session) {
        UserInfoHolder userHolder = (UserInfoHolder) session
                .getAttribute("userHolder");
        long userId = userHolder.getUserId();
        return userId;
    }

Até onde sei, o bug não pode ser reproduzido na minha estação de trabalho local. E isso acontece antes que a ação seja chamada.

Looking in HandlerMethodInvoker.java (linha 762), vemos esta linha:

bindObject = BeanUtils.instantiateClass(paramType);

Um colega experiente acredita que esta linha causa problemas, porque um ModelAttribute (long) do tipo primitivo (long) não tem um construtor. Acho que esse motivo talvez esteja certo, mas como explicar que o aplicativo Web funciona bem no meu servidor local?

Eu tentei pesquisar para saber se ModelAttribute suporta tipo de dados primitivo, mas sem bons resultados. Alguém tem experiência com esse problema?

questionAnswers(1)

yourAnswerToTheQuestion