Problème test Service Web avec hibernate+mysql+netbeans

superkoko1986 Messages postés 2 Date d'inscription samedi 21 novembre 2009 Statut Membre Dernière intervention 4 mars 2010 - 31 déc. 2009 à 18:42
cs_zikovich Messages postés 1 Date d'inscription lundi 18 février 2008 Statut Membre Dernière intervention 4 mars 2011 - 4 mars 2011 à 16:49
Bonjour,

J'ai un petit soucis avec mon web service. En fait le build et le deploy fonctionne correctement mais lors du test du web service depuis le navigateur , ma méthode me retourne une liste vide tout le temps.

Mon fichier hibernate xml dans le package source est le suivant:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
org.hibernate.dialect.MySQLDialect


com.mysql.jdbc.Driver


jdbc:mysql://localhost:3306/agence


root


superkoko


true


thread


<mapping resource="operation/ws/Vol.hbm.xml"/>
<mapping resource="operation/ws/Reservation.hbm.xml"/>
<mapping resource="operation/ws/Clients.hbm.xml"/>
</session-factory>
</hibernate-configuration>

le fichier de xml pour les mapping est correct et placé dans le package operation.ws .

ma méthode de service est :

@WebMethod(operationName = "recherche")
public Vol recherche(@WebParam(name = "depart")
String depart, @WebParam(name = "arrivee")
String arrivee) {
//TODO write your implementation code here:

VolHelper helper = new VolHelper();
System.out.println("voila");
Vol vol = helper.getVol(depart, arrivee);

return vol;
}

La methode getVol:

public Vol getVol(String depart, String arrivee) {
Vol vol = null;
List<Vol> volList = null;
try {
org.hibernate.Transaction tx = session.beginTransaction();
Query q = session.createQuery ("from Vol as vol where vol.depart='" + depart +"' and vol.arrivee='" + arrivee +"' " );
volList = (List<Vol>) q.list();
vol = (Vol) volList.get(0);
tx.commit();

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

Le "voila" s'affiche a la console, mais le soap response ne renvoie rien, pourtant, mysql lancé et j'ai fait le test avec une requête depuis la ligne de commande et il renvoie la table.

J'ai effectué un test aussi pour ajouter un élément dans la table, mais rien, ca retourne false.

J'ai placer un try-catch pour voir le soucis et j'ai l'affichage dans la console:


INFO: Loading application agenceOperation at /agenceOperation
INFO: agenceOperation was successfully deployed in 3 515 milliseconds.
INFO: Metro monitoring rootname successfully set to: amx:pp=/mon/server-mon[server],type=WSEndpoint,name=/agenceOperation-VolHelperWsService-VolHelperWsPort
INFO: parsing WSDL...

INFO: generating code...

INFO: compiling code...

INFO: Invoking wsimport with http://localhost:8080/agenceOperation/VolHelperWsService?WSDL
INFO: wsimport successful
INFO: parsing WSDL...

INFO: generating code...

INFO: compiling code...

INFO: Invoking wsimport with http://localhost:8080/agenceOperation/VolHelperWsService?WSDL
INFO: wsimport successful
INFO: voila
GRAVE: java.lang.NullPointerException
at operation.ws.VolHelper.getVol(VolHelper.java:28)
at operation.ws.VolHelperWs.recherche(VolHelperWs.java:40)
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 org.glassfish.webservices.InstanceResolverImpl$1.invoke(InstanceResolverImpl.java:137)
at com.sun.xml.ws.server.InvokerTube$2.invoke(InvokerTube.java:146)
at com.sun.xml.ws.server.sei.EndpointMethodHandler.invoke(EndpointMethodHandler.java:257)
at com.sun.xml.ws.server.sei.SEIInvokerTube.processRequest(SEIInvokerTube.java:95)
at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:629)
at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:588)
at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:573)
at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:470)
at com.sun.xml.ws.api.pipe.helper.AbstractTubeImpl.process(AbstractTubeImpl.java:112)
at org.glassfish.webservices.MonitoringPipe.process(MonitoringPipe.java:138)
at com.sun.xml.ws.api.pipe.helper.PipeAdapter.processRequest(PipeAdapter.java:115)
at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:629)
at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:588)
at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:573)
at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:470)
at com.sun.xml.ws.api.pipe.helper.AbstractTubeImpl.process(AbstractTubeImpl.java:112)
at com.sun.enterprise.security.webservices.CommonServerSecurityPipe.processRequest(CommonServerSecurityPipe.java:195)
at com.sun.enterprise.security.webservices.CommonServerSecurityPipe.process(CommonServerSecurityPipe.java:127)
at com.sun.xml.ws.api.pipe.helper.PipeAdapter.processRequest(PipeAdapter.java:115)
at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:629)
at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:588)
at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:573)
at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:470)
at com.sun.xml.ws.server.WSEndpointImpl$2.process(WSEndpointImpl.java:295)
at com.sun.xml.ws.transport.http.HttpAdapter$HttpToolkit.handle(HttpAdapter.java:515)
at com.sun.xml.ws.transport.http.HttpAdapter.handle(HttpAdapter.java:285)
at com.sun.xml.ws.transport.http.servlet.ServletAdapter.handle(ServletAdapter.java:143)
at org.glassfish.webservices.JAXWSServlet.doPost(JAXWSServlet.java:147)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:754)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1523)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:343)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:215)
at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:277)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:188)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:641)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:97)
at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:85)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:185)
at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:332)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:233)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:165)
at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:791)
at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:693)
at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:954)
at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:170)
at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:135)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:102)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:88)
at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:76)
at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:53)
at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:57)
at com.sun.grizzly.ContextTask.run(ContextTask.java:69)
at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:330)
at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:309)
at java.lang.Thread.run(Thread.java:619)


Est ce qu'il est possible de m'expliquer le problème et comment le résoudre ? SVP.

Merci. et Bonne fin d'année.


koko1986

2 réponses

superkoko1986 Messages postés 2 Date d'inscription samedi 21 novembre 2009 Statut Membre Dernière intervention 4 mars 2010
31 déc. 2009 à 20:06
C'est bon j'ai résolu mon problème.
Il fallait initialiser à chaque fois la session dans la web méthode, et non q'une seule fois avec le constructeur.

koko1986
0
cs_zikovich Messages postés 1 Date d'inscription lundi 18 février 2008 Statut Membre Dernière intervention 4 mars 2011
4 mars 2011 à 16:49
Bonjour,
est ce que tu peux déposer le bout de code que ta modifié. Je vois pas qu'est ce que tu veux dire par initialiser à chaque fois la session.
Merci.
PS : le post date de longtemps et jspr que tu receveras mon message.
0
Rejoignez-nous