我正在使用JDeveloper IDE以 Java 语言为OAM(Oracle Access Manager)开发自定义身份验证插件。我正在解析 a并从文件中正确地URL获取我想要的变量,而不会触发任何类型的JSONObject Main.class Exception这使我假设整个解析代码是 正确的,这意味着该readJsonFromUrl 函数可以正常工作。让我提一下我的PhillPlugin.class内容public ExecutionStatus process(AuthenticationContext context),当插件运行时触发。public void getDataGenerate(String Url), 调用内部流程函数来创建JSONObjectfromURLpublic static JSONObject readJsonFromUrl(String url)在getDataGenerate函数中调用private static String readAll(Reader rd)用于解析内部readJsonFromUrl现在我将插件上传到服务器,我运行它并在它的日志中获得以下内容java.lang.NoClassDefFoundError: org/json/JSONObject
at phillplugin.PhillPlugin.readJsonFromUrl(PhillPlugin.java:184)
at phillplugin.PhillPlugin.getDataGenerate(PhillPlugin.java:132)
at phillplugin.PhillPlugin.process(PhillPlugin.java:63)创建插件需要什么:PhillPlugin.classPhillPlugin.xmlMANIFEST.MF我提到上面的内容是因为我必须在这些文件的某处包含路径org.json。(它已经作为导入存在 PhillPlugin.class并且Main.class)org.json.jar包含在项目的库中以及所有 .jars以构建插件清单文件Manifest-Version: 1.0Bundle-Version: 10Bundle-Name: PhillPluginBundle-Activator: phillplugin.PhillPluginBundle-ManifestVersion: 2Import-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.authBundle-SymbolicName: PhillPluginCLASSPATH: felix.jar, identitystore.jar, oam-plugin.jar, utilities.jar, org.json.jarPhillPlugin.Class 示例出于安全目的,我不应该包含该 URL。(相信我这是有效的)我太担心这个MANIFEST.MF文件了,因为我可能在那里做错了什么抱歉发了这么长的帖子,如果需要我会提供任何额外的信息,谢谢
2 回答
阿波罗的战车
TA贡献1862条经验 获得超6个赞
在编写Authenticaiton Plugin
for Server 时,所有额外的库以及外部文件OAM
都应该被提及。MANIFEST.MF
.jar
此外,所有.jar
文件都应部署在最终插件.jar
以及外部插件中。libraries
就我而言,我必须org.json.jar
在导出时PhillPlugin.jar
包括如下内容:
PhillPlugin.jar
如您所见org.json.jar
,它的库org
是必需的
清单.MF
最后一步是在您的插件中使用的MANIFEST.MF
所有额外内容中提及classes
就我而言,我必须将其包含在我的Import-Package
属性中才能创建JSONObject
实例
org.json;resolution:=optional, org.json.JSONObject;resolution:=optional
如果您想使用 a ,JSONArray
则必须添加以下内容:
org.json.JSONArray;resolution:=optional
等等。
编辑:应按如下方式提及类路径:
Bundle-ClassPath: org.json.jar, felix.jar, identity-provider.jar, oam-plugin.jar, utilities.jar
添加回答
举报
0/150
提交
取消