JS调用类方法:
UserSvlt.UserMessageAdd();Java类方法:
public void UserMessageAdd(HttpSession session)
throws ServletException, IOException
{
System.out.println("Test 测试,添加函数进入成功");

// List<UserInfo> result = new ArrayList<UserInfo>();

sqlBean db= new sqlBean();
ResultSet rs = null;

// HttpServletRequest request = getRequest();
HttpServletRequest request = WebContextFactory.get().getHttpServletRequest();
if(request == null)
{
System.out.println("Request Is Null From:UserMessageAdd");
return ;
}


String strUserID =  new String(request.getParameter("UserID").getBytes("ISO8859_1"),"UTF-8");
String strMessage =  new String(request.getParameter("message").getBytes("ISO8859_1"),"UTF-8");
String strIP =  new String(request.getParameter("ip").getBytes("ISO8859_1"),"UTF-8");
当执行到:
String strUserID =  new String(request.getParameter("UserID").getBytes("ISO8859_1"),"UTF-8");
这句的时候,出现错误:127.0.0.1
2013-9-27 11:49:33 org.directwebremoting.util.CommonsLoggingOutput info
信息: Exec: UserSvlt.UserMessageAdd()
Test 测试,添加函数进入成功
2013-9-27 11:49:33 org.directwebremoting.util.CommonsLoggingOutput warn
警告: Method execution failed: 
java.lang.NullPointerException
at common.UserSvlt.UserMessageAdd(UserSvlt.java:169)
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.directwebremoting.impl.ExecuteAjaxFilter.doFilter(ExecuteAjaxFilter.java:34)
at org.directwebremoting.impl.DefaultRemoter$1.doFilter(DefaultRemoter.java:428)
at org.directwebremoting.impl.DefaultRemoter.execute(DefaultRemoter.java:431)
at org.directwebremoting.impl.DefaultRemoter.execute(DefaultRemoter.java:283)
at org.directwebremoting.servlet.PlainCallHandler.handle(PlainCallHandler.java:52)
at org.directwebremoting.servlet.UrlProcessor.handle(UrlProcessor.java:101)
at org.directwebremoting.servlet.DwrServlet.doPost(DwrServlet.java:146)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
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:174)
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:874)
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)
2013-9-27 11:49:33 org.directwebremoting.util.CommonsLoggingOutput warn
警告: --Erroring: batchId[0] message[java.lang.NullPointerException]
已证明request为非空,不知道为何无法获取页面的元素信息数据,难道不是页面的request?
如果需要web.xml和dwr.xml说一下我发出来,白天随时在线。dwr

解决方案 »

  1.   

    如果request非空,那么肯定是你下面的字符转换有问题了,先别转,直接取,request.getParameter("UserID") 看看有没有值 如果没有,那就是前面没有传过来
      

  2.   

    request.getParameter("UserID") 首先排查是不是request为空.如果不为空 ,看看这个是不是空.只有这两种可能如果是这条出错
      

  3.   


    恩 如果不多,又不是很重要的信息,直接传递也是没问题的.不过 我一般不用dwr 用jquery的ajax也是一样
      

  4.   

    刚试了下,用String strMessage = request.getParameter("message");的话,都是为null;
    如果用String strMessage = new String(request.getParameter("message"));的话为报:at java.lang.String.<init>(String.java:147)  之类的错误(我主学是VC,对Java指针分配有点模糊)
      

  5.   

    不过没事,可以传递var变量和使用session就差不多了,暂时不纠结这个问题,如果谁知道可以说下,散分
      

  6.   

    request.getParameter("message"); 恩 那就是你的这个传递过来的没有message这个参数了
    不过 dwr 可以像方法一样的传递参数啊.不是通过request获得的
    比如这样.
    前端
    LoginDwr.getTempPassword(username, GetRandom(30), callGetTempw);
    后端
    public String getTempPassword(String username ,String rand) {}
      

  7.   


    java没有指针的说法了,下标吧
      

  8.   

    好吧,确实,Java和C#已经智能管理了
      

  9.   


    恩,java自己搞定了咯,这么深奥的问题反正我不懂 ,哈哈.你的问题应该解决了吧
      

  10.   


    恩,java自己搞定了咯,这么深奥的问题反正我不懂 ,哈哈.你的问题应该解决了吧
    嗯,差不多,我用了var变量获取传递和session保存,还可以,先这样弄,myeclipse我不擅长调试,我一般用Visual Studio编程