Foros del Web » Programación para mayores de 30 ;) » Java »

Problema con WebService en Java

Estas en el tema de Problema con WebService en Java en el foro de Java en Foros del Web. Como les van amigos del foro, mi problema es el siguiente: En un WebService tengo un metodo que lo declaro para que me envie un ...
  #1 (permalink)  
Antiguo 15/06/2009, 12:01
Avatar de alfcm  
Fecha de Ingreso: mayo-2009
Mensajes: 291
Antigüedad: 15 años
Puntos: 7
Problema con WebService en Java

Como les van amigos del foro, mi problema es el siguiente:
En un WebService tengo un metodo que lo declaro para que me envie un ArrayList<Productos> y hasta ahi esta bien, pero cuando invoco desde la aplicacion cliente para guardarlo en una variable tipo ArrayList<Productos> me dice que:

"cannot converter from Object[] to ArrayList<Productos>"
Traduciendo jeje:
(No se puede convertir a ArrayList<Productos> desde un objeto)..

Intente castearlo pero no funciona tampoco.

Algunas ideas para guiarme y si fuese un ejemplo mucho mejor porfa.. porque ya no se como hace estoo, aparte que he estado investigando y nada..

Muchas Gracias
  #2 (permalink)  
Antiguo 15/06/2009, 13:39
Avatar de stone_neo  
Fecha de Ingreso: abril-2004
Ubicación: Peru
Mensajes: 438
Antigüedad: 20 años
Puntos: 15
Respuesta: Problema con WebService en Java

Lo mejor seria que en tu web service en lugar de exportar un ArrayList<Productos> devuelvas un arreglo Productos[], ya que lo el webservice te devuelve es un arreglo.

Ya en tu codigo Java lo tratas igual como un arreglo. Recuerda que un buen webservice debe ser independiente de la plataforma, es decir tu web service puede ser llamado desde cualquier plataforma de desarrollo, sea Java, .NET o PHP.

Si no se entiende un poco lo que escribi sorry, pero es que estoy con el jefe rondando por aca, intenta cambiando lo que te dije y si quieres contactame por MSN o Google Talk. Saludos
__________________
Rubén Darío Huamaní Ucharima
Web : http://www.gorilla-soft.com
Usuario Linux #382 100 :-)
  #3 (permalink)  
Antiguo 15/06/2009, 19:14
Avatar de alfcm  
Fecha de Ingreso: mayo-2009
Mensajes: 291
Antigüedad: 15 años
Puntos: 7
Respuesta: Problema con WebService en Java

OK Stone Neo.. muchas gracias por responder dandote un tiempo en tu trabajo para darme una idea, voy a hacer lo que me dices y te cuento como me fue..

Gracias
  #4 (permalink)  
Antiguo 16/06/2009, 11:33
Avatar de alfcm  
Fecha de Ingreso: mayo-2009
Mensajes: 291
Antigüedad: 15 años
Puntos: 7
Respuesta: Problema con WebService en Java

Hola Stone Neo hice la prueba y cuando ejecuto me sale el sgte error:

AxisFault
faultSubcode:
faultString: No such operation 'listarProdObject'
faultActor:
faultNode:
faultDetail:

