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

Llamar a Java desde JSP

Estas en el tema de Llamar a Java desde JSP en el foro de Java en Foros del Web. Hola a tod@s, Explicaré mi problema. He creado un projecto Dinamic web pages con eclipse. Al crear esto me genera la siguiente estructura: Java resources:src ...
  #1 (permalink)  
Antiguo 24/11/2008, 06:51
 
Fecha de Ingreso: junio-2005
Ubicación: Barcelona
Mensajes: 458
Antigüedad: 18 años, 11 meses
Puntos: 4
Llamar a Java desde JSP

Hola a tod@s,

Explicaré mi problema.
He creado un projecto Dinamic web pages con eclipse. Al crear esto me genera la siguiente estructura:
Java resources:src
build
classes
WebContent
META-INF
WEB-INF

Bien ahora saber que tengo una clase en JAVA muy simple
Código:
	package Simulador;
	
	public class Test {
	
		public static void main(String[] args) {
			System.out.println("HOLA");
	
		}
		
		public int Prova(int vehicles){
			return vehicles;
			
		}
	
	}
Este codigo donde lo tengo que poner?(en principio lo e puestp dentro de JavaResoruces ahi he creado el package Simulador y alli he metido la clase Test.java)


Y dentro de WEB-INF tengo el archivo process.jsp que tiene el siguiente codigo:
Código:
<%@ page import="Simulador.*"%>
 
<% 

Test test=new Test(); 

%>
Sin embargo lo que obtengo al ejecutar el process.jsp es

org.apache.jasper.JasperException: Unable to compile class for JSP:

An error occurred at line: 7 in the jsp file: /Projecte/WebContent/WEB-INF/process.jsp
Test cannot be resolved to a type
4:
5: <%
6:
7: Test test=new Test();
8:
9: %>


Necesito ayuda la que sea

Muchisimas gracias

Saludos
__________________
La ficción es y será mi única realidad
  #2 (permalink)  
Antiguo 24/11/2008, 07:03
 
Fecha de Ingreso: marzo-2008
Ubicación: Cádiz, España
Mensajes: 89
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Llamar a Java desde JSP

muy buenas, tienes que compilar la clase java, y obtendras el .class. Ese archivo lo tienes que colocar dentro de web-inf, en una carpeta que se llame como tu paquete, en este caso Simulador.

Entonces ya desde el jsp, podrás imporat la clase.

Saludos.
  #3 (permalink)  
Antiguo 24/11/2008, 09:07
 
Fecha de Ingreso: junio-2005
Ubicación: Barcelona
Mensajes: 458
Antigüedad: 18 años, 11 meses
Puntos: 4
Respuesta: Llamar a Java desde JSP

Hola,


En primer lugar gracias por la respuesta.
He compilado y tengo el Test.class y lo meto en WEB-INF/Simulador y a la vez mi Test.java dentro de src/Simulador en mi jsp hago lo siguiente:
Código:
<%@ page import="Simulador.*"%>
 
<% 

Test test=new Test(); 

%>
Igualmente me dice el mismo error.

org.apache.jasper.JasperException: Unable to compile class for JSP:

An error occurred at line: 5 in the jsp file: /Projecte/WebContent/WEB-INF/process.jsp
Test cannot be resolved to a type
2:
3: <%
4:
5: Test test=new Test();
6:
7: %>


Alguna idea de que sigue faltando/sobrando?

Muchas Gracias

Saludos
__________________
La ficción es y será mi única realidad
  #4 (permalink)  
Antiguo 24/11/2008, 11:57
Avatar de nelson0416  
Fecha de Ingreso: octubre-2008
Mensajes: 22
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Llamar a Java desde JSP

Amigo desde tu jsp creo q deberias llamar la clase java asi:

<%
Test test = new Test();
String T = test.NombreDeMetodoQueQuierasLLamar();
%>
<% =T %>

No estoy muy seguro pero has la prueba y escribe haber si funciona o no... Espero haberte ayudado.
  #5 (permalink)  
Antiguo 24/11/2008, 13:02
 
Fecha de Ingreso: junio-2005
Ubicación: Barcelona
Mensajes: 458
Antigüedad: 18 años, 11 meses
Puntos: 4
Respuesta: Llamar a Java desde JSP

Hola,

He probado lo que me has dicho hi ahora tengo en el codigo jsp.
Código:
<%@page import="Simulador.*;"%>
<%
Test test = new Test();

%>
Y en el test.java

Código:
package Simulador;

public class Test {

	public static void main(String[] args) {
		escriu();
		// TODO Auto-generated method stub

	}
	
	public static String escriu(){
		System.out.println("ENTRO");
		String var="HOLA";
		return var;
		
	}

}
Y cuando lo ejecuto me sale

org.apache.jasper.JasperException: Unable to compile class for JSP:

