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.








