亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

新的 JSONObject 觸發 java.lang.NoClassDefFoundError

新的 JSONObject 觸發 java.lang.NoClassDefFoundError

慕桂英546537 2023-03-31 14:38:08
我正在使用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 Pluginfor Server 時,所有額外的庫以及外部文件OAM都應該被提及。MANIFEST.MF.jar

此外,所有.jar文件都應部署在最終插件.jar以及外部插件中。libraries

就我而言,我必須org.json.jar在導出時PhillPlugin.jar包括如下內容:

  • PhillPlugin.jar

http://img1.sycdn.imooc.com//64267ffb00017df404520145.jpg

如您所見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



查看完整回答
反對 回復 2023-03-31
?
守著星空守著你

TA貢獻1799條經驗 獲得超8個贊

CLASSPATH中的條目顯然MANIFEST.MF是錯誤的。

查看完整回答
反對 回復 2023-03-31
  • 2 回答
  • 0 關注
  • 380 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號