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

[SOLUCIONADO] Duda exportando proyecto JAXB

Estas en el tema de Duda exportando proyecto JAXB en el foro de Java en Foros del Web. Hola, He creado una aplicación que se conecta a un webservice, el servidor está lanzado en un server externo y si lanzo la aplicación desde ...
  #1 (permalink)  
Antiguo 17/06/2013, 17:43
 
Fecha de Ingreso: noviembre-2008
Mensajes: 47
Antigüedad: 15 años, 5 meses
Puntos: 0
Duda exportando proyecto JAXB

Hola,

He creado una aplicación que se conecta a un webservice, el servidor está lanzado en un server externo y si lanzo la aplicación desde eclipse va fluido y funciona bien, pero si exporto el proyecto JAXB como jar, la 1º conexión tarda muchisimo (en torno a 10 minutos), como lo soluciono? Tendría que exportarlo de alguna otra manera?

Gracias.
  #2 (permalink)  
Antiguo 18/06/2013, 00:42
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 6 meses
Puntos: 454
Respuesta: Duda exportando proyecto JAXB

Hola:

Depende cómo hayas hecho el cliente, puede estar buscando el wsdl antes de crearse. Si el wsdl no está accesible o lo busca en una conexión que no existe, puede tardar un rato hasta que decide que no está accesible. El código de tu cliente del servicio al que intentas acceder ... ¿dónde busca el wsdl?

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #3 (permalink)  
Antiguo 18/06/2013, 04:18
 
Fecha de Ingreso: noviembre-2008
Mensajes: 47
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Duda exportando proyecto JAXB

No se a lo que te refieres a que esté buscando el WSDL antes de crearse, el codigo es autogenerado por eclipse y las dos clases donde se hace referencia al WSDL es en:

ServicioWebImpl
Código:
@javax.jws.WebService(
                      serviceName = "ServicioWebService",
                      portName = "ServicioWebPort",
                      targetNamespace = "http://main.servicioweb.es/",
                      wsdlLocation = "http://146.255.98.117:8080/GestionServidorDefinitivo/services/ServicioWebPort?wsdl",
                      endpointInterface = "es.servicioweb.main.ServicioWeb")
                      
public class ServicioWebImpl implements ServicioWeb {
y en ServicioWebService
Código:
@WebServiceClient(name = "ServicioWebService", 
                  wsdlLocation = "http://146.255.98.117:8080/GestionServidorDefinitivo/services/ServicioWebPort?wsdl",
                  targetNamespace = "http://main.servicioweb.es/") 
public class ServicioWebService extends Service {

    public final static URL WSDL_LOCATION;

