bom é o seguinte o que eu tenho que fazer é ligar a minha aplicação android a um web service só que o android so reconhece alguns tipos como primitivos por exemplo o tipo UUID e Double ele não consegue serializar, algum de vocês consegue-me ajudar, eu sei que o marshalling funciona mas não o sei usar muito bem. Em baixo vou deixar o código que tenho agora.
Os erros de serialização são:
W/System.err(327): java.lang.RuntimeException: Cannot serialize: 3e1c7765-7370-4295-8170-92a1d2dc542c-userId
java.lang.RuntimeException: Cannot serialize: 7573dcd3-e5eb-4847-8d6c-d7d171a932d7-WeightId
double: java.lang.RuntimeException: Cannot serialize: 85.0-UserWeight
package go.pw.exe; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; import java.util.Calendar; import java.util.UUID; import org.ksoap2.SoapEnvelope; import org.ksoap2.serialization.SoapObject; import org.ksoap2.serialization.SoapSerializationEnvelope; import org.ksoap2.transport.HttpTransportSE; public class Ex1Activity extends Activity { private static final String SOAP_ACTION="http://vitalcare.hydra.pt/IHealthRecordService/CreateWeightRecord"; private static final String METHOD_NAME = "CreateWeightRecord"; private static final String NAMESPACE = "http://vitalcare.hydra.pt/"; private static final String URL = "http://www.hydra.pt:8070/HealthRecordService.svc?wsdl"; Calendar c; String userId = "3e1c7765-7370-4295-8170-92a1d2dc542c"; String data; UUID user; UUID weightId; Button send; EditText weight; [/background][/size][/font][/color] [color=#282828][font=helvetica, arial, sans-serif][size=4][background=rgb(255, 255, 255)] /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); send = (Button) findViewById(R.id.button1); weight = (EditText) findViewById(R.id.et_weight); send.setOnClickListener(new OnClickListener(){ public void onClick(View v) { double userWeight = Double.parseDouble(weight.getText().toString()); c = Calendar.getInstance(); weightId= UUID.randomUUID(); data = c.get(Calendar.YEAR)+ "-" + (c.get(Calendar.MONTH)+1) + "-"+c.get(Calendar.DAY_OF_MONTH)+ " " + c.get(Calendar.HOUR_OF_DAY) + ":" + c.get(Calendar.MINUTE)+":"+c.get(Calendar.SECOND); user = UUID.fromString(userId); SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME); request.addProperty("UserId", user); request.addProperty("CreationDate", data); request.addProperty("WeightId", weightId); request.addProperty("When", data); request.addProperty("WeightInKilos", userWeight); SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); envelope.implicitTypes = true; envelope.dotNet=true; envelope.setOutputSoapObject(request); HttpTransportSE androidHttpTransport = new HttpTransportSE(URL); try{ androidHttpTransport.call(SOAP_ACTION, envelope); } catch (Exception e) { e.printStackTrace(); Toast.makeText(getApplicationContext(), e.toString(), Toast.LENGTH_LONG).show(); } } }); } }
Editado por Ti_ESP, 23 May 2012 - 09:47.