liferay - Service Builder Liferay 7.2 上的不满意参考配置
问题描述
我们正在尝试将代码从 Liferay 6.2 迁移到 Liferay 7.2,但在服务构建器方面我们遇到了困难。我们已经按照指南(将依赖注入器更改为 ds,将 @Component 添加到 impl 类...)但是当我们在 gogo shell 中运行 ds:unsatisfied 命令时,会出现以下情况:
Declarative Service {id: 5522, name: foo.**PersistenceImpl, unsatisfied references:
{name: Configuration, target: (&(origin.bundle.symbolic.name=foo.service)(name=service))}
}
任何想法发生了什么?
解决方案
在您使用 Service Builder 并且您更改了默认包名称(由流程建议)但您没有手动更新其他引用的情况下,也可能出现“不满意的引用”失败。
更详细地说:我遇到了同样的问题,但是在使用 Gogo Shell 工具(控制面板 -> Gogo Shell 然后编写ds:unsatisfied
)检查后,它发现有一些丢失的包应该由 *-api 组件导出(提示:当您遵循服务构建器步骤时,会生成一个 *-api 和一个 *-service 组件)。
修复
因此,我bnd.bnd
从 *-api 组件进入文件并检查了Export-Package
条目。我注意到的是,即使我已经将包更改为完全不同的东西,Service Builder 进程并不关心并使用相同的旧默认包(提示:它通过将 .exception 附加到服务名称来命名它们, .model、.service 和 .service.persistence)。Export-Package
以下是文件中我的属性的示例bnd.bnd
:
Export-Package:\
<my_service_name>.exception,\
<my_service_name>.model,\
<my_service_name>.service,\
<my_service_name>.service.persistence
将 <my_service_name> 更改为我的包的实际名称解决了这个问题。
进一步阅读:https ://help.liferay.com/hc/en-us/articles/360018168891-Detecting-Unresolved-OSGi-Components
推荐阅读
- c# - 为什么 C# 的 TrimEnd() 函数的行为如下?
- apache-flink - 从 Flink 中的 WebMonitorEndpoint (Rest Monitoring API) 获取自定义计量指标
- c# - 跟踪用户/组的更改
- javascript - 将 Firestore 数据添加到 DataTable
- linux - 在虚拟机中与 docker 中的 kafka 连接
- javascript - 如何在javascript中获取带有主题标签符号的当前网址?
- html - 如何设置高度
- linux - 用于停止 tomcat 的 shell 脚本
- javascript - disableOpenGesture 隐藏不起作用导航抽屉反应本机
- php - 如果实时搜索框输入与数据库不匹配,如何显示未找到数据?