我一直在尝试设置最简单的简单hibernate应用程序,并且除了我平庸的思维方式之外,我无法让它运行.Maven很简单 - 在构建路径中添加依赖项,更新项目,blah blah blah yadda yadda yadda
它起初是一个ClassNotFoundException需要缺少依赖的单一.我会导入丢失的jar并再次运行应用程序,只是为了得到另一个 ClassNotFoundException.接下来我知道我有一大堆JARS而且没有工作应用

*目录被掩盖以保护不幸的人
我在Eclipse Kepler的最后一个项目中使用了Maven和Hibernate,这几乎太容易了,哈!更新到Luna是一个真正的痛苦,试图让Maven正确运行 - 禁用Java Compilier Compliance Level只是为了能够更新Dynamic Web Module,更不用说手动创建缺少的src/main/java和src/test/java标准的a文件夹,maven-archetype-webapp列表继续.我花了太多时间才让事情不失败.
在我的上一个项目中,我需要导入的是:
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>4.3.6.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-c3p0</artifactId>
<version>4.3.6.Final</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>4.1.0.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>4.1.0.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>4.1.0.RELEASE</version>
</dependency>
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.9.13</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
那就是它!我在Session Factories和更新数据库表中游泳,就像我的工作一样(它是).
这让我相信这个新项目缺少一些核心功能.也许我忽略了IDE升级中的一些东西.几乎可以保证我的构建路径.请帮忙!
关于我的项目 - 我正在使用:Eclipse Luna(Kepler使用Maven更容易设置100倍)Maven Webapp Archetype JDK-1.7 Hibernate Core 4-3.6
我的最新例外是
Exception in thread "main" java.lang.NoClassDefFoundError: javax/persistence/NamedStoredProcedureQuery
at org.hibernate.cfg.AnnotationBinder.bindDefaults(AnnotationBinder.java:276)
at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1402)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1844)
at com.boa.ecris.test.Main.main(Main.java:22)
Caused by: java.lang.ClassNotFoundException: javax.persistence.NamedStoredProcedureQuery
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
... 4 more
Run Code Online (Sandbox Code Playgroud)
如果这是特定于javax persistence-api.jar,它已经在那里!
当您遇到ClassNotFoundException时,首先您必须查看您的存储库站点。您可以从 .m2 文件夹中的设置文件获取 Maven 存储库 url。然后,您可以使用您的工件 id和版本在该站点搜索您的依赖项。如果您的版本不存在,您可以查看其他版本并将其替换为您的版本。因此,您无需手动添加即可为项目提供稳定性。
| 归档时间: |
|
| 查看次数: |
1174 次 |
| 最近记录: |