gpt4 book ai didi

java - Spring 抛出 NoClassDefFoundError : MethodInterceptor although class exists within classpath

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:15:03 25 4
gpt4 key购买 nike

我正在使用 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 可以。我相信它可能与类加载器有某种关系,但恐怕我不知道如何修复它。

编辑:

一些细节:

编辑:

我还按照@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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com