Problemas frecuentes con Spring Roo
Contenido
- 1 Error de archivo con una sección asignada a usuario abierta
- 2 No se encuentran las clases de la libreria Jaxb
- 3 No logro descargar los jars del repositorio Maven
- 4 SurefireExecutionException: Bad version number in .class file
- 5 Missing artifact com.oracle:ojdbc14:jar:10.2.0.2:compile
- 6 Ver tambien
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>