SALVE A TUTTI,
ho bisogno del vostro aiuto esperto su Android.
Spiego la questione per la mia tesi di Laurea stò sviluppando u framework di sviluppo client Web-services su Android.Il tool prende in input un wsdl si unservizio web, genera l'interfaccia e implementa i metodi per l'utilizzo del servizio. Successivamente dopo aver messo il servizio sul server (tomcat 6.0) tramite l'utilizzo di k2soap cerco di utilizzarlo con Android Ma l'emulatore mi termina il processo.
ora vi posto il codice che non ho problemi a rendere publico sperando in una mano che mi permetta di laurearmi altrimenti avrò buttato 7 mesi della mia vita!!!
Ho importato come Source Package le mie classi generate dal framework:
package (Rubrica2)
1)indirizzo.java
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package Rubrica2;
/**
*
* @author Pc
*/
public class indirizzo {
private int numeroCiv;
public void setnumeroCiv(int arg) {
this.numeroCiv = arg;
}
public int getnumeroCiv() {
return this.numeroCiv;
}
private java.lang.String strada;
public void setstrada(java.lang.String arg) {
this.strada = arg;
}
public java.lang.String getstrada() {
return this.strada;
}
private java.lang.String citta;
public void setcitta(java.lang.String arg) {
this.citta = arg;
}
public java.lang.String getcitta() {
return this.citta;
}
private java.lang.String provincia;
public void setprovincia(java.lang.String arg) {
this.provincia = arg;
}
public java.lang.String getprovincia() {
return this.provincia;
}
private java.lang.String stato;
public void setstato(java.lang.String arg) {
this.stato = arg;
}
public java.lang.String getstato() {
return this.stato;
}
private int zip;
public void setzip(int arg) {
this.zip = arg;
}
public int getzip() {
return this.zip;
}
private Rubrica2.telefono telefono;
public void settelefono(Rubrica2.telefono arg) {
this.telefono = arg;
}
public Rubrica2.telefono gettelefono() {
return this.telefono;
}
}
2)telefono
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package Rubrica2;
/**
*
* @author Pc
*/
public class telefono {
private int prefissoInt;
public void setprefissoInt(int arg) {
this.prefissoInt = arg;
}
public int getprefissoInt() {
return this.prefissoInt;
}
private int prefissoArea;
public void setprefissoArea(int arg) {
this.prefissoArea = arg;
}
public int getprefissoArea() {
return this.prefissoArea;
}
private int numero;
public void setnumero(int arg) {
this.numero = arg;
}
public int getnumero() {
return this.numero;
}
}
3)Rubrica.java(interfaccia)
package Rubrica2;
public interface Rubrica {
public indirizzo aggiungiIndirizzo (indirizzo indirizzo, java.lang.String nome);
public java.lang.String getIndirizzoByNome (java.lang.String nome);
}
4)RubricaSOAPBinding
package Rubrica2;
import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapSerializationEnvelope ;
import org.ksoap2.transport.HttpTransport;
public class RubricaSOAPBinding implements Rubrica {
private String location;
void setLocation(String location) {
this.location = location;
}
public indirizzo aggiungiIndirizzo (indirizzo indirizzo, java.lang.String nome) {
String _soapAction = "";
String _namespace = "urn:Rubrica2";
String _methodName = "aggiungiIndirizzo";
String _url = this.location;
Object _resultRequestSOAP = null;
SoapObject request = new SoapObject(_namespace, _methodName);
request.addProperty("indirizzo", indirizzo);
request.addProperty("nome", nome);
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.setOutputSoapObject(request);
HttpTransport androidHttpTransport = new HttpTransport(_url);
try {
androidHttpTransport.call(_soapAction, envelope);
_resultRequestSOAP = envelope.getResponse();
} catch(Exception ex) {
System.out.println("Exception Message: " + ex.getMessage());
ex.printStackTrace();
return null;
}
return (indirizzo)_resultRequestSOAP;
}
public java.lang.String getIndirizzoByNome (java.lang.String nome) {
String _soapAction = "";
String _namespace = "urn:Rubrica2";
String _methodName = "getIndirizzoByNome";
String _url = this.location;
Object _resultRequestSOAP = null;
SoapObject request = new SoapObject(_namespace, _methodName);
request.addProperty("nome", nome);
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.setOutputSoapObject(request);
HttpTransport androidHttpTransport = new HttpTransport(_url);
try {
androidHttpTransport.call(_soapAction, envelope);
_resultRequestSOAP = envelope.getResponse();
} catch(Exception ex) {
System.out.println("Exception Message: " + ex.getMessage());
ex.printStackTrace();
return null;
}
return (java.lang.String)_resultRequestSOAP;
}
}
5)RubricaService (descrittore del servizio ,porta e webservices in attesa )
package Rubrica2;
/**
*
* @author Pc
*/
public class RubricaService {
public static Rubrica getRubricaSOAPBinding() {
RubricaSOAPBinding tmp = new RubricaSOAPBinding();
tmp.setLocation("http://127.0.0.1:8080/WebServer1Rubrica/");
return tmp;
}
}
Successivamente dopo aver creato un mio package ho modificato la classe MainActivity
1)MainActivity.java
package org.me.androidapplication;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
import Rubrica2.*;
/**
*
* @author Pc
*/
public class MainActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
// ToDo add your GUI initialization code here
TextView tv = new TextView(this);
setContentView(tv);
try
{
Rubrica rubService = (Rubrica)RubricaService.getRubricaSOAPBinding();
String indirizzo = rubService.getIndirizzoByNome("ciao");
tv.setText(indirizzo);
}
catch(Exception ex)
{
tv.setText(ex.getMessage());
System.out.println(ex.getMessage());
}
catch(Error er)
{
tv.setText(er.getMessage());
System.out.println(er.getCause());
System.out.println(er.getMessage());
}
}
}
----------------
----------------
Purtoppo la chiamata
Rubrica rubService = (Rubrica)RubricaService.getRubricaSOAPBinding();
non viene proprio eseguita, l'emulatore stoppa il processo ,facendo debug wsu questa classe la console di netBeans mi dà questo errore :
Attaching to localhost:8614
Not able to submit breakpoint LineBreakpoint MainActivity.java : 23, reason: No source root found for URL 'file:/C:/Documents%20and%20Settings/Pc/Documenti/NetBeansProjects/AndroidSWClient/src/org/luca/androidswclient/MainActivity.java'. Verify the setup of project sources.
Invalid LineBreakpoint MainActivity.java : 23
Vi prego AIUTATEMI A LAUREARMI