An error occurred at line: 3 in the jsp file: /Projecte/WebContent/WEB-INF/process.jsp


Alguna idea??

Gracias

Saludos
__________________
La ficción es y será mi única realidad
  #6 (permalink)  
Antiguo 24/11/2008, 13:27
 
Fecha de Ingreso: septiembre-2003
Mensajes: 122
Antigüedad: 20 años, 7 meses
Puntos: 0
Respuesta: Llamar a Java desde JSP

La estructura de directorios debe ser la siguiente:

src - > Test.java
WebContent - > WEB-INF -> classes
---------------------> process.jsp

Fijate de configurar bien el buildPath para indicar que tire los .class en la carpeta classes.

Última edición por emucho; 24/11/2008 a las 13:29 Razón: Correccion
  #7 (permalink)  
Antiguo 24/11/2008, 13:52
Avatar de congonga  
Fecha de Ingreso: febrero-2008
Ubicación: Concepción
Mensajes: 29
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Llamar a Java desde JSP

Cita:
Iniciado por jspcat Ver Mensaje
Hola,

He probado lo que me has dicho hi ahora tengo en el codigo jsp.
Código:
<%@page import="Simulador.*;"%>
<%
Test test = new Test();

%>
Y en el test.java

Código:
package Simulador;

public class Test {

    public static void main(String[] args) {
        escriu();
        // TODO Auto-generated method stub

    }
    
    public static String escriu(){
        System.out.println("ENTRO");
        String var="HOLA";
        return var;
        
    }

}
Por convención, en java los paquetes se nombran con letra inicial minúscula, no sé si tenga que influir, y para las clases, todas comienzan con mayúscula.

Para que te funcione bien, cuando usas un bean, la clase no trae constructor, y sólo metodos del tipo setAtributo y getAtributo(), por lo que para utilizarlas, no es necesario tener que instanciarlas, osea que no se hace new Clase();

Asumiendo que todo está bien configurado, debes hacer en las primera líneas:

Código:
<%@page import="Simulador.Test;"%>
<jsp:useBean id="nombreInventado" class="Simulador.Test" scope="session"/>
Luego, para poder ocupar la clase, lo haces con su id, en este caso, nombreInventado. Ojalá te sirva, aunque la clase que pones de ejemplo no le veo mucho sentido.

Saudos
  #8 (permalink)  
Antiguo 24/11/2008, 21:13
 
Fecha de Ingreso: junio-2005
Ubicación: Barcelona
Mensajes: 458
Antigüedad: 18 años, 11 meses
Puntos: 4
Respuesta: Llamar a Java desde JSP

Hola a todos,

En primer lugar gracias por la respuestas.
Refiriendome a lo que me comenta emucho:
He creado la estructura
src
Test.java
WebContent
WEB-INF
classes
process.jsp

Tambien he probado la estructura:
src
Test.java
WebContent
WEB-INF
classes
Simulador
process.jsp


Con ambas estructuras me sigue dando el mismo error.

Referente a congonga los beans era mi primera opcion pero resulta que no todos los temas son getAlgo o setAlgo y recordar que es un programa en java echo que lo estoy adaptando a jsp.

La clase que expongo es simplemente para aprender ocmo funciona si el ejemplo no es correcto acepto cualquiera lo que quiero es simplente aprender como funciona. Como instanciar un objeto (clase java) desde una pagina jsp yh llamar a las funciones que me interesen.

Muchas gracias

Saludos
__________________
La ficción es y será mi única realidad
  #9 (permalink)  
Antiguo 24/11/2008, 21:20
Avatar de congonga  
Fecha de Ingreso: febrero-2008
Ubicación: Concepción
Mensajes: 29
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Llamar a Java desde JSP

Dinos qué versión de Tomcat usas y en qué sistema lo estás corriendo.
  #10 (permalink)  
Antiguo 24/11/2008, 21:21
 
Fecha de Ingreso: junio-2005
Ubicación: Barcelona
Mensajes: 458
Antigüedad: 18 años, 11 meses
Puntos: 4
Respuesta: Llamar a Java desde JSP

Hola

Es el tomcat 6.0.13 en ubuntu 8.10

Saludos
__________________
La ficción es y será mi única realidad
  #11 (permalink)  
Antiguo 24/11/2008, 21:32
Avatar de congonga  
Fecha de Ingreso: febrero-2008
Ubicación: Concepción
Mensajes: 29
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Llamar a Java desde JSP

Cita:
Iniciado por congonga Ver Mensaje
Organizacion de todo en una webapp cuyo nombre sea foo, cuyo nombre de paquete sea paque y cuyo nombre de clase sea Bin1
Dentro de webapps:

webapps/
webapps/foo : todos los jsp van aqui
webapps/foo/WEB-INF
webapps/foo/WEB-INF/classes/
webapps/foo/WEB-INF/classes/paque/Bin1.class
Para utiilizar la clase, no importa que sea o no un Java Bean, hacer:
<%@ page import="paque.Bin1" %>
y luego la instancias de la manera normal : Bin1 inst1 = new Bin1();

Ahora, si la clase es un bean, entonces añades al principio:
<jsp:useBean id="nombreInventado" class="paque.Bin1" scope="session"/>
Para poder usarla, solo accedes a ella por su id. Ejemplo:
Var x = nombreInventado.metodo();

Ojalá esto te ayude.
  #12 (permalink)  
Antiguo 25/11/2008, 03:12
 
Fecha de Ingreso: junio-2005
Ubicación: Barcelona
Mensajes: 458
Antigüedad: 18 años, 11 meses
Puntos: 4
Desacuerdo Respuesta: Llamar a Java desde JSP

Hola,
La estructura que tengo (estando en /opt/tomcat/webapps/Root/Projecte) en donde
*Projecte es el nombre del proyecto
*Simulador el package
*Test es la clase
Cita:
javi@javi-laptop:/opt/tomcat/webapps/ROOT/Projecte_Eclip$ tree
.
|--WebContent
|----META-INF
|------MANIFEST.MF
|----WEB-INF
|------classes
|--------Simulador
|----------Test.class
|------index.jsp
|------lib
|------process.jsp
|------web.xml
|--build
|----classes
|------Simulador
|--------Test.class
|--src
|----Simulador
|------Test.java
Pero no funciona.
He probado la estructura tal como me has dicho
Cita:
javi@javi-laptop:/opt/tomcat/webapps/ROOT/Projecte$ tree
.
|--WEB-INF
|----classes
|------Simulador
|------- Test.class
|--index.jsp
|--process.jsp

Y tampoco funciona
Saludos
__________________
La ficción es y será mi única realidad
  #13 (permalink)  
Antiguo 25/11/2008, 05:24
 
Fecha de Ingreso: septiembre-2003
Mensajes: 122
Antigüedad: 20 años, 7 meses
Puntos: 0
Respuesta: Llamar a Java desde JSP

Esta barbaro que investigues, pero lo que queres hacer es poco util.

Generalmente en el jsp no se instancian objetos usando scriptlets. Al jsp se le pasan los objetos necesarios para que "pinte" la pantalla.
  #14 (permalink)  
Antiguo 25/11/2008, 05:32
 
Fecha de Ingreso: junio-2005
Ubicación: Barcelona
Mensajes: 458
Antigüedad: 18 años, 11 meses
Puntos: 4
Respuesta: Llamar a Java desde JSP

Hola,

Quiza no he planteado bien el problema. Me explico

Se creo un programa en java k es un simulador cn sus clases, sus metodos etc y funciona bien

Ahora jo quiero que este programa se pueda ver mediante web y he dedidido usar jsp peo la gracia seria no volver a reescribir el programa sino aprovechar las funciones y clases echas

Saludos
__________________
La ficción es y será mi única realidad
  #15 (permalink)  
Antiguo 25/11/2008, 14:41
Avatar de congonga  
Fecha de Ingreso: febrero-2008
Ubicación: Concepción
Mensajes: 29
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Llamar a Java desde JSP

Leo y leo y no le veo el error a tu código, de seguro ha de ser algo mal configurado en tu sistema. Ya te había sugerido que cambiaras el nombre del paquete por minúsculas, para estar seguros.

Yo no sé cómo se usa Eclipse, pero lo que te puedo asegurar es que toda la mentada estructura de directorios que tienes, debes ubicarlas en:

CATALINA_HOME/webapps/carpeta-con-tu-aplicacion


Donde CATALINA_HOME es la ruta donde tienes instalado tu Tomcat. Lo otro: ¿probaste tu clase Test sin jsp, de manera que estés seguro que funciona por sí sola?

Saludos.
  #16 (permalink)  
Antiguo 25/11/2008, 14:42
Avatar de congonga  
Fecha de Ingreso: febrero-2008
Ubicación: Concepción
Mensajes: 29
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Llamar a Java desde JSP

¿Por qué utilizas la carpeta ROOT?..¿ y dentro de ella haces todo? Te sugiero que crees una carpeta independiente, directamente en webapps.
  #17 (permalink)  
Antiguo 27/02/2011, 14:55
 
Fecha de Ingreso: febrero-2011
Mensajes: 2
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: Llamar a Java desde JSP

hol normalmente se importa asi:
<%@page import="Simulacion.Test"%>
generalmente la carpeta donde esta esto es el mismo nombre desl paquete; entonces su clase Test deberia estar en la capeta simulacion

generalmente estas carpetas se guardan en src/java/Simulacion/Test.java o en el WEB-INF/classes/Simulacion/Test.java
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 13:25.