在jboss 5.0.1GA中发布axis2 web service,这个service需要使用hibernate从数据库中读取信息。发布的aar文件时用axis2的eclipse插件生成的,目录结构如下
---com
---lib
---META-lib
hibernate.cfg.xml
log4j.properties
其中lib目录中有hibernate3.jar以及其他一些必须的jar文件。在调用该service是jboss报错
Caused by: org.hibernate.HibernateException: /hibernate.cfg.xml not found
at org.hibernate.util.ConfigHelper.getResourceAsStream(ConfigHelper.java:147)
at org.hibernate.cfg.Configuration.getConfigurationInputStream(Configuration.java:1287)
at org.hibernate.cfg.Configuration.configure(Configuration.java:1309)
at org.hibernate.cfg.Configuration.configure(Configuration.java:1296)
在网上查了一下,对于Jboss 4.X也存在这个问题,解决方案如下:
由于JBoss已经集成了hibernate,所以在deploy下面的lib中已经存在了hibernate2.jar文件,所以实际的war中可能使用了shar的hibernate2.jar,由于ClassLoader只会在hibernate2.jar的同级及上级目录中寻找hibernat.cfg.xml,所以导致了hibernate并没有去查找%war_dir%WEB-INF/classes中的hibernate.cfg.xml文件,删除deploy/lib下的hibernate2.jar或者使用绝对路径指定hibernate.cfg.xml可以解决这个问题 但问题是jboss 5.0.1中的hibernate相关的jar已经放到common/lib下,不能随便删除,删除之后server启动报错。不知道这个问题如何解决?
---com
---lib
---META-lib
hibernate.cfg.xml
log4j.properties
其中lib目录中有hibernate3.jar以及其他一些必须的jar文件。在调用该service是jboss报错
Caused by: org.hibernate.HibernateException: /hibernate.cfg.xml not found
at org.hibernate.util.ConfigHelper.getResourceAsStream(ConfigHelper.java:147)
at org.hibernate.cfg.Configuration.getConfigurationInputStream(Configuration.java:1287)
at org.hibernate.cfg.Configuration.configure(Configuration.java:1309)
at org.hibernate.cfg.Configuration.configure(Configuration.java:1296)
在网上查了一下,对于Jboss 4.X也存在这个问题,解决方案如下:
由于JBoss已经集成了hibernate,所以在deploy下面的lib中已经存在了hibernate2.jar文件,所以实际的war中可能使用了shar的hibernate2.jar,由于ClassLoader只会在hibernate2.jar的同级及上级目录中寻找hibernat.cfg.xml,所以导致了hibernate并没有去查找%war_dir%WEB-INF/classes中的hibernate.cfg.xml文件,删除deploy/lib下的hibernate2.jar或者使用绝对路径指定hibernate.cfg.xml可以解决这个问题 但问题是jboss 5.0.1中的hibernate相关的jar已经放到common/lib下,不能随便删除,删除之后server启动报错。不知道这个问题如何解决?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货