org.mise en veille prolongée.MappingNotFoundException: ressources: *hbm.xml pas trouvé
JBoss as 7.0.1.Final, Hibernate 3. Nous avons une source de données MySQL.
J'ai de la cartographie des ressources en pointant *hbm.xml les fichiers. Je reçois des erreurs de déploiement qui me disent de ressources: *hbm.xml pas trouvé", de sorte que les entités ne sont pas correctement mappés - cette trace de la pile est en raison de la User.hbm.xml n'est pas trouvé,
14:44:34,654 INFO [org.hibernate.cfg.Configuration] (MSC service thread 1-9) HHH00042:Configuring from file: hibernate.cfg.xml
14:44:34,668 WARN [org.hibernate.internal.util.xml.DTDEntityResolver] (MSC service thread 1-9) HHH00223:Recognized obsolete hibernate namespace http://hibernate.sourceforge.net/. Use namespace http://www.hibernate.org/dtd/instead. Refer to Hibernate 3.6 Migration Guide!
14:44:34,670 INFO [org.hibernate.cfg.Configuration] (MSC service thread 1-9) HHH00221:Reading mappings from resource: User.hbm.xml
14:44:34,697 SEVERE [com.mycompany.myapp.common.persistence.HibernateUtil] (MSC service thread 1-9) Initial SessionFactory lookup failed.: org.hibernate.MappingNotFoundException: resource: User.hbm.xml not found
at org.hibernate.cfg.Configuration.addResource(Configuration.java:720) [hibernate-core-4.0.0.Beta5.jar:4.0.0.Beta5]
at org.hibernate.cfg.Configuration.parseMappingElement(Configuration.java:2083) [hibernate-core-4.0.0.Beta5.jar:4.0.0.Beta5]
at org.hibernate.cfg.Configuration.parseSessionFactory(Configuration.java:2055) [hibernate-core-4.0.0.Beta5.jar:4.0.0.Beta5]
at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:2035) [hibernate-core-4.0.0.Beta5.jar:4.0.0.Beta5]
at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1988) [hibernate-core-4.0.0.Beta5.jar:4.0.0.Beta5]
at org.hibernate.cfg.Configuration.configure(Configuration.java:1961) [hibernate-core-4.0.0.Beta5.jar:4.0.0.Beta5]
at com.mycompany.myapp.common.persistence.HibernateUtil.<clinit>(HibernateUtil.java:42) [classes:]
at com.mycompany.myapp.common.businessobjects.ServerSettings.GetServerSettings(ServerSettings.java:216) [classes:]
at com.mycompany.myapp.common.servlet.SecurityFilter.init(SecurityFilter.java:55) [classes:]
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:447) [jbossweb-7.0.1.Final.jar:7.0.1.Final]
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3245) [jbossweb-7.0.1.Final.jar:7.0.1.Final]
at org.apache.catalina.core.StandardContext.start(StandardContext.java:3836) [jbossweb-7.0.1.Final.jar:7.0.1.Final]
at org.jboss.as.web.deployment.WebDeploymentService.start(WebDeploymentService.java:70) [jboss-as-web-7.0.1.Final.jar:7.0.1.Final]
at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1765)
at org.jboss.msc.service.ServiceControllerImpl$ClearTCCLTask.run(ServiceControllerImpl.java:2291)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [:1.6.0_26]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [:1.6.0_26]
at java.lang.Thread.run(Thread.java:680) [:1.6.0_26]
14:44:34,698 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/myapp-maventest]] (MSC service thread 1-9) Exception starting filter EnterpriseSecurityFilter: java.lang.NoClassDefFoundError: Could not initialize class com.mycompany.myapp.common.persistence.HibernateUtil
at com.mycompany.myapp.common.businessobjects.ServerSettings.GetServerSettings(ServerSettings.java:224) [classes:]
at com.mycompany.myapp.common.servlet.SecurityFilter.init(SecurityFilter.java:55) [classes:]
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:447) [jbossweb-7.0.1.Final.jar:7.0.1.Final]
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3245) [jbossweb-7.0.1.Final.jar:7.0.1.Final]
at org.apache.catalina.core.StandardContext.start(StandardContext.java:3836) [jbossweb-7.0.1.Final.jar:7.0.1.Final]
at org.jboss.as.web.deployment.WebDeploymentService.start(WebDeploymentService.java:70) [jboss-as-web-7.0.1.Final.jar:7.0.1.Final]
at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1765)
at org.jboss.msc.service.ServiceControllerImpl$ClearTCCLTask.run(ServiceControllerImpl.java:2291)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [:1.6.0_26]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [:1.6.0_26]
at java.lang.Thread.run(Thread.java:680) [:1.6.0_26]
14:44:34,699 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/myapp-maventest]] (MSC service thread 1-9) Exception starting filter CompanySecurityFilter: java.lang.NoClassDefFoundError: Could not initialize class com.mycompany.myapp.common.persistence.HibernateUtil
at com.mycompany.myapp.common.businessobjects.ServerSettings.GetServerSettings(ServerSettings.java:224) [classes:]
at com.mycompany.myapp.common.servlet.SecurityFilter.init(SecurityFilter.java:55) [classes:]
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:447) [jbossweb-7.0.1.Final.jar:7.0.1.Final]
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3245) [jbossweb-7.0.1.Final.jar:7.0.1.Final]
at org.apache.catalina.core.StandardContext.start(StandardContext.java:3836) [jbossweb-7.0.1.Final.jar:7.0.1.Final]
at org.jboss.as.web.deployment.WebDeploymentService.start(WebDeploymentService.java:70) [jboss-as-web-7.0.1.Final.jar:7.0.1.Final]
at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1765)
at org.jboss.msc.service.ServiceControllerImpl$ClearTCCLTask.run(ServiceControllerImpl.java:2291)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [:1.6.0_26]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [:1.6.0_26]
at java.lang.Thread.run(Thread.java:680) [:1.6.0_26]
14:44:34,701 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/myapp-maventest]] (MSC service thread 1-9) Exception starting filter StationSecurityFilter: java.lang.NoClassDefFoundError: Could not initialize class com.mycompany.myapp.common.persistence.HibernateUtil
at com.mycompany.myapp.common.businessobjects.ServerSettings.GetServerSettings(ServerSettings.java:224) [classes:]
at com.mycompany.myapp.common.servlet.SecurityFilter.init(SecurityFilter.java:55) [classes:]
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:447) [jbossweb-7.0.1.Final.jar:7.0.1.Final]
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3245) [jbossweb-7.0.1.Final.jar:7.0.1.Final]
at org.apache.catalina.core.StandardContext.start(StandardContext.java:3836) [jbossweb-7.0.1.Final.jar:7.0.1.Final]
at org.jboss.as.web.deployment.WebDeploymentService.start(WebDeploymentService.java:70) [jboss-as-web-7.0.1.Final.jar:7.0.1.Final]
at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1765)
at org.jboss.msc.service.ServiceControllerImpl$ClearTCCLTask.run(ServiceControllerImpl.java:2291)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [:1.6.0_26]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [:1.6.0_26]
at java.lang.Thread.run(Thread.java:680) [:1.6.0_26]
14:44:34,702 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/myapp-maventest]] (MSC service thread 1-9) Exception starting filter StudioSecurityFilter: java.lang.NoClassDefFoundError: Could not initialize class com.mycompany.myapp.common.persistence.HibernateUtil
at com.mycompany.myapp.common.businessobjects.ServerSettings.GetServerSettings(ServerSettings.java:224) [classes:]
at com.mycompany.myapp.studio.StudioSecurityFilter.init(StudioSecurityFilter.java:46) [classes:]
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:447) [jbossweb-7.0.1.Final.jar:7.0.1.Final]
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3245) [jbossweb-7.0.1.Final.jar:7.0.1.Final]
at org.apache.catalina.core.StandardContext.start(StandardContext.java:3836) [jbossweb-7.0.1.Final.jar:7.0.1.Final]
at org.jboss.as.web.deployment.WebDeploymentService.start(WebDeploymentService.java:70) [jboss-as-web-7.0.1.Final.jar:7.0.1.Final]
at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1765)
at org.jboss.msc.service.ServiceControllerImpl$ClearTCCLTask.run(ServiceControllerImpl.java:2291)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [:1.6.0_26]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [:1.6.0_26]
at java.lang.Thread.run(Thread.java:680) [:1.6.0_26]
Notre projet est structuré comme
Project
|
|-pom.xml
|
|-src
| |-main
| |-java
| | |-com... businessobjects
| |-resources
| | |-META-INF
| |-webapp
|
|-test
nous avons hibernate.cfg.xml dans src/main/resources/META-INF, et divers *.de la classe et de l' *hbm.xml dans src/main/java/com/businessobjects/. Notre hibernate.cfg.xml ressemble
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="datasourceName">java:jboss/datasources/MySqlDS</property>
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<mapping resource="com/mycompany/myapp/common/businessobjects/User.hbm.xml"/>
<mapping resource="com/mycompany/myapp/common/businessobjects/Company.hbm.xml"/>
<mapping resource="com/mycompany/myapp/common/businessobjects/ServerSettings.hbm.xml"/>
<mapping resource="com/mycompany/myapp/common/businessobjects/Station.hbm.xml"/>
</session-factory>
</hibernate-configuration>
J'ai essayé différents chemins pour pointer vers l' *hbm.xml fichiers - aucune ne semble fonctionner. J'ai même essayé de lui donner le chemin absolu de l' *hbm.xml des fichiers, qui ne fonctionne pas non plus.
J'ai aussi essayé de copier les *hbm.xml dans le même répertoire que hibernate.cfg.xml - que n'ai pas de travail, même erreur.
Ressemble à des erreurs à ce point dans le code de mon HibernateUtil classe
static {
try {
InitialContext ctx = new InitialContext();
Configuration configuration = new Configuration();
Properties properties = new Properties();
sessionFactory = configuration.configure(
new File("/path/to/src/main/resources/META-INF/hibernate.cfg.xml")
).buildSessionFactory();
} catch (Throwable ex) {
//Make sure you log the exception, as it might be swallowed
log.error("Initial SessionFactory lookup failed.", ex);
throw new ExceptionInInitializerError(ex);
}
}
Aucune idées de ce qu'il se passe? Grâce
OriginalL'auteur user619804 | 2011-08-19
Vous devez vous connecter pour publier un commentaire.
Déplacer vos fichiers de mappage dans src/main/resources. Seulement .java fichiers appartiennent dans src/main/java.
Edit: j'ai mis en place un exemple de projet sur github montrant comment référencer correctement XML des fichiers de mappage à partir d'un hibernate.cfg.xml.
Mise à jour de ma réponse avec un exemple de projet. Découvrez le lien.
merci pour cette github exemple de projet, you rock!
vous êtes déjà faire ma journée!
OriginalL'auteur Ryan Stewart
Maven seul processus .fichiers java à partir de src/main/java, afin de mettre l' .hbm.xml les fichiers dans la partie de l'arbre signifie aussi qu'ils ne se retrouvent pas dans le fichier war.
Maven ramasse les fichiers de configuration du répertoire src/main/resources et comme vous l'avez mappé .hbm.xml fichiers avec un chemin d'accès, ils doivent aller dans
src/main/resources/com/mycompany/myapp/common/businessobjects
.Espère que ça aide.
OriginalL'auteur beny23