Error compilación Linux - Windows y manejo de caracteres en las clases

Buenas tarde a todos,

tengo dos problemas con la compilación y la importación de las clases, el escenario es el siguiente:

Configuración ambiente Linux:
jboss 3.2.8
jdk 1.5
ide eclipse Juno

Configuración ambiente windows 2003 server
jboss 3.2.8
jdk 1.5
ide compilacion en windows 7 myEclipse 7.0 u 8.0.

Se copiaba el war por fileZilla hacia el implementador.

Problema 1:

1) Me dieron un proyecto en el cual se realizó en windows pero al importarlo todos los caracteres con tílde y con ñ se convirtieron en un signo de interrogación dentro de un rombo, en primera medida los visualice en las jsp que manejaban un encoding iso 8896-1, y luego en las clases y mi eclipse manejaba UTF-8, lo cual, para que no me sucediera esto tocaba copiar el contenido de las clases originales y pasarlas a las clases en las que se realiza el cambio (Son las mismas clases ). y tambien pasaba al realizar la operación inversa que era pasarlas de mi equipo al equipo de windows, esto sucedida ya que la implementación e integración con un proyecto más grande lo realizaba otra persona.

Problema 2:

Es el mismo proyecto al punto anterior el cual presentó un problema posterior.

2) Se compila el proyecto en Linux y luego al pasarlo, al servidor de windows server 2003, se desplegaba correctamente sin reportar errores en el log del servidor, pero cuando se intentaba ejecutar desde el index una funcionalidad que ejecutaba x clase aparecía un problema de NoClassFoundException y así pasaba con cualquier clase que se llamará.

La solución temporal a este problema fue que la otra persona debía compilar en windows las clases que se compilaron en linux así permitiendo ejecutar el proyecto correctamente.

Pues como ustedes ven la solución es bastante coloquial y a corto plazo, mi pregunta es: ¿ si existe una solución y en dónde se aplica si en jboss o en los ides de windows y linux. Aclaro que en eclipse Juno cambie todos los encoding de los archivos a UTF-8 ?

Gracias por su colaboración y atención.

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

Workspace Encoding

Deberia funcionar que en preferencias de tu IDE (Eclipse) vayas a   y de ahi   si modificas la codificacion deberia poder compilarte sin problemas de forma correcta, esto deberia solucionar el problema 1. Para el problema 2 verifica si se están compilando las clases dentro de tu EAR/WAR.

Imagen de DragonNegro

Respuesta punto 2

Se verificó la compliación los archivos .class aparecen con la fecha de generación correctamante y aun estando los .class siempre aparece el error NoClassFoundException si no se compila desde windows.

Aclaro que como eclipse después de realizar un cambio el compila automáticamente, yo compilo y luego empaqueto el proyecto en un war y al revisarlo internamente veo los .class con la fecha de compilación correcta

¿ Qué otra cosa puede ser ?

Imagen de paranoid_android

Las rutas del .project de eclipse

Te sugiero que abras el archivo ".project" ubicado en raíz del proyecto y valides que las rutas y los jars existan en ambos ambientes y estén apuntando correctamente ej: windows "c:\...\lib\mi.jar" y en linux "/user/.../lib/mi.jar"
Saludos.

Imagen de DragonNegro

Rutas del .proyect

En el proyecto que estoy manejando al generar el war las librerias se cargan correctamente en el web inf y en el despliegue de jboss en el directorio temp/proyecto/webinf/lib/ Se encuentran correctamente.

En mi ambiente que es el del problema las librerias las tengo manualmene el la carpeta lib de webinf pero tambien se encuentran en la sección assembly deployment.

Aclaro que las clases que no encuentra el proyecto son las del proyecto específicamente y no las de las librerías del mismo.

Sin embargo el .project del proyecto no tiene alguna ruta en el archivo, para su verificación coloco el archivo que se encuentra.

 

¿Si hay algún problema con el archivo como podría solucionarlo?

Imagen de paranoid_android

.profile y variables de entorno

Se me haría muy raro que fuese algo así pero:
Revisa las variables de entorno en windows y linux. CLASSPATH, JAVA_HOME Y PATH de java. también puedes verificar en linux si no tienes alguna máquina virtual por default a la que estes usando. Puedes tirar un java -version o un java -v.
En linux puedes validar también si el usuario esta bien creado y si estas usando la versión de shell que debe operar bash o ksh o sh y está correctamente el ambiente.

Otra que se me ocurre es en eclipse no se si en myeclipse sea igual trata de abrir Buildpath y veas si no te marca en rojo alguna libreria, ademas trata de abrirla con el mas de la derecha debes ver clases si solo ves un par de lineas puede ser que tengas la referencia pero eclipse no la encuentra.

Imagen de DragonNegro

Respuesta: .profile y variables de entorno

Con todas las sugerencias anteriores expuestas por paranoid_android se esta cumpliendo correctamente a diferencia de que nosostors no utilizamos el classpath ya que las librerías estan sociadas al proyecto correctamente.

Con lo único que tengo problema es con una archivo .js (javaScript) que presenta el siguiente error que aparece en el editor de eclipse al ladó derecho del código con una x.

Error:

