能够连接到DB2数据库,使用下面用蓝图编写的数据源。
<!-- DB2 Configuration -->
<bean id="dataSource" class="com.ibm.db2.jcc.DB2DataSource">
<property name="serverName" value="${db.connection.serverName}" />
<property name="databaseName" value="${db.connection.databaseName}" />
<property name="portNumber" value="${db.connection.port}" />
<property name="user" value="${db.connection.user}" />
<property name="password" value="${db.connection.password}" />
<property name="driverType" value="4" />
</bean>
<!-- This dataSource service is exposed by this bundle. -->
<!-- It can be accessed by any bundle deployed in the same container -->
<!-- Hence no need to do external database configuration AGAIN -->
<service ref="dataSource" interface="javax.sql.DataSource">
<service-properties>
<entry key="osgi.jndi.service.name" value="jdbc/databaseds" />
<entry key="datasource.name" value="DatabaseDS" />
</service-properties>
</service>
我尝试使用以下数据源bean
连接到AS400数据库<!-- DB2 Configuration -->
<bean id="as400DataSource" class="com.ibm.as400.access.AS400JDBCDriver">
<property name="serverName" value="${db.connection.serverName}" />
<property name="user" value="${as400db.connection.user}" />
<property name="password" value="${as400db.connection.password}" />
</bean>
<!-- This dataSource service is exposed by this bundle. -->
<!-- It can be accessed by any bundle deployed in the same container -->
<!-- Hence no need to do external database configuration AGAIN -->
<service ref="as400DataSource" interface="javax.sql.DataSource">
<service-properties>
<entry key="osgi.jndi.service.name" value="jdbc/databaseds" />
<entry key="datasource.name" value="DatabaseDS" />
</service-properties>
</service>
以下是我的项目pom.xml中为AS400连接添加的依赖项
<dependency>
<groupId>net.sf.jt400</groupId>
<artifactId>jt400</artifactId>
<version>6.7</version>
</dependency>
当我在servicemix中部署时,它会抛出以下错误。
Unable to resolve 249.0: missing requirement [249.0] osgi
.wiring.package; (osgi.wiring.package=com.ibm.as400))
尝试使用以下命令安装jt400。
install -s wrap:mvn:net.sf.jt400/jt400/6.7
抛出异常
java.lang.ArrayIndexOutOfBoundsException: 33806
at aQute.bnd.osgi.Clazz.classConstRef(Clazz.java:1862)
at aQute.bnd.osgi.Clazz.crawl(Clazz.java:1174)
at aQute.bnd.osgi.Clazz.doCode(Clazz.java:1134)
at aQute.bnd.osgi.Clazz.doAttribute(Clazz.java:945)
at aQute.bnd.osgi.Clazz.doAttributes(Clazz.java:910)
at aQute.bnd.osgi.Clazz.parseClassFile(Clazz.java:741)
at aQute.bnd.osgi.Clazz.parseClassFile(Clazz.java:494)
at aQute.bnd.osgi.Clazz.parseClassFileWithCollector(Clazz.java:483)
at aQute.bnd.osgi.Clazz.parseClassFile(Clazz.java:473)
at aQute.bnd.osgi.Analyzer.analyzeJar(Analyzer.java:2177)
at aQute.bnd.osgi.Analyzer.analyzeBundleClasspath(Analyzer.java:2083)
at aQute.bnd.osgi.Analyzer.analyze(Analyzer.java:138)
at aQute.bnd.osgi.Analyzer.calcManifest(Analyzer.java:616)
at org.ops4j.pax.swissbox.bnd.BndUtils.createBundle(BndUtils.java:161)
at org.ops4j.pax.url.wrap.internal.Connection.getInputStream(Connection.
java:83)
有没有其他方法可以使用数据源技术连接到AS400 i DB?
提前致谢..