|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Mar 2004
Città: castel san giorgio(salerno)
Messaggi: 1218
|
Problema lettura xml in j2me
Ciao a tutti.
Vi spiego subito la situazione: Ho una servlet che crea l'istanza di una classe, poi chiama un metodo su questa istanza. Il metodo restituisce un vettore di una classe Bean da me creata. Si chiama Contenuto questo bean. E fa un ciclo su questo vettore restituendo, tramite out.println, un xml cosi composto: Codice:
<root>
<contenuto>
<id>1</id>
<file>file.txt</file>
<testo>appunti</testo>
</contenuto>
</root>
Una thread in j2me deve invocare la servlet e mettere in una stringa il contenuto. Il problema è che legge solo il tag <root> e </root>. Non riesco acapire perchè. Ecco i codici. SERVLET: Codice:
public class GetXmlContenuti extends HttpServlet{
public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException{
GestioneDB gest = new GestioneDB();
ContenutoSpControl contrContSp=new ContenutoSpControl(gest);
ContenutoControl contContr = new ContenutoControl(gest);
Vector idContenuti = contrContSp.getIdContenuti(req.getParameter("idSp"));
Vector contenuti = contContr.getContenuti(idContenuti);
response.setContentType("text/xml");
PrintWriter out = response.getWriter();
out.println("<root>");
int i=0;
while(i<contenuti.size()){
Contenuto tempCont = (Contenuto)contenuti.elementAt(i);
Utente tempUt = utCont.getUtente(tempCont.getUtenteProprietario());
out.println("<contenuto>");
out.println("<id>" + tempCont.getId() + "</id>");
out.println("<nomeUtente>" + tempUt.getNome() + "</nomeUtente>");
out.println("<cognomeUtente>" + tempUt.getCognome() + "</cognomeUtente>");
out.println("<file>" + tempCont.getFile() + "</file>");
out.println("<testo>" + tempCont.getTesto() + "</testo>");
out.println("</contenuto>");
i++;
}
out.println("</root>");
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException,IOException{
doGet(request,response); }
}
Codice:
import org.kxml2.io.*;
import org.xmlpull.v1.*;
public class ListaContenutiThread extends Thread implements CommandListener{
public void run(){
//Connessione e acquisizione dell'output della servlet
StringBuffer xmlBuffer = new StringBuffer();
HttpConnection connessione = null;
try {
System.out.println("...Richiesta lista dei contenuti in corso...");
String URL= "http://localhost:8080/ContentDelivery/GetXmlContenuti?id=" + idSp;
connessione = (HttpConnection)Connector.open(URL);
InputStream is = connessione.openInputStream();
int ch;
int i=0;
while ((ch = is.read()) != -1) {
xmlBuffer.append( (char)ch );}
is.close();
connessione.close();
String xmlStr = xmlBuffer.toString();
}
Laservlet restituisce perfettamente l'output se la chiamo dal browser. Non capisco perchè nella stringa invece non lo ritorna bene. |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Mar 2004
Città: castel san giorgio(salerno)
Messaggi: 1218
|
Risolto, meglio se non vi dico l'errore qual'era.
Chiudete per evitare perdite di tempo. Anzi se potete cancellatela proprio. |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 11:28.



















