【问题标题】:Connect my liferay portlet with jdbc driver将我的 liferay portlet 与 jdbc 驱动程序连接起来
【发布时间】:2019-11-09 13:09:24
【问题描述】:

我想将我的 portlet 连接到 postgresql。但是我的 portlet 没有看到 jdbc。在我的 portlet 包中,我有两个类。 Connection.java 和 TestDBPortlet.java。 Connection.java 成功连接到 postgresql 但 TestDBPortlet.java 没有看到 jdbc。这是否正常知道两者都在同一个包中,它们必须具有相同的类?我在 tomcat/libs、tomcat/lib/ext 和 tomcat/webapps/root/web-inf/libs 中复制了 jbdc.jar,但没有任何变化。请帮帮我!

【问题讨论】:

    标签: java jdbc liferay osgi liferay-7


    【解决方案1】:

    您提到的目录不会使您的驱动程序对您的模块可见。

    tomcat/libs, 
    tomcat/lib/ext
    tomcat/webapps/root/web-inf/libs
    

    这些人不会为您的 portlet 提供类,因为它在 OSGi 级别上提供了自己的类加载器。您可以将 jar 文件嵌入到模块的 jar 中,也可以使用驱动程序 jar 来导出 OSGi 运行时所需的包。

    要嵌入 jar,您可以使用模块的 bnd 文件,例如:

    -includeresource: lib/javax.json.jar=javax.json-1.0.jar
    
    Bundle-ClassPath: ., lib/javax.json.jar
    

    但在这种情况下,您需要创建一个目录并将 lib 放在那里。

    【讨论】:

    • 感谢您的回复!总之,我必须在我的 portlet 的根目录中创建一个文件夹“lib”,我必须将我的 jar 文件放在这个文件夹中,并且必须将这些 lignes 添加到我的 portlet 的 bnd.bnd 中。
    • 此外,如果我的 jar 是“postgresql-9.4-1200-jdbc41.jar”,我会在我的 bnd 文件中写:-includeresource: lib/postgresql.jar=postgresql-9.4-1200-jdbc41.jar Bundle-ClassPath: ., lib/postgresql.jar
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-11
    • 2018-03-25
    • 2012-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多