IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Services Web Java Discussion :

[WS][ArrayList]Retourner une liste d'objet


Sujet :

Services Web Java

  1. #1
    Membre régulier

    Profil pro
    Laveur
    Inscrit en
    Avril 2004
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Laveur

    Informations forums :
    Inscription : Avril 2004
    Messages : 142
    Points : 81
    Points
    81
    Par défaut [WS][ArrayList]Retourner une liste d'objet
    bonjour,

    J'essai vainement de renvoyer un tableau d'objets (ArrayList, List, etc...) mais j'ai toujours le même warning et plantage avec RAD7 et JAX-RPC 1.1 :

    ArrayList ne valide pas les spéc JAX-RPC 1.1

    Pourtant il semble que ce sont des types supportés.
    J'ai essayé de passer par un tableau d'objets, mais la encore une erreur propre WS :

    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
    [11/01/10 17:31:09:239 CET] 00000034 ServletWrappe E   SRVE0068E: Exception non interceptée émise par une des méthodes de service du servlet : com_bnpparibas_services_appli_dlf_evt_Appli_Dlf_Evt. Exception : java.lang.NullPointerException
    	at com.ibm.ws.webservices.engine.transport.http.WebServicesServlet.processWsdlRequest(WebServicesServlet.java:315)
    	at com.ibm.ws.webservices.engine.transport.http.WebServicesServlet.doGet(WebServicesServlet.java:624)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:743)
    	at com.ibm.ws.webservices.engine.transport.http.WebServicesServletBase.service(WebServicesServletBase.java:341)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
    	at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1146)
    	at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:593)
    	at com.ibm.ws.wswebcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:533)
    	at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3548)
    	at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:269)
    	at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:818)
    	at com.ibm.ws.wswebcontainer.WebContainer.handleRequest(WebContainer.java:1478)
    	at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:125)
    	at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:458)
    	at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:387)
    	at com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:102)
    	at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165)
    	at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
    	at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)
    	at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:136)
    	at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:196)
    	at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:751)
    	at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:881)
    	at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1497)
    Voici le code du service à implémenté :

    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
    public class Appli_Evt {
    	public Appli_Evt(){
    		super();
    	}
     
    	public Evt[] getEvt(String dateFile){
    		List<Evt> evtList = new ArrayList<Evt>();
    		try{
    			File f = new File(dateFile);
    			System.out.println("Used file : "+f.getCanonicalPath());
    			FileReader fr = new FileReader(f.getName());
    			BufferedReader br = new BufferedReader(fr);
     
    			String line = br.readLine();
     
    			while ((line = br.readLine()) != null){
     
    				if (line.trim().length() > 11){
    					Evt evt = new Evt();
    					evt.setXXX(line.substring(02, 11));
    					evt.setYYY(line.substring(11,21));
    					evt.setDDD(line.substring(21,25));
    					evt.setEEE(line.substring(25,29));
    					...
    					evtList.add(evt);
    				}
    			}
    		}catch(IOException ioe){
    			ioe.printStackTrace();
    		}
    	return (Evt[])evtList.toArray();
    	}	
    }

    Quelles sont les solutions possible ?

    Merci.

  2. #2
    Membre actif

    Inscrit en
    Octobre 2009
    Messages
    133
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 133
    Points : 295
    Points
    295
    Par défaut
    Bonjour,

    je dirait que ton erreur viendrait plutôt d'un NullPointerException et non pas de ta classe en elle-même.
    En recopiant ton code et en mettant null comme paramètre a getEvt, je tombe sur un NullPointerException.

    Tu devrais essayer d'afficher la valeur de ton paramètre avant de créer le File pour voir si ton problème ne viendrait pas de la.

    De même, la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    return (Evt[])evtList.toArray();
    renvoie normalement une exception Cast, il te faut en fait définir ta collection dans la méthode array et non en castant, du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    return evtList.toArray(new Evt[evtList.size()]);

  3. #3
    Membre régulier

    Profil pro
    Laveur
    Inscrit en
    Avril 2004
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Laveur

    Informations forums :
    Inscription : Avril 2004
    Messages : 142
    Points : 81
    Points
    81
    Par défaut
    Merci pour ta réponse,
    mais quoiqu'il arrive j'ai un warning qui me dit que le type List n'entre pas dans la validation jax-rpc
    je ne sais pas trop quoi faire là

Discussions similaires

  1. Réponses: 2
    Dernier message: 16/01/2012, 09h28
  2. methode serveur qui retourne une liste d'objet
    Par harbi dans le forum Windows Communication Foundation
    Réponses: 1
    Dernier message: 01/12/2008, 09h11
  3. trier une liste d'objets dans une ArrayList
    Par sandrine49 dans le forum Collection et Stream
    Réponses: 9
    Dernier message: 13/10/2008, 08h59
  4. methode qui retourne une liste d'objets du meme type
    Par anoukhan dans le forum Oracle
    Réponses: 8
    Dernier message: 12/01/2006, 18h38
  5. [MFC] Retourner une liste d'objets
    Par 1cado dans le forum MFC
    Réponses: 10
    Dernier message: 28/07/2003, 12h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo