Bom dia!
Estou criando um sistema em Android que ira comunicar com um webservice em java utilizando axis2. O problema esta em passar um parâmetro para o serviço. Se eu chamar um serviço sem enviar um parâmetro ele funciona bem, porem se for enviado alguma coisa da erro conforme abaixo.
Métodos no Android
` private Gson getGson(){
GsonBuilder builder = new GsonBuilder();
builder.setDateFormat(“dd/MM/yyyy”);
return builder.create();
}
public List importaAviso(ConfiguracaoVO config){
List listRetorno = new ArrayList();
String nomeMetodo = “importaAviso”;
SoapObject soapObject = new SoapObject(nameSpace,nomeMetodo);
soapObject.addProperty("config", getGson().toJson(config, ConfiguracaoVO.class));
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.setOutputSoapObject(soapObject);
HttpTransportSE httpTransportSE = new HttpTransportSE(url);
try {
httpTransportSE.call(nameSpace + nomeMetodo, envelope);
Object resposta = envelope.getResponse();
listRetorno = getGson().fromJson(resposta.toString(), new TypeToken<ArrayList<AvisoVO>>(){}.getType());
} catch (Exception e){
e.printStackTrace();
Log.e("RequisicaoWebService", "ERRO " + e.getMessage());
}
return listRetorno;
}`
Métodos no Eclipse(Java)
` private Gson getGson(){
GsonBuilder builder = new GsonBuilder();
builder.setDateFormat(“dd/MM/yyyy”);
return builder.create();
}
public String importaAviso(String jsonString){
AcessoBanco db = new AcessoBanco();
Statement stm = null;
ResultSet rs = null;
ConfiguracaoVO config = new ConfiguracaoVO();
List<AvisoVO> listAvisos = new ArrayList<>();
try {
config = getGson().fromJson(jsonString, ConfiguracaoVO.class);
Calendar dataFiltro = Calendar.getInstance();
dataFiltro.add(java.util.Calendar.DAY_OF_MONTH, -10);
Date dataParaFormatar = dataFiltro.getTime();
SimpleDateFormat formatoDataPesquisa = new SimpleDateFormat("yyyy-MM-dd");
String filtroData = formatoDataPesquisa.format(dataParaFormatar) + "'";
String sql = "SELECT * FROM aviso_mobile WHERE ("
+ "id_vendedor = " +config.getIdVendedorPadrao() + " OR isNull(id_vendedor))"
+ " AND data_aviso > " + filtroData;
stm = db.conectar().createStatement();
rs = stm.executeQuery(sql);
AvisoVO aviso;
while (rs.next()) {
String texto = rs.getString("a.texto");
texto = texto.replaceAll("\t", "").replaceAll("\r\n", "").replaceAll("\n", "").trim();
aviso = new AvisoVO();
aviso.setDataAviso(rs.getDate("DATA_AVISO"));
aviso.setId(rs.getInt("ID"));
aviso.setIdVendedor(rs.getInt("ID_VENDEDOR"));
aviso.setTexto(texto);
aviso.setVisualizado("N");
listAvisos.add(aviso);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if(stm != null){
db.desconectar();
}
}
return getGson().toJson(listAvisos, new TypeToken<ArrayList<AvisoVO>>(){}.getType());
}`
ERRO
java.lang.ArrayIndexOutOfBoundsException: 1 at org.apache.axis2.databinding.utils.BeanUtil.deserialize(BeanUtil.java:630) at org.apache.axis2.rpc.receivers.RPCUtil.processRequest(RPCUtil.java:153) at org.apache.axis2.rpc.receivers.RPCUtil.invokeServiceClass(RPCUtil.java:206) at org.apache.axis2.rpc.receivers.RPCMessageReceiver.invokeBusinessLogic(RPCMessageReceiver.java:121) at org.apache.axis2.receivers.AbstractInOutMessageReceiver.invokeBusinessLogic(AbstractInOutMessageReceiver.java:40) at org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessageReceiver.java:114) at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:181) at org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:172) at org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:146) at javax.servlet.http.HttpServlet.service(HttpServlet.java:648) at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:521) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1096) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:674) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1500) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1456) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Unknown Source)