- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在使用 Spring MVC 和 Hibernate 开发一个简单的训练应用程序。我使用 Maven 作为构建工具。所有依赖项(spring、hibernate、aopalliance、junit 等)都使用 Maven 的 pom.xml 文件解析。
$ mvn war:war glassfish:deploy
工作绝对正常,项目正在部署到 GlassFish 服务器 - 所有 *.jar
文件都被复制(包括 com.springsource.org.aopalliance-1.0.0.jar
).
我制作了一个简单的 servlet 来测试类路径中是否存在 aopalliance:
protected void doGet(...) throws ... {
response.getWriter().println(org.aopalliance.intercept.MethodInterceptor.class.getCanonicalName());
}
它存在。上面的代码按预期显示 org.aopalliance.intercept.MethodInterceptor
。
但是,如果我将 servlet 更改为类似的东西:
protected void doGet(...) throws ... {
response.getWriter().println(org.springframework.transaction.interceptor.TransactionInterceptor.class.getCanonicalName());
}
它抛出一个异常:
java.lang.NoClassDefFoundError: org/aopalliance/intercept/MethodInterceptor
TransactionInterceptor
使用 aopalliance 接口(interface),但我不明白为什么它找不到它们,而我的 servlet 可以。我相信它可能与类加载器有某种关系,但恐怕我不知道如何修复它。
一些细节:
pom.xml
文件:http://pastebin.com/430iPgRs HelloServlet
类:http://pastebin.com/YVfzz4i8 我还按照@Ravi 的建议为 spring.osgi.core/io
添加了依赖项:
<dependency>
<groupId>org.springframework.osgi</groupId>
<artifactId>org.springframework.osgi.core</artifactId>
<version>1.2.1</version>
</dependency>
<dependency>
<groupId>org.springframework.osgi</groupId>
<artifactId>org.springframework.osgi.io</artifactId>
<version>1.2.1</version>
</dependency>
但这并没有解决问题。
但是,我尝试在随 SpringSource 工具套件提供的 VMware vFabric tc Server 上运行完全相同的应用程序,并且一切正常。这似乎是 GlassFish 特有的问题。
我使用的是 GlassFish Server 开源版 3.1.1。
另一件奇怪的事情:如果我重新部署应用程序(在 Eclipse 中使用“发布”),servlet 会抛出:
java.lang.NoClassDefFoundError: org/aopalliance/intercept/MethodInterceptor
但刷新后(在浏览器中)我得到:
java.lang.NoClassDefFoundError: org/springframework/transaction/interceptor/TransactionInterceptor
进一步刷新不会改变任何东西。
最佳答案
我遇到了同样的问题,在寻找答案将近一周后,我发现您需要 aopalliance.jar。这解决了我的问题。
关于java - Spring 抛出 NoClassDefFoundError : MethodInterceptor although class exists within classpath,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9154800/
要求: 仅命令行,即没有 IDE 不想使用classpath参数 操作系统:OS X v10.6.8 步骤: 设置 CLASSPATH 环境变量:export CLASSPATH="/path-jar
将 JAR 添加到 IDE 中项目的 CLASSPATH 与将其添加到系统范围的 CLASSPATH 之间有什么区别? 最佳答案 后者对您正在运行的所有 java 应用程序都有效,而前者仅对项目有效。
我想做一个 setenv CLASSPATH /somethig/foo/junit-4.9.jar 类似的东西。进行一些搜索后(未检测到命令 setenv)。我发现我必须改用 export CLAS
在我的 RAD 中,当我启动它并转到我的工作区时,我经常看到一些项目有一个红色的错误十字标志。通常消息是某些库丢失等。但是通过转到每个项目的构建路径,我可以看到这些库存在于构建路径中。 我一直在通过删
在我的 RAD 中,当我启动它并转到我的工作区时,我经常看到一些项目有一个红色的错误十字标志。通常消息是某些库丢失等。但是通过转到每个项目的构建路径,我可以看到这些库存在于构建路径中。 我一直在通过删
这个问题在这里已经有了答案: Java will -classpath option add or replace CLASSPATH environment variable (4 个答案) 关闭
将 -classpath 选项与 java 一起使用是否会添加或替换 CLASSPATH 环境变量的内容? 最佳答案 使用类路径变量,它会覆盖环境变量的 CLASSPATH,但仅限于该 session
我有一个相对较大的 Java 应用程序,它将受益于对 Python 的一些热爱。为此,我一直致力于在 Jython 中启动和运行它。我目前的障碍是使类路径正确。 我采取了两种方法来设置类路径: 使用
这里我查看环境变量CLASSPATH daniel@daniel-laptop:~/ps/clojure/projects/ring-tutorial$ echo $CLASSPATH /home/d
我在该位置有文件 --src --> main --> config --> application --> context --> reference
MyClassWithMainMethod.java 使用 someJar.jar 的类。 如果我打电话: java -cp someJar.jar MyClassWithMainMethod 我得到
我正在处理一些 Spring XML 配置文件,有时它们使用 "classpath:/datasource.xml",有时使用 "classpath:datasource.xml"。两者有区别还是前导
Maven 识别 4 个类路径: maven.compile.classpath:编译源代码时需要在类路径中的类和 jar。所以基本上对于 maven-compiler-plugin maven.te
我想做一些类似于jython -cp FOO:BAR:BAZ argle.py的事情。 如果我将 FOO、BAR 和 BAZ 添加到 $CLASSPATH 中,则可以正常工作。我尝试在运行时将它们添加
我想确保 JAR 在部署到服务器之前不会抛出 NoClassDefinitionFound 异常。更高级的要求是能够指定额外的类路径。 如何做到这一点? 最佳答案 一般来说这是不可能的,因为您的 JA
我对 Java 还很陌生,只完成了编程入门类(class)的大部分内容,目前正在尝试通过实践来学习。在我设置了 libgdx 项目并导入它之后,我收到这两个警告,都说: “以下类路径条目在服务器的类路
同时尝试 mavenize Eclipse plugin for LESS遇到问题 #210 在 #208 中添加了提交 https://github.com/PaulVI/ow/commit/7c9
案例1: java -cp LRS3rdPartyClient.jar -jar tasks.jar 案例2: java -classpath LRS3rdPartyClient.jar;tasks
我正在尝试在Windows 7计算机上安装gradle 1.3并执行以下步骤 1.从http://www.gradle.org/网址下载了gradle-1.3.all.zip 2.将其提取到 F:\
我有一个名为App.jar的jar,其结构如下 App.jar | | |---xyzfolder | | | |--config
我是一名优秀的程序员,十分优秀!