Wednesday, May 23, 2012

Re: Null pointer

You're formData map is probably null. Just a guess, but I think you need to be more specific with your Map class, using, say Map<K,V> or something more specific. From the develper's guide:

Raw Types

Collection classes such as java.util.Set and java.util.List are tricky because they operate in terms of Object instances. To make collections serializable, you should specify the particular type of objects they are expected to contain through normal type parameters (for example, Map<Foo,Bar> rather than just Map). If you use raw collections or maps you will get bloated code and be vulnerable to denial of service attacks.


See https://developers.google.com/web-toolkit/doc/latest/DevGuideServerCommunication#DevGuideRemoteProcedureCalls



On Wednesday, May 23, 2012 3:12:22 AM UTC-4, SCK wrote:
Hi

 I try to connect to my database with GWT RPC. But i get a error.

Help please

Thks



java.lang.NullPointerException
        at
org.etude.gwt.server.DatabaseServiceImpl.saveData(DatabaseServiceImpl.java:
37)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at
com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:
569)
        at
com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:
208)
        at
com.google.gwt.user.server.rpc.RemoteServiceServlet.processPost(RemoteServiceServlet.java:
248)
        at
com.google.gwt.user.server.rpc.AbstractRemoteServiceServlet.doPost(AbstractRemoteServiceServlet.java:
62)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
        at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:
487)
        at
org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:
362)
        at
org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:
216)
        at
org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:
181)
        at
org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:
729)
        at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:
405)
        at
org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:
152)
        at
org.mortbay.jetty.handler.RequestLogHandler.handle(RequestLogHandler.java:
49)
        at
org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:
152)
        at org.mortbay.jetty.Server.handle(Server.java:324)
        at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:
505)
        at org.mortbay.jetty.HttpConnection
$RequestHandler.content(HttpConnection.java:843)
        at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:647)
        at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:205)
        at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)
        at
org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:
395)
        at org.mortbay.thread.QueuedThreadPool
$PoolThread.run(QueuedThreadPool.java:488)





package org.etude.gwt.server;

import java.net.URLDecoder;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.Statement;
import java.util.Map;

import org.etude.gwt.client.DatabaseService;

import com.google.gwt.user.server.rpc.RemoteServiceServlet;

public class DatabaseServiceImpl extends RemoteServiceServlet
implements
                DatabaseService {

        /**
         *
         */
        private static final long serialVersionUID = 1L;

        @SuppressWarnings("rawtypes")
        @Override
        public void saveData(Map formData) throws IllegalArgumentException {

                try{
                        Class.forName("com.mysql.jdbc.Driver");
                        Connection conn = DriverManager.getConnection("jdbc:mysql://
localhost:3306/oracle", "root", "");

                        Statement st = conn.createStatement();

                        //avec décodage
                        StringBuffer sqlQuery = new StringBuffer("insert into
gwtusers(username,password,email,phone)");
                        sqlQuery.append("values(?,?,?,?)");

                        PreparedStatement stmt =
conn.prepareStatement(sqlQuery.toString());
        LINE 37
stmt.setString(1,URLDecoder.decode(formData.get("username").toString(),"UTF-8"));
        
stmt.setString(2,URLDecoder.decode(formData.get("password").toString(),"UTF-8"));
        
stmt.setString(3,URLDecoder.decode(formData.get("email").toString(),"UTF-8"));
        
stmt.setString(4,URLDecoder.decode(formData.get("phone").toString(),"UTF-8"));
                        stmt.execute();

                        //sans décodage
                        st.executeQuery("insert into gwtusers values
('"+formData.get("username").toString()+
                                        "','"+formData.get("password").toString()+
                                        "','"+formData.get("email").toString()+
                                        "','"+formData.get("phone").toString()+"')");

                        conn.close();
                        //stmt.close();
                        //st.close();


                }catch(Exception e){
                        e.printStackTrace();
                }

        }

}

--
You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group.
To view this discussion on the web visit https://groups.google.com/d/msg/google-web-toolkit/-/Lc8VX8-cvGUJ.
To post to this group, send email to google-web-toolkit@googlegroups.com.
To unsubscribe from this group, send email to google-web-toolkit+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.

No comments:

Post a Comment