Liferay 7.4中通用实体类应该放在service还是api模块下吗?

问题描述 投票:0回答:1

我有一个通用实体类

ProductFilter
,它包含 JSONWS POST 端点的输入参数。构建服务后,我应该把这个类放在哪里,在模块
api
下还是模块
service
下?

首先我把它放在

service
下,然后
api
中的一个界面抱怨找不到
ProductFilter

C:\Users\Zirui\projects\nongzi\code\nongzi-gradle2\modules\db\db-api\src\main\java\com\toptoken\core\service\ProductService.java:26: error: package com.toptoken.core.domain.page does not exist
import com.toptoken.core.domain.page.ProductFilter;
                                    ^

然后我把它放在

api
下,但是
service
的部署抛出了一个异常,
service
无法找到
ProductFilter
,尽管
service
取决于
api

2023-08-22 08:13:26.489 错误 [fileinstall-directory-watcher][DirectoryWatcher:1173] 无法启动捆绑包:文件:/C:/Users/Zirui/projects/web3/test/gradle-wsdd/bundles /osgi/modules/com.toptoken.core.service-1.0.0.jar com.liferay.portal.kernel.log.LogSanitizerException:org.osgi.framework.BundleException:无法解析模块:com.toptoken.core.service [1627]_ 未解决的要求:导入包:com.toptoken.core.domain .page_ [已清理]

最后我将

ProductFilter
放在
api
service
下,但是部署时出现错误:

java.lang.LinkageError:加载器约束冲突:加载器 org.eclipse.osgi.internal.loader.EquinoxClassLoader @5c03e79e (org.eclipse.osgi.internal.loader.EquinoxClassLoader 的实例,com.liferay.shielded.container 的子级。 internal.ShieldedContainerClassLoader @3fc9dfc5 com.liferay.shielded.container.internal.ShieldedContainerClassLoader) 想要加载类 com.toptoken.core.domain.page.ProductFilter。 org.eclipse.osgi.internal.loader.EquinoxClassLoader @38c9a210 先前已加载具有相同名称的不同类(org.eclipse.osgi.internal.loader.EquinoxClassLoader 的实例,com.liferay.shielded.container 的子级) .internal.ShieldedContainerClassLoader @3fc9dfc5 com.liferay.shielded.container.internal.ShieldedContainerClassLoader).

我应该把

api
放在哪个模块下,
service
还是
ProductFilter

web-services liferay-7 liferay-service-builder
1个回答
0
投票
© www.soinside.com 2019 - 2024. All rights reserved.