Spring Roo - 'JDBC驱动程序不适用于'net.sourceforge.jtds.jdbc.Driver'

时间:2016-07-01 09:32:55

标签: spring-roo

我对Spring Roo很新,并且在建立与MSSQL数据库的连接时遇到问题。我使用的是Spring Tool Suite和Roo版本1.3.1。当我尝试使用“database introspect --schema dbo”测试与数据库的连接(使用“jpa setup ...”设置)时,我收到以下错误:

        Located add-on that may offer this JDBC driver
        1 found, sorted by rank; T = trusted developer; R = Roo 1.3 compatible
        ID T R DESCRIPTION -------------------------------------------------------------
        01 Y Y 1.2.4.0010 #jdbcdriver driverclass:net.sourceforge.jtds.jdbc.Driver
....
    JDBC driver not available for 'net.sourceforge.jtds.jdbc.Driver'

之后,我尝试使用以下命令安装驱动程序:

roo> addon install id --searchResultId 01
roo> Target resource(s):
-------------------
   Spring Roo - Wrapping - jtds (1.2.4.0010)

Deploying...
done.

驱动程序似乎也出现在插件列表中:

...
58 Y Y 1.2.4.0010 #jdbcdriver driverclass:net.sourceforge.jtds.jdbc.Driver.
       This bundle wraps the standard Maven artifact: jtds-1.2.4.

但是当我再次尝试运行数据库introspect命令时,我仍然收到上述消息。按照此处的建议:http://forum.spring.io/forum/spring-projects/roo/118692-unable-to-find-the-jtds-driver我尝试使用以下命令手动安装文件:

osgi start -–url “file:\\\C:\Program Files\Spring Tool Suite\jtds-1.2.4.jar”

但是我得到了例外

org.osgi.framework.BundleException: Unable to cache bundle: file:\C:Program
        at org.apache.felix.framework.Felix.installBundle(Felix.java:2947)

并且行为保持不变。我也尝试过Roo版本2,但是“database introspect”命令似乎不可用。

2 个答案:

答案 0 :(得分:2)

在OSGi容器中,您必须只安装OSGi包,不能在OSGi容器中安装常规JAR文件。

Spring Roo Wrapping项目通过将常规JARS包装为OSGi包来帮助您实现这一目的。

查看Spring Roo Wrapping project以包装MySQL JDBC驱动程序。

希望它有所帮助,

答案 1 :(得分:2)

而不是

addon install id --searchResultId 01

将其更改为

addon install id --searchResultId 58

然后它将安装JDBC驱动程序,之后您应该能够继续

database introspect --schema dbo