问题标签 [grails-services]
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.
session - 使用户/会话信息在 Grails 中的应用程序中可用
这是我试图解决的一个类/流程设计问题:
我正在尝试使用户的会话信息在我的 Grails 应用程序中可用,而无需(或要求)在服务层和控制器之间传递 HttpSession。
目前,我有一个过滤器,一旦用户登录,所有与用户相关的信息都会映射到 UserSessionHelper 类中,我将该类的实例添加到会话中,例如:
我希望能够访问会话对象及其在我的应用程序中随处可见的内容,而无需显式传递它(作为参数),就像 grailsApplication在整个 Grails 中可用的方式一样。
有人可以给我一些关于如何以线程安全的方式完成此任务的提示吗?
我正在使用 Grails 2.4.2
谢谢。
unit-testing - 为什么添加 grails 服务单元测试会破坏控制器单元测试?
使用 Grails 2.4.2 版
我有成功通过的控制器单元测试。一旦我添加了一个测试 MyService 的 MyServiceSpec,一些控制器单元测试就开始失败。如果我注释掉我的 MyServiceSpec 测试,它们会再次通过。我已经能够将其缩小到与 MimeType bean 初始化相关的内容。
如果 MyServiceSpec 运行,则使用打印的 MimeType
输出
没有 MyServiceSpec 它是
如果没有 json mime 类型,则无法正确呈现响应并且测试失败。我没有看到任何关于允许或禁止对服务类进行单元测试的详细文档。
进行服务级别单元测试是否不正确?是否应该转移到集成测试区?相关问题是,为什么在引入服务单元测试时,其他控制器测试的默认 MimeType 配置会消失?
grails - Grails-如何获取集合中的部分值?
我有一个呼叫方的域并且有很多受邀者。party.invitees 给我一组受邀者的集合。我只想获得一些受邀者,所以我尝试在我的服务中执行以下操作。
它没有给出正确的结果。它给了我所有的受邀者,而不是只给了我所要求的具体内容。
java - 在 Grails 控制器中包含具有会话范围的服务?
使用 Grails 2.4.5 我有以下服务:
我想在控制器中使用此服务:
我尝试了Grails scoped-proxy 插件的 0.3 版。但我收到以下错误:
如何在 Grails 控制器中包含具有会话范围的服务?
grails - 如何为 Grails 服务运行测试
当我跑
或 grails test-app mypackage.MessageServiceSpec
我总是收到错误
这里有什么问题?
更新:运行命令是
grails - 在 Grails 服务中获取请求
在Grails 服务中,我正在尝试获取请求,但出现以下错误:
这是我在服务中的代码:
有什么遗漏吗?
谢谢
grails - springSecurityService 在构建角色之前添加第二次身份验证
我正在使用springSecurityService。我的流程如下:步骤#1:springSecurityService应该检查用户和密码。如果成功,步骤#2:检查第二次认证。如果成功,第 3 步:建立角色并登录。
我尝试以多种方式实施但没有成功,有人可以建议吗?只是为了澄清,基本上我需要一个两因素身份验证。
谢谢!
grails - 如何用 Groovy 闭包包装所有 Grails 服务方法?
Grails 2.4.x 在这里。
我要求由 生成的所有 Grails 服务的所有方法都grails create-service <xyz>
使用以下逻辑“包装”/拦截:
在哪里:
log.error(...)
是您在使用注释对类进行注释时获得的 SLF4J 提供的记录器@Slf4j
;和ExceptionUtils
是来自org.apache.commons:commons-lang3:3.4
; 和myAppExceptionHandler
是类型com.example.myapp.MyAppExceptionHandler
;和- 对于 Grails 服务中定义的每个方法,这种行为都存在(或者在需要以某种方式显式调用的情况下可以选择存在)
所以很明显,这个包装代码也需要包含import
这些类的语句。
因此,例如,如果我有一个WidgetService
看起来像这样的:
然后在这个 Groovy/Grails/closure 魔术发生之后,我需要代码表现得就像我写的一样:
关于我如何能够实现这一目标的任何想法?我担心纯 Groovy 闭包可能会以某种方式干扰 Grails 在运行时对其服务所做的任何事情(因为它们都是没有显式扩展父类的类)。
grails - 是否可以强制刷新保存在服务中的域?
在服务中保存域对象时,flush: true
在保存域时,在我必须使用该对象之前,该对象没有得到保存。
我不确定如何在我正在使用的任一服务中强制刷新休眠会话。
在某些情况下,我正在对 API 服务进行 API 调用,该服务转到另一个服务,我在其中保存域,然后返回 API 服务,然后将字符串添加到 RabbitMQ 队列,然后向用户返回 200OK . 但是因为域没有被保存在第二个服务中,所以当项目被添加到队列中时,rabbitMQ 在域被保存之前处理消息。
编辑:
我目前的修复:
API控制器:
API服务:
我保存域的服务:
grails - 删除 Grails 服务中的记录
在Grails Service中,我必须从 Db 中删除记录,但出现以下错误:
虽然@Transactional(readOnly = false)
在我的服务中有,但这是我的服务代码中的删除部分: