使用外部jar。找不到适合jdbc:sqlserver的驱动程序

时间:2013-10-08 23:55:06

标签: java web-services hibernate jdbc jboss

Hy guys,

我正面临着一个非常“普通”的sql驱动程序问题。但不知道如何解决。 alredy尝试了几乎所有的解决方案。

环境是:

-Principal JAR:它包含通过Hibernate的所有登录和数据库访问

-WebService WAR:这有两行代码,只调用Principal JAR

-Jboss:在Jboss AS 7.1上运行WebService

我的问题是:

启动服务器后,当我调用它时,我发现了以下错误:

20:39:20,948 WARN  [org.hibernate.engine.jdbc.spi.SqlExceptionHelper] (http-localhost-127.0.0.1-8080-1) SQL Error: 0, SQLState: 08001
20:39:20,949 ERROR [org.hibernate.engine.jdbc.spi.SqlExceptionHelper] (http-localhost-127.0.0.1-8080-1) No suitable driver found for jdbc:sqlserver://localhost;databaseName=SIPAAM;

我的JAR也有一个测试类,如果我执行该类,则ALL工作正常。它访问数据库并获取所有有问题的数据。但是当我在我的WebService上引用它时,它会给出错误。 我的Persistence xml(位于.JAR项目中)

enter image description here


其他信息:

我的WebService代码:

@WebMethod
    public List<DadosPreProcessamento> getDadosPreProcessamento()
    {
        DadosPreProcessamentoController dadosPreProcessamentoController = DadosPreProcessamentoController.getInstance();
        return dadosPreProcessamentoController.getLista_dadosPreProcessamento();
    }

我的Hibernate查询(内部JAR):

Query listQuery = em.createQuery("select object(c) from "
                    + entityClassName + " as c");
return listQuery.getResultList();

getResultList()方法发生错误。


我已经尝试在我的WS项目中添加sqljdbc4库,如下图所示:

WS Libs Config

WS Deploy config

3 个答案:

答案 0 :(得分:0)

您还需要将sqljdbc.jar文件添加到类路径中。您可以通过单击软件包资源管理器中的Java资源并在软件包中查找该类来验证驱动程序是否在jar中。

答案 1 :(得分:0)

验证JAR库中包含的Class-Path文件中的字段manifest.mf的值;如果它没有声明它确实包含sqljdbc.jar,则无法从JAR外部访问该依赖项。

您还可以进行一些实验:解压缩JAR,从清单中删除Class-Path字段并重新打包;应用程序将强制检查内容,因此它应该可以工作。

答案 2 :(得分:0)

解决!

将sql jar添加到:

<强>〜\ jboss7 \模块\有机\冬眠\主

上面“main”文件夹中module.xml标签底部的这一行。

<resource-root path="sqljdbc4.jar"/>