No such operation 'listarProdObject' at org.apache.axis.message.SOAPFaultBuilder.createFau lt(SOAPFaultBuilder.java:222)at org.apache.axis.message.SOAPFaultBuilder.endElemen t(SOAPFaultBuilder.java:129)
atorg.apache.axis.encoding.DeserializationContext. endElement(DeserializationContext.java:1087)at com.sun.org.apache.xerces.internal.parsers.Abstrac tSAXParser.endElement(Unknown Source)atcom.sun.org.apache.xerces.internal.impl.X MLDocumentFragmentScannerImpl.scanEndElement(Unkno wn Source)atcom.sun.org.apache.xerces.internal.impl.X MLDocumentFragmentScannerImpl$FragmentContentDrive r.next(Unknown Source)atcom.sun.org.apache.xerces.internal.impl.X MLDocumentScannerImpl.next(Unknown ....
...
..

Incluso cuando hago esto para ver si tiene datos:

WebServicesProxy proxy = new WebServicesProxy();
if (proxy.listarProdObject()==null){
System.out.println("es nullo");
}else{
System.out.println("Si Existe");
}

ni siquiera entra puede evaluar el IF porque no me arroja el mensaje si "es nulo"

Te agradeceria nuevamente si podrias ayudarme con este error

PD: me dijiste para comunicarnos por MSN pero ¿cual es tu correo electronico??
  #5 (permalink)  
Antiguo 16/06/2009, 11:54
Avatar de stone_neo  
Fecha de Ingreso: abril-2004
Ubicación: Peru
Mensajes: 438
Antigüedad: 20 años
Puntos: 15
Respuesta: Problema con WebService en Java

Me parece raro lo que te esta pasando, yo tengo varios Web Services corriendo aca de la misma manera que te dije. Mi msn es [email protected], me agregas y conversamos por ahi, pero en las noches, cuando salgo del trabajo.
__________________
Rubén Darío Huamaní Ucharima
Web : http://www.gorilla-soft.com
Usuario Linux #382 100 :-)
  #6 (permalink)  
Antiguo 16/06/2009, 16:26
Avatar de alfcm  
Fecha de Ingreso: mayo-2009
Mensajes: 291
Antigüedad: 15 años
Puntos: 7
Respuesta: Problema con WebService en Java

Encontre el origen del error y es en el WebSerice que no me genera el Array de Productos que necesito, ya que cuando genero y veo su archivo xml deberia mostrarme la lista de productos pero me muestra el xml con etiquetas de error tal como:

<faultstring>No such operation 'listarProdObject'</faultstring>

Me olvidaba mencionar que estoy trabajando con Eclipse

ahora eso no se porque me sale.. si tuvieras un ejemplo como haces un metodo que devuelva algo como Productos[ ] tal como me sugeriste porfa amigo Stone_Neo
  #7 (permalink)  
Antiguo 16/06/2009, 16:50
Avatar de stone_neo  
Fecha de Ingreso: abril-2004
Ubicación: Peru
Mensajes: 438
Antigüedad: 20 años
Puntos: 15
Respuesta: Problema con WebService en Java

Mira ahorita no tengo algun ejemplo a mano, pero el codigo que uso es mas o menos asi:

Código:
	public BTarea[] obtenerTareas(int idUsuario, String fecha){		
		DTarea dTarea = new DTarea();
		try{			
			ArrayList<BTarea> lTareas = dTarea.obtenerTareas(idUsuario, fecha, this.con); 
			BTarea[] lTarea = new BTarea[lTareas.size()];
			for(int i = 0;i < lTareas.size(); i++){
				lTarea[i] = (BTarea)lTareas.get(i);
			}	
			return lTarea;
		}
		catch(Exception e){
			e.printStackTrace(System.out);
			return new BTarea[0];
		}
	}
Ya cuando creo el WebService con el Eclipse, este se encarga de crearme el WSDL por mi en la cual me crea el tipo de dato complejo que mi funcion del Web Service va a devolver.
__________________
Rubén Darío Huamaní Ucharima
Web : http://www.gorilla-soft.com
Usuario Linux #382 100 :-)
  #8 (permalink)  
Antiguo 17/06/2009, 14:05
Avatar de alfcm  
Fecha de Ingreso: mayo-2009
Mensajes: 291
Antigüedad: 15 años
Puntos: 7
Respuesta: Problema con WebService en Java

Muchas Gracias Stone Neo, era problema de conexion y aparte de mi metodo que estaba mal hecho, pero con el ejemplo que me enviaste lo correjí, como estoy trabajando tambien con EJB para la conexion, pero bueno hice la conexion en el mismo webservice y me generó el xml con los datos correctos, agradezco tu tiempo sinceramente... Muchas gracias
  #9 (permalink)  
Antiguo 17/06/2009, 14:59
Avatar de stone_neo  
Fecha de Ingreso: abril-2004
Ubicación: Peru
Mensajes: 438
Antigüedad: 20 años
Puntos: 15
Respuesta: Problema con WebService en Java

Ok me alegra que hayas solucionado tu problema, estamos en contacto. Saludos.
__________________
Rubén Darío Huamaní Ucharima
Web : http://www.gorilla-soft.com
Usuario Linux #382 100 :-)
  #10 (permalink)  
Antiguo 03/10/2009, 19:47
 
Fecha de Ingreso: octubre-2009
Mensajes: 1
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Problema con WebService en Java

Leí su respuesta donde ofrecía ayuda con Web Services. Estoy desarrollando un con servidor en Netbeans 6.7.1, Glassfish prelude y cliente c# 2008 en una clase. Soy estudiante de computación. Tengo el gran problema que no sé la sisntaxis para pasar datos desde el servicio en Java al C#.

En Netbeans engo una capa Model con los datos, una Implementor que comunica a los objetos a la capa de DataAccess. En el archivo del web service no sé como declarar los datos para que se vayan o regresen de la capa de presentación que tengo en C#.

//ServicioUsuarios.webService
import java.sql.Date;
import java.sql.SQLException;
import javax.jws.Oneway;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;
import data.ws.dUsuario;
import model.ws.Usuario;

@WebService()
public class ServicioUsuarios {
@WebMethod(operationName = "InsertarUsuario")
@Oneway
public void InsertarUsuario(@WebParam(name = "nombres")
String nombres, @WebParam(name = "apel1")
String apel1, @WebParam(name = "apel2")
String apel2, @WebParam(name = "fechanac")
Date fechanac, @WebParam(name = "ciudad")
int ciudad) {
Usuario objUsuario = new Usuario();
dUsuario dusua = new dUsuario();
dusua.InsertarUsuario(objUsuario);
}

//dataAccess
package data.ws;
import java.sql.Date;
import java.sql.SQLException;

public class dUsuario extends mysqlcon {
private String tabla;
public void InsertarUsuario( model.ws.Usuario obj)
{
mysqlcon.getInstance().insertarUsuario(obj.getNomb res(),obj.getApel1(),
obj.getApel2(), (Date) obj.getFecha(), obj.getFoto(), obj.getNick(), obj.getClave(),
obj.getEstado(), obj.getDir(), obj.getCiudad());
}
}

//Implementor
package implementor;
public class IUsuario extends Object {
private static IUsuario siusuario;
private IListaObjetos listaObjetos;

public static IUsuario getInstance() {
if (siusuario == null)
siusuario = new IUsuario();
return siusuario;
}

public void CrearUsuario(model.ws.Usuario objmdUsuario)
{
listaObjetos.getCdUsuario().InsertarUsuario(listaO bjetos.getnUsuario());
}

//Model
package model.ws;
import java.util.Date;

public class Usuario {

private String nombres;
private String apel1;
private String apel2;
private Date fecha_nacimiento;
private Integer ciudad_idciudad;

public Usuario() {
}

public void setNombres(String nombres) {
this.nombres = nombres;
}

public String getNombres(){
return nombres;
}

//El resto de get/set


De antemano, muchisimas gracias por la ayuda
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:48.