GWT with JDO problem

Posted by Maksim on Stack Overflow See other posts from Stack Overflow or by Maksim
Published on 2009-06-12T18:23:08Z Indexed on 2010/06/16 5:42 UTC
Read the original article Hit count: 320

I just start playing with GWT I'm having a really hard time to make GWT + JAVA + JDO + Google AppEngine working with DataStore. I was trying to follow different tutorial but had no luck. For example I wend to these tutorials: TUT1 TUT2

I was not able to figure out how and what i need to do in order to make this work. Please look at my simple code and tell me what do i need to do so i can persist it to the datastore:

1. ADDRESS ENTITY

package com.example.rpccalls.client;

import java.io.Serializable;

import javax.jdo.annotations.IdGeneratorStrategy;
import javax.jdo.annotations.Persistent;
import javax.jdo.annotations.PrimaryKey;

public class Address implements Serializable{

    @PrimaryKey
    @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
    private int addressID;
    @Persistent private String address1;
    @Persistent private String address2;
    @Persistent private String city;
    @Persistent private String state;
    @Persistent private String zip;

    public Address(){}

    public Address(String a1, String a2, String city, String state, String zip){
    	this.address1 = a1;
    	this.address2 = a2;
    	this.city = city;
    	this.state = state;
    	this.zip = zip;
    }

    /* Setters and Getters */
}

2. PERSON ENTITY

package com.example.rpccalls.client;

import java.io.Serializable;
import java.util.ArrayList;

import javax.jdo.annotations.IdGeneratorStrategy;
import javax.jdo.annotations.PersistenceCapable;
import javax.jdo.annotations.Persistent;
import javax.jdo.annotations.PrimaryKey;

import com.google.appengine.api.datastore.Key;

@PersistenceCapable
public class Person implements Serializable{

    @PrimaryKey
    @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
    private Key key;
    @Persistent private String name;
    @Persistent private int age;
    @Persistent private char gender;
    @Persistent ArrayList<Address> addresses;

    public Person(){}

    public Person(String name, int age, char gender){
    	this.name = name;
    	this.age = age;
    	this.gender = gender;
    }

    /* Getters and Setters */
}

3. RPCCalls

package com.example.rpccalls.client;

import java.util.ArrayList;

import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.core.client.GWT;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.RootPanel;
import com.google.gwt.user.client.ui.TextBox;


public class RPCCalls implements EntryPoint {

    private static final String SERVER_ERROR = "An error occurred while attempting to contact the server. Please check your network connection and try again.";

    private final RPCCallsServiceAsync rpccallService = GWT.create(RPCCallsService.class);

    TextBox nameTxt = new TextBox();
    Button btnSave = getBtnSave();

    public void onModuleLoad() {

    	RootPanel.get("inputName").add(nameTxt);	
    	RootPanel.get("btnSave").add(btnSave);
    }



    private Button getBtnSave(){

    	Button btnSave = new Button("SAVE");

    	btnSave.addClickHandler(
    			new ClickHandler(){
    				public void onClick(ClickEvent event){
    					saveData2DB(nameTxt.getText());
    				}
    			}	
    	);
    	return btnSave;
    }

    void saveData2DB(String name){		
    	AsyncCallback<String> callback = new AsyncCallback<String>() {
    		public void onFailure(Throwable caught) {
    	        Window.alert("WOOOHOOO, ERROR: " + SERVER_ERROR);
   
        

© Stack Overflow or respective owner

Related posts about java

Related posts about google-app-engine