Problemas frecuentes con Spring Roo

De Dos Ideas.
Saltar a: navegación, buscar

Error de archivo con una sección asignada a usuario abierta

Puede ser que a veces Spring Roo se trabe cuando quiere abrir un archivo y emita el siguiente error: "(La operación solicitada no se puede realizar en un archivo con una sección asignada a usuario abierta)". Esto sucede por causa del antivirus. Desactivandolo se soluciona el problema. Con windows: Panel de Control -> Herramientas administrativas -> Servicios -> Detener los procesos activados del antivirus.

No se encuentran las clases de la libreria Jaxb

Si al desplegar el proyecto en el servidor de aplicaciones, Maven perdió la dependencia con JAXB, entoces necesitarás agregar la dependencia en pom.xml del proyecto:

<dependency> <groupId>javax.xml.bind</groupId> <artifactId>jaxb-api</artifactId> <version>2.1</version> <exclusions> <exclusion> <groupId>javax.xml.stream</groupId> <artifactId>stax-api</artifactId> </exclusion> <exclusion> <groupId>javax.activation</groupId> <artifactId>activation</artifactId> </exclusion> </exclusions> </dependency> <dependency>

       <groupId>com.sun.xml.bind</groupId>

<artifactId>jaxb-impl</artifactId> <version>2.1.5</version> <scope>runtime</scope> </dependency>

Mas ayuda de la dependencia de Maven con JAXB

No logro descargar los jars del repositorio Maven

Si hay un error al descargar archivos del repositorio maven es probable que se deba configurar correctamente el proxy a utilizar.

Para ello en Maven, en el archivo settings.xml, es necesario configurar el proxy para que Maven pueda conectarse al repositorio de la web y bajarse lo que necesita tener sincronizado en la pc para las ejecuciones locales de la aplicación:

   <proxy>
     <active>true</active>
     <protocol>http</protocol>
     <username>nombre del usuario de conexion</username>
     <password>clave</password>
     <host>servidor</host>
     <port>puerto</port>
</proxy>

SurefireExecutionException: Bad version number in .class file

Al ejecutar el comando perform tests obteniamos el error:

org.apache.maven.surefire.booter.SurefireExecutionException: Bad version number in .class file; nested exception is java.lang.UnsupportedClassVersionError: Bad version number in .class file ...

Leyendo un poco vimos que el motivo es que maven está corriendo con una versión de java que no es la correcta. Para verificarlo ejecutar (fuera de roo) el comando:

mvn -v

Que muestra la siguiente información

Apache Maven 2.2.1 (r801777; 2009-08-06 19:16:01+0000) Java version: 1.5.0_09 Java home: C:\Archivos de programa\Java\jdk1.5.0_09\jre Default locale: es_AR, platform encoding: Cp1252 OS name: "windows xp" version: "5.1" arch: "x86" Family: "windows"

Si vemos que la versión de Java no es la correcta (idealmente java 6) debemos cambiar el valor de la variable de entorno JAVA_HOME para que apunte al JDK correcto.

Missing artifact com.oracle:ojdbc14:jar:10.2.0.2:compile

En el seteo de oracle como bd, dependiendo de la versión de roo podemos obtener el error:

Missing:


1) com.oracle:ojdbc14:jar:10.2.0.2

 Try downloading the file manually from the project website.
 Then, install it using the command: 
     mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc14 -Dversion=10.2.0.2 -Dpackaging=jar -Dfile=/path/to/file
 Alternatively, if you host your own repository you can deploy the file there: 
     mvn deploy:deploy-file -DgroupId=com.oracle -DartifactId=ojdbc14 -Dversion=10.2.0.2 -Dpackaging=jar -Dfile=/path/to/file -Durl=[url] -DrepositoryId=[id]
 Path to dependency: 
 	1) com.dosideas.demo.roo.oracle:PruebaOracle:war:0.1.0-SNAPSHOT
 	2) com.oracle:ojdbc14:jar:10.2.0.2

1 required artifact is missing.

Se soluciona editando el pom.xml para cambiar

<dependency> <groupId>com.oracle</groupId> <artifactId>ojdbc14</artifactId> <version>10.2.0.2</version> </dependency>

por

<dependency> <groupId>com.oracle.jdbc</groupId> <artifactId>com.springsource.oracle.jdbc</artifactId> <version>10.2.0.2</version> </dependency>


Ver tambien