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项目中)
其他信息:
我的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库,如下图所示:
答案 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"/>