1

我在别处找不到这个问题的答案。

我正在尝试设置一个虚拟机来学习 spring、wicket 和 hibernate。我从这个maven-archetype 开始并像这样使用它:

mvn archetype:generate -DarchetypeGroupId=nl.iprofs -DarchetypeArtifactId=wicket-spring-hibernate-quickstart -DarchetypeVersion=1.3 -DarchetypeRepository=http://www.iprofs.nl/repository/ -DinteractiveMode=false -DgroupId=me.sandbox -DartifactId=swh
cd swh
mvn install 
mvn eclipse:eclipse
mvn jetty:run

Jetty 启动演示项目,它应该可以访问。

然后我将项目导入最新的 STS (SpringSourceToolsuite)。但是当我部署应用程序时,我得到了这个错误:

SEVERE: Error configuring application listener of class org.springframework.web.util.Log4jConfigListener
java.lang.ClassNotFoundException: org.springframework.web.util.Log4jConfigListener

我只是不明白。我是 spring 新手,没有经常使用 maven,但我的印象是 maven 会自动解决依赖关系(例如上面的):/

在我的 .classpath 文件中,我发现(除了许多其他)这些条目:

<classpathentry kind="var" path="M2_REPO/org/slf4j/slf4j-api/1.5.8/slf4j-api-1.5.8.jar" sourcepath="M2_REPO/org/slf4j/slf4j-api/1.5.8/slf4j-api-1.5.8-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/org/slf4j/slf4j-log4j12/1.4.2/slf4j-log4j12-1.4.2.jar" sourcepath="M2_REPO/org/slf4j/slf4j-log4j12/1.4.2/slf4j-log4j12-1.4.2-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/log4j/log4j/1.2.14/log4j-1.2.14.jar" sourcepath="M2_REPO/log4j/log4j/1.2.14/log4j-1.2.14-sources.jar"/>

似乎 M2_REPO 未定义。我尝试将文件夹 .m2/repository 从我的用户文件夹符号链接到项目文件夹,甚至添加了指向同一位置的环境变量 M2_REPO。所有引用的文件都在文件夹结构中。但是我仍然遇到同样的错误,并且仍然有来自 maven-jars 的 Classpath Dependency Validator 的警告。

如果这有任何帮助:

我在 oracle-vm 内的 64 位 XUbuntu 上运行它。我从存储库安装了 maven2 和 openjdk-7-jdk,从官方站点安装了 Springsource Toolssuite .sh-installer 64Bit 2.9.2。

我很困惑,因为我从没想过设置一个简单的演示原型会那么难。我想我犯了一个简单/天真的初学者错误。但我不知道。请帮我。

如果您需要更多信息,请告诉我。

4

2 回答 2

0

如果 M2_REPO 未定义,您通常应该在 eclipse/STS 中收到警告。为确保该变量可用,您可以转到Preferences > Java > Build path > Classpath variables. 如果您没有在此处定义变量 M2_REPO,则可以将其添加到<path>/.m2/repository

关于您使用的 maven-archetype,我不能说太多。但也许你应该看看Spring roo,它可以帮助你创建一个新的 Spring 项目(创建配置文件,向 pom.xml 添加依赖项等)。使用 hibernate 和 roo 创建一个新的 Spring 项目基本上是编写 2 个命令:

project --topLevelPackage com.company.project
jpa setup --provider HIBERNATE --database MYSQL
于 2012-08-04T11:10:46.170 回答
0

如果你有 eclipse 的 M2 插件设置,你可以在那里设置 M2_HOME。如果您没有为 eclipse 安装 m2 插件,那么只需将您的 M2 存储库添加到类路径

于 2012-08-04T11:13:55.177 回答