我正在使用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
提交
取消