问题标签 [liferay-service-builder]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
liferay - ServiceBuilder 没有创建 FinderImpl 类?
我使用 Liferay 7 创建了一些服务。但是在构建服务之后并没有创建FinderImpl和FinderUtil类。我遵循的步骤如下:
- 创建了一个服务构建器项目。
- 创建了查找器列。
- 构建并部署了 *-api 和 *-service...其中 * 是项目/服务名称。
- 使用 gradle -> Refresh Gradle Project 刷新项目。
- 将 *-service 和 *-api 拖放到正在运行的服务器上。
结果:它创建了表,但项目中没有 *FinderImpl 和 *FinderUtil 类。
jakarta-ee - Liferay 7 Service Builder 未生成 Finder Util 类
虽然我在 Liferay 6.2 中的 Service Builder 没有问题,但当我构建服务以生成我的第一个 Finder Util 类时,我在 Liferay 7 中遇到了阻塞问题。当我发现,我什至决定从头开始一个项目,问题仍然在这里。即使使用官方文档,也没有任何效果。
有人有什么想法可以帮助我吗?
这是我在 Eclipse Mars 中最后一次测试的完整描述:
- 创建一个新的 Liferay 工作区
- 创建一个新的 Liferay 项目模块服务生成器
- 在 service.xml 中创建一个 foo 对象
- 构建服务(类生成良好)
- 在 persistence.impl 包中手动创建一个 FooFinderImpl 类
- 构建服务
FooFinder 接口生成良好,但未生成 FooFinderUtil 类。 - 在 FooFinderImpl 类中添加一些方法
- 构建服务
- 没什么新鲜的
谢谢你的帮助。
文森特
jakarta-ee - CustomSQLUtil 在使用 Liferay 7 进行查询检索期间获取空值
虽然我对 Liferay 6.2 中的 CustomSQLUtil 类没有任何问题,但我在 Liferay 7 中遇到了这个类的新版本的问题。确实,get 方法返回 null 而不是预期的查询。
有人复制过这个吗?
这是我在 Eclipse Mars 中最后一次测试的描述:
- 在我的 Liferay 工作区中,我在 service 模块的 build.gradle 中添加了以下行
compileOnly 组:“com.liferay”,名称:“com.liferay.portal.dao.orm.custom.sql”,版本:“1.0.5”
gradle 刷新后,我可以使用 FooFinderImpl 类中的 CustomSQLUtil 类来检索适当的查询。
此查询已写入 default.xml 文件中,该文件已放入 Liferay 7 文档中提到的 src/custom-sql 文件夹中:
https://dev.liferay.com/develop/tutorials/-/knowledge_base/7-0/custom-sql
我尝试了很多地方(在 META-INF 中,在 ressources 中..),我什至尝试扩展 CustomSQL 本机类来获取配置,但是 CustomSQLUtil 类的 get 方法总是返回 null 而不是 sql询问。
PS:我注意到这个新的“CustomSQLUtil.get”方法现在需要 2 个参数,除了查询 ID 之外还请求一个类。在这个类参数中,我输入了“Foo.class”值。
有人知道是否有配置要做吗?是否必须配置类路径或捆绑上下文?
jakarta-ee - Liferay 7 Service Builder 不会自动更新数据库
在我的 Liferay 7 项目中,Service Builder 很好地生成了文件 tables.sql(带有完整的 sql),但不像 Liferay 6.2 那样在 SERVICECOMPONENT 本机 liferay 表中包含此内容。
因此,当我重新启动服务器时,数据库中没有更新,而数据模型已被修改。
我必须手动运行包含在 tables.sql 中的 sql 脚本来临时解决这个问题。
有人复制过这个吗?有没有我不知道的选项(Liferay 7 中的新选项?)会导致这种行为。
注意:当然,选项 build.auto.upgrade(在 service.properties 中)设置为 true,并且没有 service-ext.properties 可以覆盖它
java - 使用非数据库字段自定义 Liferay Web 服务响应
在 Liferay 7 中,我使用带有 getter/setter 的新字段自定义了我的 FooImpl.java(由 Foo 表中的服务构建器生成):
我添加此字段是因为我希望它在以下方法的 Web 服务响应中(从 FooServiceImpl.java 中提取):
不幸的是,JSON 响应不包含自定义字段“toto”。
有人知道怎么做吗?
liferay - 在liferay中使用finder方法的NoSuchBeanDefinitionException
我正在使用服务构建器来访问 portlet 中的数据库。
我有一个查找器方法,在使用它时我想出了类转换异常。
代码:
这是使用 finder 方法的堆栈跟踪 ClassCastException:
我尝试查找原因并找到以下帖子:
使用 Liferay Service Builder 实现多对多映射时出现 ClassCastException
异常":"liferay 服务构建器中的 java.lang.ClassCastException
从这些我了解到,这里 ClassCastException 的主要原因是重复的类文件,可能在 WEB-INF/classes 文件夹或 WEB-INF/lib
我有 3 个导致此问题的 portlet。
现在我尝试的是:
- 在 liferay/deploy 中部署应用程序。
- 关闭 Liferay
- 将服务 jar 从 WEB-INF/lib 从 portlet 移动到 tomcat 的 /lib/ext
- 从 tomcat 中删除 temp 和 work 文件夹
- 重启tomcat。
这适用于 2 个 portlet,现在我没有面对它们的 ClassCastException,但是对于第三个 portlet,我得到了org.springframework.beans.factory.NoSuchBeanDefinitionException
并且 portlet 变得无法访问。
完整的堆栈跟踪:
如何解决?
spring - Liferay 7 (DXP) Spring MVC portlet,访问服务生成器生成服务的问题
我在从 Spring MVC portlet 访问服务(通过服务构建器模块项目生成)时遇到问题,我阅读了论坛链接https://dev.liferay.com/develop/tutorials/-/knowledge_base/7-0/service-trackers并尝试使用 Service Tracker 从 Controller 访问服务。
这是 SpringTestPortletViewController.java
FooServiceTracker.java
在部署 Spring MVC Portlet 期间面临以下问题。它无法获取捆绑包,即FrameworkUtil.getBundle(SpringTestPortletViewController.getClass())
即将为空
在这里欣赏一些输入,
web-services - Liferay 7 Service Builder 无需创建数据库表并将调用/调用/使用 RESTful Web 服务 API
我正在实现 Liferay 7 Service Builder,它不应创建数据库表并将调用 RESTful Web 服务 API。要调用的 Web 服务是自定义的并且在 Liferay 之外;它们与 Liferay 完全无关。Web 服务向 Service Builder 提供 JSON 格式的数据。Service Builder 会将其映射到其生成的 POJO 类,并通过使用 Jackson 库将其转换回 JSON 字符串。将调用服务构建器 (XxxServiceImpl) 的 portlet 将 JSON 字符串转换为 POJO 对象并在 JSP 上呈现它。
我搜索了万维网无济于事。我希望有人能帮助我。
谢谢你。
liferay - Liferay Serivce Builder:无法运行动态查询
我有两个插件 portlet。首先有所有实体的服务构建器。第二个portlet 使用服务的jar 文件来执行动态查询。
我在我的第二个插件 portlet 中使用第一个服务 jar 来与数据库交互。但是在这个 jar 文件中没有任何 Impl 类。这就是为什么我收到错误 Impl Class not found 的原因。以下供参考:
错误: [DynamicQueryFactoryImpl:96] 无法找到模型 com.compass.model.impl.XXXImpl java.lang.ClassNotFoundException: com.compass.model.impl.XXXImpl
服务构建器的正常功能运行良好
liferay - Liferay Service Builder 与自定义列的多对多关系
我有一个关于 Liferay Service Builder 的问题。我想在创建的联接表中创建与自定义列的多对多关系。
这是我的 service.xml:
这会自动创建以下 SQL CREATE 语句:
我怎么能像Status BOOLEAN这样在 JOIN 表中自动创建自定义列。最后应该是这样的:
谢谢你的帮助。