Apache Camel - 无法使用jt400连接到As400

时间:2016-01-13 14:51:14

标签: db2 apache-camel apache-karaf apache-servicemix jt400

能够连接到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?

提前致谢..

0 个答案:

没有答案