Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Service Builder Liferay 7.2上未满足的参考配置_Liferay_Liferay 7_Declarative Services - Fatal编程技术网

Service Builder Liferay 7.2上未满足的参考配置

Service Builder Liferay 7.2上未满足的参考配置,liferay,liferay-7,declarative-services,Liferay,Liferay 7,Declarative Services,我们正在尝试将代码从Liferay 6.2迁移到Liferay 7.2,但在service builder方面遇到了困难。我们遵循了(将依赖项注入器更改为ds,将@Component添加到impl类…)但是当我们在gogo shell中运行ds:unsatisfied命令时,会出现以下情况: Declarative Service {id: 5522, name: foo.**PersistenceImpl, unsatisfied references: {n

我们正在尝试将代码从Liferay 6.2迁移到Liferay 7.2,但在service builder方面遇到了困难。我们遵循了(将依赖项注入器更改为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))}
        }

知道发生了什么吗?

晚了几个月,但这里是解决我们问题的方法

基本上,我们必须创建两个新类,一个实现org.osgi.framework.BundleActivator,另一个实现com.liferay.portal.upgrade.registry.UpgradeStepRegistrator

执行此操作时,我们强制表更新服务的版本并将其发布到osgi。

如果您使用service Builder并更改了默认包名(流程建议),但未手动更新其他引用,则“未满足引用”也可能失败

更详细地说:我也遇到了同样的问题,但在使用Gogo Shell工具(控制面板->Gogo Shell,然后编写
ds:unsatisfied
)检查后,它发现有一些缺少的包应该由*-api组件导出(提示:当您遵循service Builder步骤时,会生成一个*-api和一个*-service组件)

修复 因此,我从*-api组件进入了
bnd.bnd
文件,检查了
Export-Package
条目。我注意到,尽管我已经将包完全更改为其他内容,但Service Builder流程并不在意,并使用了相同的旧默认包(提示:它通过在服务名称后面附加.exception、.model、.service和.service.persistence来命名它们)。下面是我从
bnd.bnd
文件导出包属性的示例:

Export-Package:\
    <my_service_name>.exception,\
    <my_service_name>.model,\
    <my_service_name>.service,\
    <my_service_name>.service.persistence
导出包:\
.例外情况\
.模型\
.服务\
.service.persistence
更改我的包的实际名称解决了这个问题


进一步阅读:

请详细说明信息..实际上缺少哪个实例..在部署之前您是否运行过service builder..它在您的代码中..所以我看不到;-)您是如何忽略这一点的?我在这里也有同样的行为:(@Victor在下面发布了答案,我可以稍后进一步说明,但这应该会让您开始。