java.lang.NoClassDefFoundError:org/json/JSONObject当java类在OAM服务器上运行时
当我在Oracle Access Manager上运行我的java.lang.NoClassDefFoundError:org/json/JSONObject当java类在OAM服务器上运行时,java,json,oracle,manifest,Java,Json,Oracle,Manifest,当我在Oracle Access Manager上运行我的.class时,我得到了java.lang.NoClassDefFoundError:org/json/JSONObject 这是stacktrace: java.lang.NoClassDefFoundError: org/json/JSONObject at phillplugin.PhillPlugin.process(PhillPlugin.java:118) PhillPlugin.java:118只包含一个JSONObjec
.class
时,我得到了java.lang.NoClassDefFoundError:org/json/JSONObject
这是stacktrace:
java.lang.NoClassDefFoundError: org/json/JSONObject
at phillplugin.PhillPlugin.process(PhillPlugin.java:118)
PhillPlugin.java:118
只包含一个JSONObject
//第118行:
JSONObject x=新的JSONObject();
我使用的是JDeveloper IDE,我已经将org.json.jar
包含在我的库和部署文件中
请注意,当我从一个简单的main.class
执行它时,它运行得非常好
我必须将org.json.jar
包含在部署PhillPlugin.jar
的MANIFEST.MF文件中,我的操作如下:
Manifest-Version: 1.0
Bundle-Version: 10
Bundle-Name: PhillPlugin
Bundle-Activator: phillplugin.PhillPlugin
Bundle-ManifestVersion: 2
Import-Package:
org.osgi.framework;version="1.3.0",
oracle.security.am.plugin,
oracle.security.am.plugin.authn,
oracle.security.am.plugin.impl,
oracle.security.am.plugin.api,
oracle.security.am.common.utilities.principal,
oracle.security.idm,
javax.security.auth,
org.json.JSONObject;resolution:=optional,
org.json.JSONArray;resolution:=optional,
org.json;resolution:=optional
Export-Package:
org.json.JSONObject;resolution:=optional,
org.json.JSONArray;resolution:=optional,
org.json;resolution:=optional
Bundle-SymbolicName: PhillPlugin
Bundle-ClassPath: org.json.jar,utilities.jar,oam-plugin.jar,felix.jar,identity-provider.jar
但服务器仍然无法识别我的导入内容
我要提到的是,PhillPlugin.jar
包含:
MANIFEST.MF
-第118行仅给出服务器上的错误PhillPlugin.class
PhillPlugin.xml
我很乐意为您提供所需的任何其他额外信息我必须在
MANIFEST.MF
(参考)中包括外部库,正如我正确所做的那样,还包括最终PhillPlugin.jar
中的org.json.jar
以及json
库
这样服务器就可以看到我的导入
以下是对我有效的示例:
请注意,即使缺少org
文件夹或org.json.jar
也会触发异常
我看到它可能重复,OAM服务器不同,我需要通过我的
manifest.mf
文件引用它,只是将它包含在我的项目中并不能解决问题。从外观上看,你应该列出包名,但你也列出了类名。