Me ha hecho tanta ilusión que me escribiesen un comentario sobre el post de ayer de JNLP, que he decidido contestarlo, pero en formato de entrada. Así si más gente tiene la misma duda, quizá le pueda ayudar.
Comentario:
Hola estoy un poco verde en el tema de deployar servicios Web, podrias detallar un poco como se ejecuta? Yo lo he hecho de la siguiente manera:
-Creo en el eclipse un Web Dynamic Project
-Creo un fichero .jsp como el que tu tienes y se lo agrego a la raíz de ese proyecto.
-Creo un servlet como el tuyo.
-Ejecuto el Proyecto Web en un tomcat, y en el navegador pongo la siguiente URL:
http://localhost:8080/GetParametrosLiDAR/ ServletGetParameters?valor= holamundo
donde GetParametrosLiDAR es el nombre del proyecto y ServletGetParameters es el nombre del servlet.
Tambien e probado esto:
http://localhost:8080/GetParametrosLiDAR/ ServletGetParameters/index.jsp
Gracias por todo.
-PD: en el index.jsp la palabra Iniciar no la coge bien y no se para que sirve
Respuesta:
Intentaré resolverte la duda.
Primero un problemilla... uso NetBeans para el desarrollo, me gusta más que eclipse.
Este lo he usado alguna vez, pero al final me termino volviendo loco, supongo que será acostumbrarse.
Así que te hablaré según netbeans.
- Crear un WebApplication
- Crear un jsp dentro de WebPages
- Crear un Servlet dentro de Source (en un package si quieres, para que esté más organizado)
Y empezar a meter código.
El proyecto, en netbeans, queda así:
En el jsp sustituyendo a las etiquetas html pones esto:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>JSP Pagetitle>
>
<body>
<center>
<form name="Generador" action="GeneradorJNLP" method="POST">
<div style="
border-style:solid;
border-width:1px;
width:200px;
height:80px;">
<center>
<br>
<input type="text" name="valor" style="width:180px"/><br>
<a href="#" onclick="Generador.submit();">Iniciara>
>
>
<form>
<center>
>
>
En el servlet sustituyendo el método processRequest pones esto:
protected void processRequest(HttpServletRequest request, HttpServletResponse response)Y construyes el método "getJnlp()", recuerda para este caso sin ' href '
throws ServletException, IOException {
PrintWriter out = response.getWriter();
String valor = (String) request.getParameter("valor");
String jnlp = getJnlp(valor);
try {
response.setContentType("application/x-java-jnlp-file");
out.print(jnlp);
} finally {
out.close();
}
}
}
Luego tu dices que ejecutas la aplicación con esta llamada:
http://localhost:8080/GetParametrosLiDAR/ServletGetParameters?valor=holamundo
Bien, esto es una llamada al servlet desde la barra de direcciones del navegador.
Yo en mi caso la hago desde un link, este:
<a href="#" onclick="Generador.submit();">Iniciar</a>
Contestando a tu PD. "Iniciar" no es mas que una palabra que actuará como link.
Cuando cliques encima ejecutaras la sentencia javascript "submit()" del formulario Generador.
El formulario apunta al servlet que hemos hecho antes.
Muchisimas gracias!! el problema estaba en el fichero java del servlet, que le faltaría algun método porque solo implementé el doGet y el porcessRequest, ahora a partir de una coordenadas introducidas desde el navegador muestro una grafica con el perfil de un mapa de puntos en coordenadas, con el que puedo trabajar, modificar con distintas herramientas y guardar...y todo eso sin tener nada en mi máquina.
ResponderEliminarDe nuevo muchisimas gracias
Muchísimas de nadas!!!
ResponderEliminarClaro, eso se me pasó decirlo.
Cuando haces la llamada a través de Post tienes que tener en el servlet el metodo doPost, y cuando la haces con get, el método doGet, pero ambos redireccionan al processRequest.
Me alegro que te haya servido.
Cómo trabajas con gráficas. Con JFreeChart??
Si no lo conoces te recomiendo que le eches un vistazo, es una librería genial para trabajar con gráficas.
Un saludo!!!
Hola, Gracias por el aporte. Tengo un problema con mi aplicacion que tiene una estructura similar a la que comentas. Genero el .jnlp de manera dinamica y paso argumentos al .jar firmado, pero en algunos ordenadores pasa que estos argumentos llegan vacios. Estos argumentos se devuelven al servidor junto con un parametro mas que tambien llega vacio al servidor web. Que crees que puede ser?
ResponderEliminarBuenas!
ResponderEliminarPrimero de todo, gracias por comentar!
Hace tiempo que no toco JNLP, pero lo que comentas es raro.
Comprueba que el archivo JNLP se genera bien, con los argumentos que le pasas
Comprueba que el .jar que ejecutas los lee.
Y si todo va bien en un equipo, pero en otros no... pues no se, porque no debería pasar.
Una vez generado el XML, o se genera entero para arrancar la aplicacion con parametros incluidos, o no se genera nada.
Ya me irás contando como van las pruebas, pero de momento, ve investigando qué es lo que falla más específicamente y qué motivos puede haber.
Siento no poder ayudarte más.
Gracias por la respuesta. La verdad es un caso bastante raro, de momento hemos hecho pruebas en 6 ordenadores, en 4 funciona correctamente, pero en 2 no. Lo que sucede es que por alguna razón en estos 2 ordenadores los argumentos del jnlp llegan vacios al .jar. El jnlp se crea correctamente y puedo ver los argumentos con sus valores, pero cuando llegan al .jar ya están los argumentos vacíos. Probamos con IE 8, Chrome 30 y Firefox 24 y pasa lo mismo. Sabes si puede ser algun problema de seguridad con los jnlp en esos ordenadores?
ResponderEliminarSi al menos en 1 funciona, ya no es cosa de java, tiene pinta de ser configuración de los ordenadores.
ResponderEliminar¿Maquinas de java?
¿Proxys?
¿Incluso algún antivirus que limite la ejecución de programas java?
También muchos navegadores están quitando java de ellos por su peso y por su problemas de seguridad, ¿podría influiros en algo?
Yo me centraría en ver qué configuración tiene diferente un ordenador de otro, el problema debe de estar ahí.
Muy buen blog. He intentado todo, pero no puedo descargar el archivo jar, puesto que me indica que no se puede cargar el recurso. Por favor una ayuda. Estoy usando Tomcat 8.0 y netbeans 8.0. De antemano gracias.
ResponderEliminarEs difícil poder saber por qué motivo exacto no lo puedes descargar, pero si dice que no se puede cargar el recurso, casi seguro será que estás apuntando a otro sitio donde no está el jar con la aplicación.
EliminarComprueba las rutas, revisa los puertos, comprueba que tienen acceso al jar directamente, mira que no haya nada cortando la conexión...