问题标签 [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.

0 投票
1 回答
463 浏览

liferay - ServiceBuilder 没有创建 FinderImpl 类?

我使用 Liferay 7 创建了一些服务。但是在构建服务之后并没有创建FinderImplFinderUtil类。我遵循的步骤如下:

  1. 创建了一个服务构建器项目。
  2. 创建了查找器列。
  3. 构建并部署了 *-api 和 *-service...其中 * 是项目/服务名称。
  4. 使用 gradle -> Refresh Gradle Project 刷新项目。
  5. 将 *-service 和 *-api 拖放到正在运行的服务器上。

结果:它创建了表,但项目中没有 *FinderImpl 和 *FinderUtil 类。

0 投票
2 回答
1542 浏览

jakarta-ee - Liferay 7 Service Builder 未生成 Finder Util 类

虽然我在 Liferay 6.2 中的 Service Builder 没有问题,但当我构建服务以生成我的第一个 Finder Util 类时,我在 Liferay 7 中遇到了阻塞问题。当我发现,我什至决定从头开始一个项目,问题仍然在这里。即使使用官方文档,也没有任何效果。

有人有什么想法可以帮助我吗?

这是我在 Eclipse Mars 中最后一次测试的完整描述:

  1. 创建一个新的 Liferay 工作区
  2. 创建一个新的 Liferay 项目模块服务生成器
  3. 在 service.xml 中创建一个 foo 对象
  4. 构建服务(类生成良好)
  5. 在 persistence.impl 包中手动创建一个 FooFinderImpl 类
  6. 构建服务
    FooFinder 接口生成良好,但未生成 FooFinderUtil 类。
  7. 在 FooFinderImpl 类中添加一些方法
  8. 构建服务
  9. 没什么新鲜的

谢谢你的帮助。

文森特

0 投票
2 回答
1237 浏览

jakarta-ee - CustomSQLUtil 在使用 Liferay 7 进行查询检索期间获取空值

虽然我对 Liferay 6.2 中的 CustomSQLUtil 类没有任何问题,但我在 Liferay 7 中遇到了这个类的新版本的问题。确实,get 方法返回 null 而不是预期的查询。

有人复制过这个吗?

这是我在 Eclipse Mars 中最后一次测试的描述:

  1. 在我的 Liferay 工作区中,我在 service 模块的 build.gradle 中添加了以下行

compileOnly 组:“com.liferay”,名称:“com.liferay.portal.dao.orm.custom.sql”,版本:“1.0.5”

  1. gradle 刷新后,我可以使用 FooFinderImpl 类中的 CustomSQLUtil 类来检索适当的查询。

  2. 此查询已写入 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”值。

有人知道是否有配置要做吗?是否必须配置类路径或捆绑上下文?

0 投票
3 回答
3676 浏览

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 可以覆盖它

0 投票
2 回答
172 浏览

java - 使用非数据库字段自定义 Liferay Web 服务响应

在 Liferay 7 中,我使用带有 getter/setter 的新字段自定义了我的 FooImpl.java(由 Foo 表中的服务构建器生成):

我添加此字段是因为我希望它在以下方法的 Web 服务响应中(从 FooServiceImpl.java 中提取):

不幸的是,JSON 响应不包含自定义字段“toto”。

有人知道怎么做吗?

0 投票
1 回答
284 浏览

liferay - 在liferay中使用finder方法的NoSuchBeanDefinitionException

我正在使用服务构建器来访问 portlet 中的数据库。

我有一个查找器方法,在使用它时我想出了类转换异常。

代码:

这是使用 finder 方法的堆栈跟踪 ClassCastException:

我尝试查找原因并找到以下帖子:

Liferay 多对多关系抛出类转换异常

使用 Liferay Service Builder 实现多对多映射时出现 ClassCastException

异常":"liferay 服务构建器中的 java.lang.ClassCastException

从这些我了解到,这里 ClassCastException 的主要原因是重复的类文件,可能在 WEB-INF/classes 文件夹或 WEB-INF/lib

我有 3 个导致此问题的 portlet。

现在我尝试的是:

  1. 在 liferay/deploy 中部署应用程序。
  2. 关闭 Liferay
  3. 将服务 jar 从 WEB-INF/lib 从 portlet 移动到 tomcat 的 /lib/ext
  4. 从 tomcat 中删除 temp 和 work 文件夹
  5. 重启tomcat。

这适用于 2 个 portlet,现在我没有面对它们的 ClassCastException,但是对于第三个 portlet,我得到了org.springframework.beans.factory.NoSuchBeanDefinitionException并且 portlet 变得无法访问。

完整的堆栈跟踪:

如何解决?

0 投票
3 回答
1759 浏览

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()) 即将为空

在这里欣赏一些输入,

0 投票
1 回答
1350 浏览

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 上呈现它。

我搜索了万维网无济于事。我希望有人能帮助我。

谢谢你。

0 投票
3 回答
1652 浏览

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

服务构建器的正常功能运行良好

0 投票
1 回答
690 浏览

liferay - Liferay Service Builder 与自定义列的多对多关系

我有一个关于 Liferay Service Builder 的问题。我想在创建的联接表中创建与自定义列的多对多关系。

这是我的 service.xml:

这会自动创建以下 SQL CREATE 语句:

我怎么能像Status BOOLEAN这样在 JOIN 表中自动创建自定义列。最后应该是这样的:

谢谢你的帮助。