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à fattoAaargh, 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