ho l'impressione che è il mio caso avevo già fatto qualche test ma andava sempre male XD comunque appen provo ti mando il logcat magari aiuta
Eheh, beh intendo questo. Se tu in Java dichiari una variabile:
Date lamiadata;
Puoi assegnarle il valore:
lamiadata = "2012-07-19 ecc"
La parte destra la ricostruisci manipolando la stringa
Dai 1 occhio qui per esempio http://www.jondev.net/articles/Strin...Java_(Android)
E a queste specifiche ovviamente http://developer.android.com/referen...ateFormat.html
Inviato dal mio GT-N7000 con Tapatalk 2
Ultima modifica di frank17next; 19-07-12 alle 11:00
Nexus 6 - 5.0.1 Stock
Nexus 5 - 5.0.1 Stock + Root
Galaxy Note 3 GT-N9005 - 4.4.4 Stock + Root
Galaxy Tab 10.1 Slim P7500 - [JB] CyanogenMod 10 4.1.2 Pershoot (Nightly 20121013)
------------------------------------------------------------------------
https://sites.google.com/site/frank17next/
Sisi, il logcat è necessario analizzarlo
Inviato dal mio GT-N7000 con Tapatalk 2
Ultima modifica di frank17next; 19-07-12 alle 11:10
Nexus 6 - 5.0.1 Stock
Nexus 5 - 5.0.1 Stock + Root
Galaxy Note 3 GT-N9005 - 4.4.4 Stock + Root
Galaxy Tab 10.1 Slim P7500 - [JB] CyanogenMod 10 4.1.2 Pershoot (Nightly 20121013)
------------------------------------------------------------------------
https://sites.google.com/site/frank17next/
Ecco il logcat questo però mi sembra più che altro un problema di un istanza a null...
07-19 12:34:31.817: W/System.err(1187): SoapFault - faultcode: 'soap:Server' faultstring: 'Impossibile elaborare la richiesta. ---> Riferimento a un oggetto non impostato su un'istanza di oggetto.' faultactor: 'null' detail: org.kxml2.kdom.Node@4057a668
07-19 12:34:31.847: W/System.err(1187): at org.ksoap2.serialization.SoapSerializationEnvelope .parseBody(SoapSerializationEnvelope.java:141)
07-19 12:34:31.856: W/System.err(1187): at org.ksoap2.SoapEnvelope.parse(SoapEnvelope.java:14 0)
07-19 12:34:31.877: W/System.err(1187): at org.ksoap2.transport.Transport.parseResponse(Trans port.java:100)
07-19 12:34:31.887: W/System.err(1187): at org.ksoap2.transport.HttpTransportSE.call(HttpTran sportSE.java:214)
07-19 12:34:31.887: W/System.err(1187): at org.ksoap2.transport.HttpTransportSE.call(HttpTran sportSE.java:96)
07-19 12:34:31.899: W/System.err(1187): at skolidspeak.test.test.webservicesync$1.onClick(web servicesync.java:189)
07-19 12:34:31.907: W/System.err(1187): at android.view.View.performClick(View.java:2485)
07-19 12:34:31.917: W/System.err(1187): at android.view.View$PerformClick.run(View.java:9080)
07-19 12:34:31.927: W/System.err(1187): at android.os.Handler.handleCallback(Handler.java:587 )
07-19 12:34:31.936: W/System.err(1187): at android.os.Handler.dispatchMessage(Handler.java:92 )
07-19 12:34:31.957: W/System.err(1187): at android.os.Looper.loop(Looper.java:123)
07-19 12:34:31.967: W/System.err(1187): at android.app.ActivityThread.main(ActivityThread.jav a:3683)
07-19 12:34:31.977: W/System.err(1187): at java.lang.reflect.Method.invokeNative(Native Method)
07-19 12:34:31.988: W/System.err(1187): at java.lang.reflect.Method.invoke(Method.java:507)
07-19 12:34:31.998: W/System.err(1187): at com.android.internal.os.ZygoteInit$MethodAndArgsCa ller.run(ZygoteInit.java:839)
07-19 12:34:32.007: W/System.err(1187): at com.android.internal.os.ZygoteInit.main(ZygoteInit .java:597)
07-19 12:34:32.007: W/System.err(1187): at dalvik.system.NativeStart.main(Native Method)
Mi posteresti il metodo java che fa la chiamata soap?
Inviato dal mio Galaxy Nexus con Tapatalk 2
Nexus 6 - 5.0.1 Stock
Nexus 5 - 5.0.1 Stock + Root
Galaxy Note 3 GT-N9005 - 4.4.4 Stock + Root
Galaxy Tab 10.1 Slim P7500 - [JB] CyanogenMod 10 4.1.2 Pershoot (Nightly 20121013)
------------------------------------------------------------------------
https://sites.google.com/site/frank17next/
Certo eccolo:
public class webservicesync extends Activity {
//dichiarazione soap
private static String SOAP_ACTION1 = "http://tempuri.org/GetAnagrafiche";
private static String SOAP_ACTION6 = "http://tempuri.org/Autentica";
// private static String SOAP_ACTION2 = "http://tempuri.org/GetAttivita";
// private static String SOAP_ACTION3 = "http://tempuri.org/GetGruppiAttivita";
// private static String SOAP_ACTION4 = "http://tempuri.org/GetUtenti";
// private static String SOAP_ACTION5 = "http://tempuri.org/GetGruppiAnagrafici";
private static String NAMESPACE = "http://tempuri.org/";
private static String METHOD_NAME1 = "GetAnagrafiche";
private static String METHOD_NAME6 = "Autentica";
// private static String METHOD_NAME2 = "GetAttivita";
// private static String METHOD_NAME3 = "GetGruppiAttivita";
// private static String METHOD_NAME4 = "GetUtenti";
// private static String METHOD_NAME5 = "GetGruppiAnagrafici";
private static String URL = "webserver:8282/INFO5WebService.asmx";
//?WSDL
java.util.Date datStr;
// DateTime prova;
// DateTimeFormatter format = DateTimeFormat.forPattern("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.wstest);
// final SimpleDateFormat sdf = new SimpleDateFormat();
Button b = (Button) findViewById(R.id.syncb);
final EditText Ut = (EditText)this.findViewById(R.id.uten);
final EditText pass = (EditText)this.findViewById(R.id.pass);
final DatePicker dat = (DatePicker)this.findViewById(R.id.dat);
b.setOnClickListener(new OnClickListener(){
private String pas=new String();
private String Utente=new String();;
@SuppressWarnings("deprecation")
public void onClick(View v) { Date dateObj = null;Date dateObj1 = null;
final Calendar cal = GregorianCalendar.getInstance();
cal.set( dat.getYear(),dat.getMonth(),dat.getDayOfMonth());
final Date d= new Date(dat.getYear()-1900,dat.getMonth(),dat.getDayOfMonth());
final SimpleDateFormat curFormater = new SimpleDateFormat("dd mmm yyyy HH:mm:ss Z");
final String dateStr=d.toLocaleString();
/* try {
dateObj = (Date) curFormater.parse(dateStr);
} catch (ParseException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
SimpleDateFormat postFormater = new SimpleDateFormat("dd/mm/yyyy");
String newDateStr = postFormater.format(dateObj);
final SimpleDateFormat curFormater2 = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.Z");
try {
dateObj1 = (Date) curFormater2.parse(newDateStr);
} catch (ParseException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
*/
//Initialize soap request + add parameters
//final SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME6);
// SoapObject request1 = new SoapObject(NAMESPACE, METHOD_NAME2);
//SoapObject request2 = new SoapObject(NAMESPACE, METHOD_NAME3);
// SoapObject request3 = new SoapObject(NAMESPACE, METHOD_NAME4);
// SoapObject request4 = new SoapObject(NAMESPACE, METHOD_NAME5);
final SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME1);
Utente =Ut.getText().toString();
pas = pass.getText().toString();
PropertyInfo pi = new PropertyInfo();
pi.setName("DallaDataOraModifica");
pi.setValue("19/07/2012");
pi.setType(Date.class);
//Use this to add parameters per get anagrafiche
request.addProperty("Login",//Utente);
request.addProperty("Password",//pas);
request.addProperty("FiltroTipo","A");
request.addProperty("FiltroCodice","0000000839");
request.addProperty("RestituisciDettagli","false") ;
request.addProperty(pi);
//Declare the version of the SOAP request
final SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.dotNet = true;
envelope.implicitTypes=true;
envelope.setOutputSoapObject(request);
//Needed to make the internet call
final HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
try {androidHttpTransport.debug=true;
//this is the actual part that will call the webservice
androidHttpTransport.call("http://tempuri.org/Autentica", envelope);
;
} catch (Exception e) {
e.printStackTrace();}
SoapObject result = null;
try {
result = (SoapObject) envelope.getResponse();
} catch (SoapFault e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
write ("1 -"+result.toString());
// if(result != null){
//TextView t = (TextView)this.findViewById(R.id.risult);
//write ("\n"+ result.toString());
//Get the first property and change the label text
// t.setText("SOAP response:" ); //se funziona
Toast.makeText(getBaseContext(), "sincronizzazione completata",Toast.LENGTH_SHORT).show();
// result.getProperty(0);
// write ("\n2 -"+ result.getProperty("RagioneSociale").toString());
// }else write ("\n non va nell'if");
write ("\n");
}});
}
private File sd = Environment.getExternalStorageDirectory();
private File f = new File(sd, "log.txt");
public void write (String Data){
FileWriter fw = null;
BufferedWriter bw = null;
try{
fw = new FileWriter(f, true);
bw = new BufferedWriter(fw);
bw.write(Data);
bw.close();
fw.close();
}
catch (IOException e) {
e.printStackTrace();
}
}
}
Ultima modifica di skolidspeak; 20-07-12 alle 09:45
Aaargh, ti prego usa i tag [ CODE ] e [ /CODE ] , per aumentare la leggibilità del codice!!
l'errore che mi hai postato in realtà è un warning. più in basso nel logcat c'è anche l'error?
Siccome le chiamate webservice possono andare storto, devi irrobustire il codice il più possibile per evitare di assegnare valori null a variabili che non lo consentono. ad esempio, quando fai:
trasformalo in qualcosa del genere (sfruttando l'attributo 'bodyIn', che altro nn è che l'oggetto stesso. Se è null non farlo continuare...)codice:SoapObject result = null; try { result = (SoapObject) envelope.getResponse(); } catch (SoapFault e) { // TODO Auto-generated catch block e.printStackTrace(); }
l'errore che mi hai postato in realtà è un warning. più in basso nel logcat c'è anche l'error? Quali sono le linee di codice corrispondenti indicate nel W e nell E? Puoi postarle? Graziecodice:Object objTestNull = null;//in intestazione objTestNull = envelope.bodyIn; if (objTestNull!=null){ result = envelope.getResponse(); //il risultato del webservice è memorizzato in un oggetto generic objTestNull = null; if (result != null){ risultato = result.toString(); } }
Ultima modifica di frank17next; 20-07-12 alle 10:51
Nexus 6 - 5.0.1 Stock
Nexus 5 - 5.0.1 Stock + Root
Galaxy Note 3 GT-N9005 - 4.4.4 Stock + Root
Galaxy Tab 10.1 Slim P7500 - [JB] CyanogenMod 10 4.1.2 Pershoot (Nightly 20121013)
------------------------------------------------------------------------
https://sites.google.com/site/frank17next/
sarà fatto .Aaargh, ti prego usa i tag [ CODE ] e [ /CODE ] , per aumentare la leggibilità del codice!!
Quello è tutto quello che mi esce nel logcat, però result è vuoto.L'errore che mi hai postato in realtà è un warning. più in basso nel logcat c'è anche l'error?
L'eccezione viene generata da questo frammento di codice:
[ CODE ]
SoapObject result = null;
try {
result = (SoapObject) envelope.getResponse();
} catch (SoapFault e) {
// TODO Auto-generated catch block
e.printStackTrace();
} [ /CODE ]
di seguito il ti posto ancora il logcat completo:
07-20 09:08:43.656: D/dalvikvm(374): GC_EXTERNAL_ALLOC freed 83K, 51% free 2671K/5379K, external 1625K/2137K, paused 93ms
07-20 09:08:51.798: W/KeyCharacterMap(374): No keyboard for id 0
07-20 09:08:51.798: W/KeyCharacterMap(374): Using default keymap: /system/usr/keychars/qwerty.kcm.bin
07-20 09:09:05.817: W/System.err(374): SoapFault - faultcode: 'soap:Server' faultstring: 'Impossibile elaborare la richiesta. ---> Riferimento a un oggetto non impostato su un'istanza di oggetto.' faultactor: 'null' detail: org.kxml2.kdom.Node@40577890
07-20 09:09:05.826: W/System.err(374): at org.ksoap2.serialization.SoapSerializationEnvelope .parseBody(SoapSerializationEnvelope.java:141)
07-20 09:09:05.826: W/System.err(374): at org.ksoap2.SoapEnvelope.parse(SoapEnvelope.java:14 0)
07-20 09:09:05.836: W/System.err(374): at org.ksoap2.transport.Transport.parseResponse(Trans port.java:100)
07-20 09:09:05.836: W/System.err(374): at org.ksoap2.transport.HttpTransportSE.call(HttpTran sportSE.java:214)
07-20 09:09:05.836: W/System.err(374): at org.ksoap2.transport.HttpTransportSE.call(HttpTran sportSE.java:96)
07-20 09:09:05.836: W/System.err(374): at skolidspeak.test.test.webservicesync$1.onClick(web servicesync.java:196)
07-20 09:09:05.846: W/System.err(374): at android.view.View.performClick(View.java:2485)
07-20 09:09:05.846: W/System.err(374): at android.view.View$PerformClick.run(View.java:9080)
07-20 09:09:05.856: W/System.err(374): at android.os.Handler.handleCallback(Handler.java:587 )
07-20 09:09:05.856: W/System.err(374): at android.os.Handler.dispatchMessage(Handler.java:92 )
07-20 09:09:05.856: W/System.err(374): at android.os.Looper.loop(Looper.java:123)
07-20 09:09:05.867: W/System.err(374): at android.app.ActivityThread.main(ActivityThread.jav a:3683)
07-20 09:09:05.867: W/System.err(374): at java.lang.reflect.Method.invokeNative(Native Method)
07-20 09:09:05.867: W/System.err(374): at java.lang.reflect.Method.invoke(Method.java:507)
07-20 09:09:05.876: W/System.err(374): at com.android.internal.os.ZygoteInit$MethodAndArgsCa ller.run(ZygoteInit.java:839)
07-20 09:09:05.876: W/System.err(374): at com.android.internal.os.ZygoteInit.main(ZygoteInit .java:597)
07-20 09:09:05.886: W/System.err(374): at dalvik.system.NativeStart.main(Native Method)
Grazie ancora dell'aiuto
Ciaooooo