Bonjour à tous,
je suis en charge depuis 1 mois de la migration d'une application normal vers du full-web.
La techno choisis est GWT, et donc je suis en ce moment dans une phase apprentissage du frameworks. Ca s'apprend vite c'est du java^^
L'appli utilise une base de données mysql et pour la persistence des données on utilise hibernate.
Et la GWT et son "tout en java" est devient vraiment interessant. J'aimerais donc utilisé mes objets du domaine sur mon client.
Donc pour ca j'ai téléchargé la bibliothèque Gilead qui permet de passer outre les problème de proxy lié à Hibernate.
Mais j'arrive pas à faire fonctionner tout ca ensemble :s
L'apelle asynchrone de GWT fonctionne bien, la connexion à la base avec GWT également, et les deux ensemble aussi SEULEMENT QUAND je n'essai pas de transmettre des objets issues du domaine (un String par exemple)
Voici mon code :
Mon interface :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 public interface TestService extends RemoteService { public Wgpays verifLogin(String nom, String mdp); }
L'implémentation de l'interface :
Ma classe manager de l'objet du domaine :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
41
42
43 public class TestServiceImpl extends PersistentRemoteService implements TestService { public TestServiceImpl() { HibernateUtil persistenceUtil = new HibernateUtil(); persistenceUtil .setSessionFactory(new Configuration().configure().buildSessionFactory()); PersistentBeanManager beanManager = new PersistentBeanManager(); beanManager.setPersistenceUtil(persistenceUtil ); beanManager.setProxyStore(new StatelessProxyStore()); setBeanManager(beanManager); } public Wgpays verifLogin(String nom, String mdp) { String ret; System.out.println("veriflogin"); Wgpays pays = new Wgpays("France", null); WgpaysManager.ajouterPays(pays); System.out.println("pays : "+pays.getSNom()); if(nom.equals("romain") && mdp.equals("aze")){ ret="ok"; } else{ ret="ko"; } return pays; } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 public class WgpaysManager{ public static void ajouterPays(Wgpays p){ try { Session session = (Session) HibernateUtil.currentSession(); session.beginTransaction(); session.save(p); session.getTransaction().commit(); HibernateUtil.closeSession(); } catch (HibernateException e) { e.printStackTrace(); } } }
ma classe WGpays
C'est peut-être moi qui n'ai absolument pas compris l'utilisation de gilead...faut dire que moi et l'anglais ^^
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 public class Wgpays extends LightEntity implements java.io.Serializable { private Integer id; private String SNom; private Set wgvilleses = new HashSet(0); public Wgpays() { } public Wgpays(String SNom, Set wgvilleses) { this.SNom = SNom; this.wgvilleses = wgvilleses; } public Integer getId() { return this.id; } public void setId(Integer id) { this.id = id; } public String getSNom() { return this.SNom; } public void setSNom(String SNom) { this.SNom = SNom; } public Set getWgvilleses() { return this.wgvilleses; } public void setWgvilleses(Set wgvilleses) { this.wgvilleses = wgvilleses; } }
edit :
j'ai oublié de mettre l'erreur, voila ce qui apparait dans le host de GWT, mais ce n'est pas signalé comme une erreur mais un avertissement :
merci d'avance
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 [WARN] StandardContext[]Exception while dispatching incoming RPC call java.lang.NoSuchMethodError: net.sf.beanlib.hibernate3.Hibernate3BeanTransformer.initCustomTransformerFactory(Lnet/sf/beanlib/spi/CustomBeanTransformerSpi$Factory;)Lnet/sf/beanlib/provider/BeanTransformer; at net.sf.gilead.core.beanlib.clone.CloneBeanReplicator.newBeanTransformer(CloneBeanReplicator.java:73) at net.sf.gilead.core.beanlib.clone.CloneBeanReplicator.<init>(CloneBeanReplicator.java:44) at net.sf.gilead.core.LazyKiller.clone(LazyKiller.java:233) at net.sf.gilead.core.LazyKiller.detach(LazyKiller.java:191) at net.sf.gilead.core.PersistentBeanManager.clonePojo(PersistentBeanManager.java:374) at net.sf.gilead.core.PersistentBeanManager.clone(PersistentBeanManager.java:248) at net.sf.gilead.gwt.GileadRPCHelper.parseReturnValue(GileadRPCHelper.java:126) at net.sf.gilead.gwt.PersistentRemoteService.processCall(PersistentRemoteService.java:153) at com.google.gwt.user.server.rpc.RemoteServiceServlet.doPost(RemoteServiceServlet.java:86) at javax.servlet.http.HttpServlet.service(HttpServlet.java:709) at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) at com.google.gwt.dev.shell.GWTShellServlet.service(GWTShellServlet.java:289) at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929) at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705) at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683) at java.lang.Thread.run(Unknown Source)
Partager