你好,我有一个带有ArrayList参数的WebService方法,在Android中,我有一种方法可以将元素添加到ArrayList中并在PropertyInfo中执行setValue,但是却给了我一个例外。
这是WebService方法的代码:
@WebMethod(operationName = "insertar")
public int insertar(@WebParam(name = "IdVideo") ArrayList video) {
int afectados = 0;
try {
String idVideo = video.get(0).toString();
String titulo = video.get(1).toString();
String canal = video.get(2).toString();
int visitas = Integer.parseInt(video.get(3).toString());
String fecha = video.get(4).toString();
Date fechaSubida = new SimpleDateFormat("dd/MM/yyyy").parse(fecha);
DriverManager.registerDriver(new OracleDriver());
Connection cn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:xx:xx", "xxx", "xx");
Statement sentencia = cn.createStatement();
afectados = sentencia.executeUpdate("insert into favoritos values('" + idVideo + "', '" + titulo + "', '" + canal + "', '" + visitas + "', '" + fechaSubida + "')");
if (afectados > 0) {
System.out.println("Dato Insertado");
} else {
System.out.println("No Insertado");
}
return afectados;
} catch (SQLException ex) {
Logger.getLogger(Server.class.getName()).log(Level.SEVERE, null, ex);
} catch (ParseException ex) {
Logger.getLogger(Server.class.getName()).log(Level.SEVERE, null, ex);
}
return afectados;
}
这里是Andoid方法的代码:
public void insertar(View v){
try {
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitNetwork().build();
StrictMode.setThreadPolicy(policy);
String resultadoFINAL;
String idVideo = this.etIdVideo.getText().toString();
String titulo = this.etTitulo.getText().toString();
String canal = this.etCanal.getText().toString();
String visitas = this.etVisitas.getText().toString();
String fecha = this.etFecha.getText().toString();
ArrayList<String> listaInsert = new ArrayList();
listaInsert.add(idVideo);
listaInsert.add(titulo);
listaInsert.add(canal);
listaInsert.add(visitas);
listaInsert.add(fecha);
//Creacion de la Solicitud
SoapObject request = new SoapObject(NAMESPACE, METHOD3);
//Creacion del Envelope
SoapSerializationEnvelope sobre = new SoapSerializationEnvelope(SoapEnvelope.VER11);
sobre.setOutputSoapObject(request);
//Creacion del transporte
HttpTransportSE transporte = new HttpTransportSE(URL);
// Paso de parámetro
PropertyInfo dni = new PropertyInfo();
dni.setName("numerodni");
dni.setValue(listaInsert);
request.addProperty(dni);
//Llamada
transporte.call(SOAPACTION3, sobre);
//Resultado
Object resultado = (Object) sobre.getResponse();
resultadoFINAL = resultado.toString();
Toast.makeText(getApplicationContext(), resultadoFINAL, Toast.LENGTH_LONG).show();
}catch (Exception e) {
e.printStackTrace();
}
}
此行transporte.call(SOAPACTION3, sobre);
中有一个例外
我认为添加PropertyInfo之类的ArrayList是一个问题。
我的英语不好,但是希望您能为我提供帮助,如果需要更多代码,请教我,谢谢!