Internal validation error java.lang.NullPointerException at
org.eclipse.wst.jsdt.internal.compiler.lookup.CompilationUnitBinding.sourceMethod(CompilationUnitBinding.ja
va:83) at org.eclipse.wst.jsdt.internal.compiler.lookup.MethodBinding.sourceMethod(MethodBinding.java:
553) at
org.eclipse.wst.jsdt.internal.compiler.lookup.SourceTypeBinding.resolveTypesFor(SourceTypeBinding.java:
1068) at
org.eclipse.wst.jsdt.internal.compiler.lookup.SourceTypeBinding.resolveTypesFor(SourceTypeBinding.java:
1054) at org.eclipse.wst.jsdt.internal.compiler.lookup.SourceTypeBinding.methods(SourceTypeBinding.java:
779) at
org.eclipse.wst.jsdt.internal.compiler.lookup.MethodBinding.ensureBindingsAreComplete(MethodBinding.java:
623) at org.eclipse.wst.jsdt.internal.compiler.lookup.Scope.findMethod(Scope.java:638) at
org.eclipse.wst.jsdt.internal.compiler.lookup.Scope.getImplicitMethod(Scope.java:1635) at
org.eclipse.wst.jsdt.internal.compiler.ast.MessageSend.resolveType(MessageSend.java:325) at
org.eclipse.wst.jsdt.internal.compiler.ast.ReturnStatement.resolve(ReturnStatement.java:146) at
org.eclipse.wst.jsdt.internal.compiler.ast.AbstractMethodDeclaration.resolveStatements(AbstractMethodDecl
aration.java:350) at
org.eclipse.wst.jsdt.internal.compiler.ast.MethodDeclaration.resolveStatements(MethodDeclaration.java:
137) at
org.eclipse.wst.jsdt.internal.compiler.ast.AbstractMethodDeclaration.resolve(AbstractMethodDeclaration.java:
304) at
org.eclipse.wst.jsdt.internal.compiler.ast.AbstractMethodDeclaration.resolve(AbstractMethodDeclaration.java:
375) at org.eclipse.wst.jsdt.internal.compiler.ast.FunctionExpression.resolveType(FunctionExpression.java:58)
at org.eclipse.wst.jsdt.internal.compiler.ast.MessageSend.resolveType(MessageSend.java:279) at
org.eclipse.wst.jsdt.internal.compiler.ast.Assignment.resolveType(Assignment.java:160) at
org.eclipse.wst.jsdt.internal.compiler.ast.Expression.resolve(Expression.java:477) at
org.eclipse.wst.jsdt.internal.compiler.ast.Block.resolve(Block.java:89) at
org.eclipse.wst.jsdt.internal.compiler.ast.IfStatement.resolve(IfStatement.java:191) at
org.eclipse.wst.jsdt.internal.compiler.ast.AbstractMethodDeclaration.resolveStatements(AbstractMethodDecl
aration.java:350) at
org.eclipse.wst.jsdt.internal.compiler.ast.MethodDeclaration.resolveStatements(MethodDeclaration.java:
137) at
org.eclipse.wst.jsdt.internal.compiler.ast.AbstractMethodDeclaration.resolve(AbstractMethodDeclaration.java:
304) at
org.eclipse.wst.jsdt.internal.compiler.ast.AbstractMethodDeclaration.resolve(AbstractMethodDeclaration.java:
375) at org.eclipse.wst.jsdt.internal.compiler.ast.FunctionExpression.resolveType(FunctionExpression.java:58)
at org.eclipse.wst.jsdt.internal.compiler.ast.ObjectLiteralField.resolveType(ObjectLiteralField.java:70) at
org.eclipse.wst.jsdt.internal.compiler.ast.ObjectLiteral.resolveType(ObjectLiteral.java:80) at
org.eclipse.wst.jsdt.internal.compiler.ast.Assignment.resolveType(Assignment.java:160) at
org.eclipse.wst.jsdt.internal.compiler.ast.Expression.resolve(Expression.java:477) at
org.eclipse.wst.jsdt.internal.compiler.ast.CompilationUnitDeclaration.resolve(CompilationUnitDeclaration.java:
394) at org.eclipse.wst.jsdt.internal.compiler.Compiler.process(Compiler.java:604) at
org.eclipse.wst.jsdt.internal.compiler.Compiler.compile(Compiler.java:356) at
org.eclipse.wst.jsdt.internal.core.builder.AbstractImageBuilder.compile(AbstractImageBuilder.java:288) at
org.eclipse.wst.jsdt.internal.core.builder.BatchImageBuilder.compile(BatchImageBuilder.java:86) at
org.eclipse.wst.jsdt.internal.core.builder.AbstractImageBuilder.compile(AbstractImageBuilder.java:227) at
org.eclipse.wst.jsdt.internal.core.builder.BatchImageBuilder.build(BatchImageBuilder.java:58) at
org.eclipse.wst.jsdt.internal.core.builder.JavaBuilder.buildAll(JavaBuilder.java:291) at
org.eclipse.wst.jsdt.internal.core.builder.JavaBuilder.build(JavaBuilder.java:199) at
org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:728) at
org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at
org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:199) at
org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:239) at
org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:292) at
org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at
org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:295) at
org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:351) at
org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:374) at
org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:143) at
org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:241) at
org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)

Si este es el error como podría solucionarlo??.

Nota: Recuerdo que el problema del error NoClassFoundException no es por que no encuentre las librerías asociadas al proyecto si no a las clases del mismo ya que el proyecto es un simple proyecto web que no tiene otros módulos asociados.

Imagen de paranoid_android

NullPointerException o NoClassFoundException

Hola DragonNegro.
NoClassFoundException es cuando no encuentra una clase dentro del classpath, en esta variable solo revisar también que esta la ruta "." el directorio actual.
Al inicio del error marca un NullPointerException es diferente a NoClassFoundException.
El error que está marcando no es del código es un problema en una librería de eclipse, ¿Es posible que eclipse esté corrompido o tenga demasiados plugins?, podrías intentar desinstalar y volver a instalar.

Otra que se me ocurre es que este corrupto el proyecto y que algunos archivos no esten completos.
Saludos.