Java - Duda acerca JSF y Aplicación Escritorio

   
Vista:

Duda acerca JSF y Aplicación Escritorio

Buenas tardes, mi nombre es Andres Rubiano Del Chiaro, vivo en Barranquilla, Colombia y soy estudiante de 8vo semestre de Ingeniería de Sistemas.

Mi duda es la siguiente:

Yo me encuentro desarrollando un proyecto web con JSF con el IDE Eclipse, y quiero acceder a otra información que se encuentra en una aplicación de escritorio. Con la vista(Archivos .jsp) accedo perfectamente a los atributos y métodos del bean. Listo, pero en el método que invoco al ejecutar el evento de un boton, quiero acceder a una clase que se encuentra en el proyecto de escritorio. Ya tengo importado la aplicación de escritorio en la aplicación web, y no me sale ningún error; pero al momento de ejecutar, me sale un error de ejecución dónde la excepción me dice que la clase no ha sido encontrada. Quisiera saber si esto es posible, yo lo realizo desde Netbeans y lo realiza perfectamente aunque quiero migrar la plataforma a Eclipse ya que me parece mucho más robusta que el Netbeans.

Gracias por su dedicación.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
información
Otras secciones de LWP con contenido de Java
- Código fuente de Java
- Cursos de Java
- Temas de Java
- Chat de Java
información
Códigos de Java
- Integrales
- Linea
- Conectar con MongoDB 3.2
Imágen de perfil de Jhonnathan Emilio Cardona Saineda

Duda acerca JSF y Aplicación Escritorio

Publicado por Jhonnathan Emilio Cardona Saineda (328 intervenciones) el 16/04/2013 18:20:50
hola, Andres Rubiano Del Chiaro
La aplicación de escritorio se está ejecutando a la misma vez que la aplicación web???? colocas datos en memoria desde la aplicación de escritorio que luego necesita la aplicación web. si esto es así necesitas un protocolo de comunicación como por ejemplo HTTP, que comunique la aplicacion standalone con la aplicacion web. Si solo necesitas una clase de la standalone puedes empaquetar el standalone como un simple jar lo metes en la carpeta lib ubicada normalmente en la carpeta Webcontent y desde un BackingBean de JSF lo puedes utilizar sin problemas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Duda acerca JSF y Aplicación Escritorio

Publicado por Andres Rubiano Del Chiaro (3 intervenciones) el 16/04/2013 18:50:05
Hola Jonathan Cardona, gracias por responder.

Pues, hice exactamente lo que me acabas de decir. La aplicación de escritorio no está corriendo, pero yo importo el proyecto de escritorio tal cual cómo acabas de decirme. Lamentablemente, me sigue sin funcionar. Para ser más preciso, te mostraré el ejercicio a continuación:

Creo dos archivos jsp (read.jsp y write .jsp)

read.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<f:view>
<h:form id="convert">
<h:inputText value="#{Try.x}" required="true"/>
<h:inputText value="#{Try.y}" required="true"/>

<h:commandButton action="#{Try.comparar}" value="CLICK" />
</h:form>
</f:view>

</body>
</html>



write.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<f:view>
<h:form id="result">
<p>
<h:inputText value="#{Try.res}" required="true"/>
</p>
</h:form>
</f:view>
</body>
</html>



El faces-config.xml, lo configuro de la siguiente manera:
<?xml version="1.0" encoding="UTF-8"?>

<faces-config
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_1.xsd"
version="2.1">

<navigation-rule>
<from-view-id>/pages/read.jsp</from-view-id>
<navigation-case>
<from-outcome>say</from-outcome>
<to-view-id>/pages/write.jsp</to-view-id>
</navigation-case>
</navigation-rule>


<managed-bean>
<managed-bean-name>Try</managed-bean-name>
<managed-bean-class>com.aspsols.Try</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>



</faces-config>



El managed-bean del proyecto web , es la siguiente clase:

Try.java

package com.aspsols;

import com.classes.Aritmetica;

public class Try
{
int x = 5, y=8, res=0;


public int getRes() {
return res;
}

public void setRes(int res) {
this.res = res;
}

public int getX() {
return x;
}

public void setX(int x) {
this.x = x;
}

public int getY() {
return y;
}

public void setY(int y) {
this.y = y;
}


public String comparar()
{
try
{
com.classes.Aritmetica ar = new Aritmetica();
setRes(ar.mayorNumero(15, 29));
}catch(Exception e)
{
e.printStackTrace();
}
return "say";
}



}


Y en la aplicación de escritorio, creo ésta clase.



Aritmetica.java

package com.classes;

public class Aritmetica
{

public Aritmetica()
{

}

public int mayorNumero(int x, int y)
{
if(x > y)
{
return x;
}
else
{
return y;
}
}

}



En la aplicación web, importo la aplicación de escritorio. ella corre perfecto, pero al momento de ingresar al método del bean en el cual instancio la clase que se encuentra en el otro proyecto, es:

noClassDefFoundError al momento de acceder al método.



Te agradezco si me peudes ayudar. Esto lo realizo en el netbeans y me funciona conrrectamente, pero al momento de hacerlo en Eclipse no lo permite. Estoy usando framework JSF y servidor Web Tomcat. Estoy corriendolo desde un windows 8, pero no creo que tenga que ver.


Gracias de antemano.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Jhonnathan Emilio Cardona Saineda

Duda acerca JSF y Aplicación Escritorio

Publicado por Jhonnathan Emilio Cardona Saineda (328 intervenciones) el 16/04/2013 19:21:21
OK, veo que esta todo bien. Solo te pregunto, has verificado que la aplicación de escritorio que debe estar en un jar si está quedando en la carpeta lib del war??? No conozco como estás ejecutando tu aplicacion pero eclipse normalmente despliega diferente. Lo que debes hacer es después que tengas la aplicación en Eclpse le das click derecho Export y generas un war. Verifica que en la carpeta /web-inf/lib esta quedando tu jar de escritorio. Luego copias este war en la carpeta webapps, esto es mas lidioso pero a la final mas fácil. En mi caso esto lo hago con herramientas automatizadas como ANT y ultimamente con Maven. El despliegue con Eclipse no es recomendable ya solo con casos de prueba. en esta pagina te explica facil y mejor
http://www.edu4java.com/es/servlet/servlet5.html en la parte de "Despliegue utilizando archivo WAR"
Verifica que este war contiene el jar de tu aplicación de escritorio en la carpeta WEB-INF/lib.
Si quieres podemos ver esto con mas detalle. mi correo es jhonne25.64@gmail.com soy colombiano tambien. suerte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Duda acerca JSF y Aplicación Escritorio

Publicado por Andres Rubiano Del Chiaro (3 intervenciones) el 19/04/2013 16:00:32
Si, perfecto, era eso Jonathan. Gracias por tu colaboración. Estaba agregando el .jar en el build path como tal y debía agregarse en el /lib como tú dijiste. Te lo agradezco man. Dios te bendiga.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar