Creo que esta vez puedo decir que he sido yo el que aporta una solución y no el que la copia 😉
http://forum.springsource.org/showthread.php?p=339664
http://forum.springframework.org/showthread.php?t=100990
Para crear un Driver de DB2 necesitaremos acceso a los siguientes jars de DB2:
· db2jcc.jar
· db2jcc_license_cu.jar
Además, como no están en ningún repositorio Maven público (al menos yo no los he encontrado) debéis colocarlos en una ruta de vuestro MavenRepo.
Yo los he dejado en:
%MAVEN_REPO%comibmdb2db2jcc1.3.1db2jcc-1.3.1.jar (lo he renombrado haciendo referencia al JDK con el que se compiló el jar)
%MAVEN_REPO%comibmdb2db2jcc_license_cu1.3.1db2jcc_license_cu-1.3.1.jar
En el reciente Spring Roo 1.1.1 se añade el comando addon create wrapper
Cuando lanzo el comando:
>addon create wrapper –topLevelPackage com.ibm.db2.roo.JDBC –groupId com.ibm.db2 –artifactId db2jcc –version 1.3.1 –vendorName IBM –licenseUrl http://www-01.ibm.com/software/data/db2/
me creará un pom.xml.
A este pom.xml le incluiré las dependencias de mi Driver:
| <dependencies>
<dependency> <groupId>com.ibm.db2</groupId> <artifactId>db2jcc</artifactId> <version>1.3.1</version> <optional>true</optional> </dependency> <dependency> <groupId>com.ibm.db2</groupId> <artifactId>db2jcc_license_cu</artifactId> <version>1.3.1</version> <optional>true</optional> </dependency> </dependencies> |
Una vez hecho esto, si el Driver no tiene dependencias externas basta con hacer mvn bundle:bundle
En el caso que nos ocupa nos encontramos de nuevo con el “org.osgi.framework.BundleException: Unresolved constraint in bundle”.
Para solucionarlo no hay más opción que ir modificando los parámetros del plugin org.apache.felix añadiendo los paquetes que dan error al DynamicImport-Package
![]()
Tras un buen rato añade que te añade quedará algo como:
| <instructions>
<Bundle-SymbolicName>${pom.artifactId}</Bundle-SymbolicName> <Export-Package>COM.*,com.*;version=${pom.version}</Export-Package> <DynamicImport-Package>*,sqlj.framework.ide,com.ibm.jvm,sqlj.runtime.profile.ref,com.ibm.jvm.classloader,sqlj.runtime.profile.util,sqlj.runtime.ref,sun.tools.jar,sun.security.action,sqlj.runtime.profile,sqlj.runtime,sun.io,COM.ibm.db2os390.sqlj.custom,sqlj.runtime.error</DynamicImport-Package> <Bundle-Vendor>${pkgVendor} (wrapped into an OSGi bundle by the Spring Roo project build system)</Bundle-Vendor> <Bundle-DocURL>${pkgDocUrl}</Bundle-DocURL> <Bundle-License>${pkgLicense}</Bundle-License> </instructions> |
Tras esto ya podemos ejecutar desde la consola Roo:
>perform package
>osgi uninstall –bundleSymbolicName com.ibm.db2.roo.jdbc.db2jcc
>osgi install –url file:///DESARROLLO/XXXX/XXXX-Wrapper-DB2/target/com.ibm.db2.roo.jdbc.db2jcc-1.3.1.0001.jar
>osgi start –url file:///DESARROLLO/XXXX/XXXX-Wrapper-DB2/target/com.ibm.db2.roo.jdbc.db2jcc-1.3.1.0001.jar
>osgi ps
Para ver que ahí lo tenemos 🙂



Deja un comentario