-=Asph@tor=-
Messages postés2Date d'inscriptionjeudi 1 octobre 2009StatutMembreDernière intervention 9 octobre 2009
-
9 oct. 2009 à 15:16
Bonjour à tous,
J'apprends à développer des Web Services. Je suis parvenu à en faire en piochant les données d'une seule table, et maintenant, je souhaite piocher dans plusieurs tables à la fois.
J'ai 4 classes dans la couche JPA:
- Pilote.java
- Circuit.java
- Victoire.java
- VictoirePK.java
et 6 dans la couche EJB:
- PiloteFacade.java + PiloteFacadeLocal.java
- CircuitFacade.java + CircuitFacadeLocal.java
- VictoireFacade.java + VictoireFacadeLocal.java
Voilà, jusque là, tout a été généré automatiquement.
Je souhaite créer un WebService qui me retourne la liste des pilotes avec le nombre de fois qu'ils ont terminé à la première place (donc récupération des "0 fois" aussi).
Voici ma requête (testée et fonctionnelle sous MySQL):
Code :
SELECT p.name, Count(v.pilote_idx) nb
FROM pilote p
LEFT OUTER JOIN victoire v
ON p.idx = v.pilote_idx AND v.place = 1
GROUP BY p.name
ORDER BY nb DESC, p.name ASC;
Je l'ai placée dans un @NamedQuery de Pilote.java (JPA). Je ne sais pas si j'ai bien fais.
Mais avec tout ça, je ne sais pas quoi faire pour faire fonctionner mon WebService. Voici ce que j'ai tenté :
1-
. créer une classe [DevClass] : name, nbVictories
. dans PiloteFacade(Local), ajouter la méthode :
Code :
public List<DevClass> getVictories() {
return em.createQuery("MA_REQUETE_CI_DESSUS").getResultList();
}
. mais quand je teste la méthode via le Web Service, j'obtiens une jolie exception :
Citation:
Service invocation threw an exception with message : null; Refer to the server log for more details
Exceptions details : java.lang.reflect.InvocationTargetException
2-
. en essayant de rajouter @ManyToOne en suivant ce tuto ou celui-ci, soit j'obtiens la même erreur, soit mon serveur plante (impossible d'undeploy, de lancer un WS, ou autre si je ne redémarre pas GlassFish).
Voilà, je sèche un peu.
Quelqu'un saurait-il m'aiguiller?
Merci d'avance...
ps: pour les plus courageux :
Citation:
Service invocation threw an exception with message : null; Refer to the server log for more details
Exceptions details : java.lang.reflect.InvocationTargetException
javax.servlet.ServletException: java.lang.reflect.InvocationTargetException at com.sun.enterprise.webservice.monitoring.WebServiceTesterServlet.doPost(WebServiceTesterServlet.java:345) at com.sun.enterprise.webservice.monitoring.WebServiceTesterServlet.invoke(WebServiceTesterServlet.java:121) at com.sun.enterprise.webservice.JAXWSServlet.doPost(JAXWSServlet.java:166) at javax.servlet.http.HttpServlet.service(HttpServlet.java:754) at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:427) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:315) at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:287) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:218) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593) at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94) at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:98) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:222) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1096) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:166) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1096) at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:288) at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:647) at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:579) at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:831) at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:341) at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:263) at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:214) at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:265) at com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106) Caused by: java.lang.reflect.InvocationTargetException 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 com.sun.enterprise.webservice.monitoring.WebServiceTesterServlet.doPost(WebServiceTesterServlet.java:316) ... 31 more Caused by: javax.xml.ws.soap.SOAPFaultException: javax.ejb.EJBException at com.sun.xml.ws.fault.SOAP11Fault.getProtocolException(SOAP11Fault.java:188) at com.sun.xml.ws.fault.SOAPFaultBuilder.createException(SOAPFaultBuilder.java:108) at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:119) at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:89) at com.sun.xml.ws.client.sei.SEIStub.invoke(SEIStub.java:118) at $Proxy171.getWons(Unknown Source) ... 36 more