java - 使用 EJB 客户端 jar 时出现 java.lang.NoClassDefFoundError
问题描述
我有几个通过 EJB 与“核心”项目交互的项目。这些项目中的大多数使用相同的core.ejb.client.jar
. 然而,一个项目使用它自己的core.external.ejb.client.jar
,这是通过复制该项目所需的唯一 EJB 的文件来制作的。我有一个带有一种方法的 EJB/接口:public Application findApp()
在该方法中,它创建了一个服务实例,并在服务中导入了“代码”类。
core.external.ejb.client.jar
包含 weblogic 创建的相关 EJB/接口文件和 Application 类。另一个core.ejb.client.jar
包含许多其他类,包括Code.class
.
当我的项目调用时findApp()
,我收到以下错误,但是没有对myportal
Code 类的引用。
OgnlRuntime.callMethod(OgnlRuntime.java:1620) ~[ognl-3.1.15.jar:?] 在 ognl.ASTMethod.getValueBody(ASTMethod.java:91) ~[ognl-3.1.15.jar:?] 在 ognl。 SimpleNode.evaluateGetValueBody(SimpleNode.java:212) ~[ognl-3.1.15.jar:?] at ognl.SimpleNode.getValue(SimpleNode.java:258) ~[ognl-3.1.15.jar:?] at ognl。 Ognl.getValue(Ognl.java:470) ~[ognl-3.1.15.jar:?] at ognl.Ognl.getValue(Ognl.java:434) ~[ognl-3.1.15.jar:?] at com. opensymphony.xwork2.ognl.OgnlUtil$3.execute(OgnlUtil.java:401) ~[struts2-core-2.5.17.jar:2.5.17] ... 引起:java.lang.NoClassDefFoundError: core/common/business /代码; 在 java.lang.Class.getDeclaredFields0(Native Method) ~[?:1.8.0_152] 在 java.lang.Class.privateGetDeclaredFields(Class.java:2583) ~[?:1.8.
解决方案
好吧,我愚蠢地只搜索 Code 类的导入语句。但是 Application 类和 Code 类在同一个文件夹中,因此不需要 import 语句。Application 类是指代码类,这就是我收到错误的原因。
推荐阅读
- javascript - 如何在对象数组上使用 localStorage
- c++ - 在给定数组中生成所有元素对的有效方法
- java - 我们能否在到达服务器之前识别http(post)请求是否被修改?
- java - 如何在sqlite中保存Servervalue.TIMESTAMP?
- azure-devops - VSTS 错误:未找到与模式匹配的测试程序集
- ruby-on-rails - 标记要在模块中使用的特定 Rails 模型的最佳方法
- java - getValue(String.class) 与 getValue().toString()
- batch-file - 如何使用批处理文件关闭指定打开的文件夹
- r - 循环以加载或安装包不起作用。我究竟做错了什么?
- css - 在Firefox中删除范围输入中的虚线