    public final static QName SERVICE = new QName("http://main.servicioweb.es/", "ServicioWebService");
    public final static QName ServicioWebPort = new QName("http://main.servicioweb.es/", "ServicioWebPort");
    static {
        URL url = null;
        try {
            url = new URL("http://146.255.98.117:8080/GestionServidorDefinitivo/services/ServicioWebPort?wsdl");
        } catch (MalformedURLException e) {
            java.util.logging.Logger.getLogger(ServicioWebService.class.getName())
                .log(java.util.logging.Level.INFO, 
                     "Can not initialize the default wsdl from {0}", "http://146.255.98.117:8080/GestionServidorDefinitivo/services/ServicioWebPort?wsdl");
        }
        WSDL_LOCATION = url;
    }
lo raro es que desde eclipse si va bien, es al exportarlo cuando tarda 10 minutos en hacer la 1º conexion.
  #4 (permalink)  
Antiguo 18/06/2013, 05:28
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 6 meses
Puntos: 454
Respuesta: Duda exportando proyecto JAXB

Me refiero precisamente a ese wsdlLocation. Tanto cuando estás con eclipse como cuando haces el jar... ¿existe y está accesible esa URL?

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #5 (permalink)  
Antiguo 18/06/2013, 05:38
 
Fecha de Ingreso: noviembre-2008
Mensajes: 47
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Duda exportando proyecto JAXB

Si está accesible, ya te digo, si lanzo el proyecto desde eclipse desde el main se conecta al servidor de inmediato, pero cuando lo exporto y genero el "Runnable jar" es cuando tarda los 10 minutos en ir al servidor para hacer el login, una vez que ya me he identificado si responde en un tiempo normal.

En el servidor he visto que tengo esto:

Código:
<wsdl:service name="ServicioWebService">
    <wsdl:port name="ServicioWebPort" binding="tns:ServicioWebServiceSoapBinding">
      <soap12:address location="http://localhost:8080/GestionServidorDefinitivo/services/ServicioWebPort"/>
    </wsdl:port>
  </wsdl:service>
dentro del archivo wsdl, deberia cambiarlo?

Sigo haciendo pruebas, he desplegado el servidor en mi maquina y al exportar el cliente con el cambio de la IP, sigue tardando 10 minutos. No entiendo donde puede estar el fallo

Saludos.

Última edición por Link_OOT; 18/06/2013 a las 08:54
  #6 (permalink)  
Antiguo 18/06/2013, 13:18
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 6 meses
Puntos: 454
Respuesta: Duda exportando proyecto JAXB

Echa un ojo con el debugger a ver exactamente en qué línea pierde 10 minutos.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #7 (permalink)  
Antiguo 18/06/2013, 13:32
 
Fecha de Ingreso: noviembre-2008
Mensajes: 47
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Duda exportando proyecto JAXB

Hay dos lineas que dan problemas:
  • ServicioWebService ss = new ServicioWebService(wsdlURL, Constantes.SERVICE_NAME);
  • ServicioWeb port = ss.getServicioWebPort();

El metodo es:
Código:
URL wsdlURL = ServicioWebService.WSDL_LOCATION;
        ServicioWebService ss = new ServicioWebService(wsdlURL, Constantes.SERVICE_NAME);
        ServicioWeb port = ss.getServicioWebPort();  
        {
        	String _probando__return = port.identificarse(textNombre.getText(), password.getText());
	        Gson gson=new Gson();
        	return gson.fromJson(_probando__return, Comercial.class);
        }
  #8 (permalink)  
Antiguo 19/06/2013, 03:18
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 14 años, 11 meses
Puntos: 306
Respuesta: Duda exportando proyecto JAXB

A mí lo que me extraña es que tarde tanto tiempo, lo normal es que te dé un timeout. ¿Y después de los 10 minutos funciona?

La url del wsdl es accesible, la acabo de probar.

Sin embargo si intento generar el servicio después de unos minutos (2 o 3) falla porque dice que no es accesible el xsd, aunque desde el navegador puedo verlo.

A mí esto me suena a problema de proxy o de firewall. ¿Cuando pruebas el cliente llamas al servicio con localhost o con la ip?¿Cambias alguna configuración cuando lo pruebas en eclipse y con el jar?
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #9 (permalink)  
Antiguo 19/06/2013, 12:39
 
Fecha de Ingreso: noviembre-2008
Mensajes: 47
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Duda exportando proyecto JAXB

Cuando tengo el servidor en local y el cliente en local y ambos en eclipse, utilizo localhost. Cuando tengo el servidor en la maquina externa y el cliente en mi equipo pongo la IP de la maquina externa. A mi también me raya lo de que no salte ningún timeout. Si pongo el cliente (desde el jar) que se conecta al servidor lanzado en eclipse y en local, también tarda muchísimo.

El problema está al exportar el proyecto al .jar, no se si es que se deja algún archivo de configuración o que es lo que pasa, pero al generar el ejecutable, se jode todo.

Saludos!
  #10 (permalink)  
Antiguo 19/06/2013, 15:41
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 14 años, 11 meses
Puntos: 306
Respuesta: Duda exportando proyecto JAXB

Pues yo creo que que el problema no está en el cliente, sino en la máquina del servicio.

Me he bajado el wsdl y el xsd y he podido generar el cliente sin problema (no he probado a llamar), sin embargo si intento crear el cliente directamente a partir del wsdl de tu servidor no puedo porque me da error con el xsd, aunque su url es correcta y accesible porque me lo he bajado.

Cita:
Si pongo el cliente (desde el jar) que se conecta al servidor lanzado en eclipse y en local, también tarda muchísimo
Cuando haces esto, ¿el cliente apunta a localhost o ip?

Acabo de volver a probar y ahora sí me ha dejado generar el cliente a partir de la url. Quizás fuera un problema que se ha solucionado, vuelve a probar.
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #11 (permalink)  
Antiguo 19/06/2013, 15:49
 
Fecha de Ingreso: noviembre-2008
Mensajes: 47
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Duda exportando proyecto JAXB

Apunta a localhost, y lo he probado ahora mismo con la IP del servidor y sigue yendo lento. Yo creo que tiene que ser algo del XSD, pero no se porque no lo encuentra a la primera y al segundo intento si.

Muchas gracias por las molestias que os estáis tomando, espero poder devolveros el favor algún día.
  #12 (permalink)  
Antiguo 24/06/2013, 18:13
 
Fecha de Ingreso: noviembre-2008
Mensajes: 47
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Duda exportando proyecto JAXB

Soy idiota, vaya fallo mas tonto.

Resulta que al exportar el jar, en la segunda ventana del wizard estaba marcando "Package required libraries into generated jar" y tendría que haber marcado "Extract required libraries into generated jar"

De nuevo, muchas gracias a todos por las molestias que os habéis tomado.

Saludos!

Etiquetas: lento, server, webservice
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 20:34.