我正在将JBoss AS5应用程序迁移到AS7。由于AS7重新设计的模块化类加载设计,我遇到了NoClassDefFoundErrors。我正在关注如何解决类加载异常https://docs.jboss.org/author/display/AS7/Developer+Guide#DeveloperGuide-Resolveclassloadingexceptionsandothererrors的JBoss开发人员指南,它让你在应用程序的MANIFEST.MF文件中添加模块作为依赖项,但是我遇到了很多麻烦。我没有尝试使用MANIFEST.MF解决我的类加载错误或手动将jar复制到我的应用程序的WEB-INF / lib /目录中。
在Eclipse中,我尝试右键单击我的项目并手动将我的类加载错误指定的类添加到项目的JAVA BUILD PATH中。我能够使用此方法消除所有类加载错误。我的问题是 - Eclipse如何存储构建路径信息并使其可用于我的maven构建?是使用JAVA BUILD PATH信息在文件系统的某处创建MANIFEST.MF或jboss-deployment-structure.xml吗?我想找到Eclipse用来存储JAVA BUILD PATH的任何文件,这样我就可以部署我的应用程序,而无需通过Eclipse手动将依赖项添加到我的JAVA BUILD PATH中。感谢。
答案 0 :(得分:0)
在开发环境中与MANIFEST.MF混淆听起来很糟糕。对于自动依赖管理,使用Maven(它不是理想的工具,但它是标准的,有很好的Eclipse插件,所以,毕竟使用它并不是一件痛苦的事情。)
Eclipse构建路径由Eclipse存储在项目目录中的.classpath文件中(请注意在开始时的点)。该文件看起来或多或少是这样的:
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="lib" path="lib/dom4j-1.6.1.jar"/>
<classpathentry kind="lib" path="lib/oscache-2.1.jar"/>
<classpathentry kind="lib" path="lib/proxool-0.8.3.jar"/>
<classpathentry kind="lib" path="db/derby.jar"/>
<classpathentry kind="lib" path="db/derbyclient.jar"/>
<classpathentry kind="lib" path="lib/commons-logging-1.1.1.jar"/>
<classpathentry kind="lib" path="lib/log4j-1.2.16.jar"/>
<classpathentry kind="lib" path="lib/slf4j-api-1.6.1.jar"/>
<classpathentry kind="lib" path="lib/slf4j-log4j12-1.6.1.jar"/>
<classpathentry kind="output" path="bin"/>
</classpath>
因此,如果您有一个依赖项列表,可以使用简单的脚本生成它。
请记住,Eclipse喜欢缓存内容。因此,当您更改.classpath文件时,请手动刷新项目(F5),否则您将看不到任何更改。