[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:
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:
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.