我正在使用JDeveloper IDE以 Java 語言為OAM(Oracle Access Manager)開發(fā)自定義身份驗(yàn)證插件。我正在解析 a并從文件中正確地URL獲取我想要的變量,而不會(huì)觸發(fā)任何類型的JSONObject Main.class Exception這使我假設(shè)整個(gè)解析代碼是 正確的,這意味著該readJsonFromUrl 函數(shù)可以正常工作。讓我提一下我的PhillPlugin.class內(nèi)容public ExecutionStatus process(AuthenticationContext context),當(dāng)插件運(yùn)行時(shí)觸發(fā)。public void getDataGenerate(String Url), 調(diào)用內(nèi)部流程函數(shù)來創(chuàng)建JSONObjectfromURLpublic static JSONObject readJsonFromUrl(String url)在getDataGenerate函數(shù)中調(diào)用private static String readAll(Reader rd)用于解析內(nèi)部readJsonFromUrl現(xiàn)在我將插件上傳到服務(wù)器,我運(yùn)行它并在它的日志中獲得以下內(nèi)容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)創(chuàng)建插件需要什么:PhillPlugin.classPhillPlugin.xmlMANIFEST.MF我提到上面的內(nèi)容是因?yàn)槲冶仨氃谶@些文件的某處包含路徑org.json。(它已經(jīng)作為導(dǎo)入存在 PhillPlugin.class并且Main.class)org.json.jar包含在項(xiàng)目的庫中以及所有 .jars以構(gòu)建插件清單文件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 示例出于安全目的,我不應(yīng)該包含該 URL。(相信我這是有效的)我太擔(dān)心這個(gè)MANIFEST.MF文件了,因?yàn)槲铱赡茉谀抢镒鲥e(cuò)了什么抱歉發(fā)了這么長的帖子,如果需要我會(huì)提供任何額外的信息,謝謝
2 回答
阿波羅的戰(zhàn)車
TA貢獻(xiàn)1862條經(jīng)驗(yàn) 獲得超6個(gè)贊
在編寫Authenticaiton Pluginfor Server 時(shí),所有額外的庫以及外部文件OAM都應(yīng)該被提及。MANIFEST.MF.jar
此外,所有.jar文件都應(yīng)部署在最終插件.jar以及外部插件中。libraries
就我而言,我必須org.json.jar在導(dǎo)出時(shí)PhillPlugin.jar包括如下內(nèi)容:
PhillPlugin.jar

如您所見org.json.jar,它的庫org是必需的
清單.MF
最后一步是在您的插件中使用的MANIFEST.MF所有額外內(nèi)容中提及classes
就我而言,我必須將其包含在我的Import-Package屬性中才能創(chuàng)建JSONObject實(shí)例
org.json;resolution:=optional, org.json.JSONObject;resolution:=optional
如果您想使用 a ,JSONArray則必須添加以下內(nèi)容:
org.json.JSONArray;resolution:=optional
等等。
編輯:應(yīng)按如下方式提及類路徑:
Bundle-ClassPath: org.json.jar, felix.jar, identity-provider.jar, oam-plugin.jar, utilities.jar
添加回答
舉報(bào)
0/150
提交
取消
