Problème avec GWT/Restlet (Datastore GAE) !
Bonjour tout le monde !!!
après quelques heures de travail en m'inspirant de tutos, j'ai réussi à enregistrer une occurrence dans le datastore (A partir d'une appli android) !!! yehhhbaaaa !!!!
malheureusement ... et oui ... cela ne fonctionne qu'une seule fois !!!
une fois l'appli web déployée sur l'App engine, je ne peux accéder à la page xxxxxx.appspot.com/rest/experience qu'une seule fois (et voir le résultat de mes données) !!! ensuite j'ai le message suivant :
Internal Server Error
You can get technical details here.
Please continue your visit at our home page.
je ne sais pas comment m'y prendre pour faire un debug...
une idée du problème ? :-)
j'ai les 4 fichiers sur la partie serveur :
1/ Container.java :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
package com.morey.appli.server;
import java.util.ArrayList;
import java.util.List;
import com.morey.appli.model.Experience;
public class Container {
public List<Experience> experience_list;
public List<Experience> getExperience_list() {
return experience_list;
}
public void setExperience_list(List<Experience> experience_list) {
this.experience_list = experience_list;
}
public Container() {
experience_list = new ArrayList<Experience>();
}
public Container(List<Experience> experience_list) {
this.experience_list = experience_list;
}
} |
2/ ExperienceController.java :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
|
package com.morey.appli.server;
import java.util.ArrayList;
import java.util.List;
import org.restlet.resource.ServerResource;
import com.googlecode.objectify.Objectify;
import com.googlecode.objectify.ObjectifyService;
import com.googlecode.objectify.Query;
import com.morey.appli.model.Experience;
public class ExperienceController extends ServerResource implements
ExperienceControllerInterface {
public ExperienceController() {
}
@Override
public void create(Experience experience) {
ObjectifyService.register(Experience.class);
Objectify ofy = ObjectifyService.begin();
Experience tp = new Experience();
tp.setPrenom(experience.getPrenom());
tp.setNom(experience.getNom());
tp.setTitre(experience.getTitre());
tp.setCategorie(experience.getCategorie());
tp.setCommentaire(experience.getCommentaire());
tp.setNote(experience.getNote());
ofy.put(tp);
}
@Override
public Container getAllExperiences() {
Container content = null;
List<Experience> experiences = new ArrayList<Experience>();
ObjectifyService.register(Experience.class);
Objectify ofy = ObjectifyService.begin();
Query<Experience> q = ofy.query(Experience.class);
for (Experience u : q)
experiences.add(u);
content = new Container();
content.setExperience_list(experiences);
return content;
}
} |
3/ ExperienceControllerInterface.java :
Code:
1 2 3 4 5 6 7 8 9 10 11
|
package com.morey.appli.server;
import org.restlet.resource.Get;
import org.restlet.resource.Put;
import com.morey.appli.model.Experience;
public interface ExperienceControllerInterface {
@Put
void create(Experience experience);
@Get
Container getAllExperiences();
} |
4/ RestletDispatch.java :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
package com.morey.appli.server;
import org.restlet.Application;
import org.restlet.Restlet;
import org.restlet.routing.Router;
public class RestletDispatch extends Application
{
@Override
public synchronized Restlet createInboundRoot()
{
final Router router = new Router(getContext());
router.attach("/experience", ExperienceController.class);
return router;
}
} |
Le fichier servlet.java :
le fichier web.xml :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
|
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5" xmlns="http://java.sun.com/xml/ns/javaee">
<context-param>
<param-name>org.restlet.application</param-name>
<param-value>com.morey.appli.server.RestletDispatch</param-value>
</context-param>
<servlet>
<servlet-name>appli</servlet-name>
<servlet-class>com.morey.appli.servlet
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>appli</servlet-name>
<url-pattern>/appli</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>RestletServlet</servlet-name>
<servlet-class>
org.restlet.ext.servlet.ServerServlet
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>RestletServlet</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
<!-- Default page to serve -->
<welcome-file-list>
<welcome-file>Site.html</welcome-file>
</welcome-file-list>
</web-app> |
Merci pour votre aide !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!