java - 需要在 MVC portlet 中包含 org.json 包以在 Liferay 7 中解析 JSON
问题描述
我有一个使用 gradle 创建的 MVC portlet,我想在其中解析 JSON,所以我包含了以下包,如下所示,
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import org.json.simple.JSONValue;
我还在 build.gradle 文件中包含了 org.json,如下所示:
dependencies {
compileOnly group: "com.liferay.portal", name: "com.liferay.portal.kernel", version: "3.0.0"
compileOnly group: "com.liferay.portal", name: "com.liferay.util.taglib", version: "2.0.0"
compileOnly group: "javax.portlet", name: "portlet-api", version: "3.0.0"
compileOnly group: "javax.servlet", name: "javax.servlet-api", version: "3.0.1"
compileOnly group: "jstl", name: "jstl", version: "1.2"
compileOnly group: "org.osgi", name: "osgi.cmpn", version: "6.0.0"
//compile group: 'com.squareup.okhttp', name: 'okhttp', version: '2.6.0'
compile group: 'org.json', name: 'json', version: '20180813'
compile group: 'org.apache.clerezza.ext', name: 'org.json.simple', version: '0.4'
compile group: 'org.apache.httpcomponents', name: 'httpclient', version: '4.5'
}
编译成功,但在 Liferay(7) 中部署时,我收到以下错误:
在 Liferay 中部署时出现此错误:
org.osgi.framework.BundleException: Could not resolve module: mvc [952]_ Unreso
lved requirement: Import-Package: org.json; version="[20180813.0.0,20180814.0.0)
我也应该在 liferay 中包含包 org.json 吗?如果是,我应该在哪里添加它?
我无法添加任何新包请任何人帮助我。
解决方案
当您声明构建时依赖于 Liferay 中不可用的库时(无论是库本身还是特定版本),编译器会很高兴,并且 bnd 将生成(如果需要)运行时依赖于你的模块的 Manifest.mf。
如果这些依赖确实导致了运行时依赖,那么您还必须使这些库也可用于 OSGi 运行时(在本例中为 Liferay)。您可以像部署自己的模块一样执行此操作:只需将它们放入 Liferay 的deploy
文件夹中。
推荐阅读
- javascript - 按下 Escape 按钮后如何在 React 中运行函数?
- javascript - 如何在Javascript中同步延迟代码执行?
- sql - SQL Developer 中的加载时间
- angular - 无法解析功能模块中的 HttpInterceptors
- javascript - 当元素从一开始不在网站中时,反应更改类的 css
- c - 为什么更改变量时int关键字对变量值有影响
- javascript - 仅使用 JavaScript 单击按钮时如何聚焦输入
- javascript - 切片或隐藏复选框选择选项
- python - 去除多特征回归问题中的异常值
- python - 将项目部署到谷歌云时出现 KeyError