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

Spring Roo - 'JDBC driver not available for 'net.sourceforge.jtds.jdbc.Driver'

我是 Spring Roo 的新手,在建立与 MSSQL 数据库的连接时遇到了问题。我正在使用 Spring 工具套件和 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.

但是当我再次尝试 运行 数据库内省命令时,我仍然收到上述消息。此处推荐: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 进行了同样的尝试,但“数据库内省”命令似乎不可用。

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

Spring Roo Wrapping 项目通过将常规 JARS 包装为 OSGi 包以这种方式帮助您。

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

希望对您有所帮助,

而不是

addon install id --searchResultId 01

改为

addon install id --searchResultId 58

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

database introspect --schema dbo