grails - 如何使用 groovy 调用 Grails 中的服务

标签 grails groovy grails-plugin

我有一项服务,我有一个方法可以调用,我如何访问该服务。 我已经看到短信插件并安装了它,以及如何将短信从我的应用程序发送到不同的手机。我遵循了 grails 短信插件,但我没有得到任何结果 ecxept ecxeptions

class SipgateService {

  static transactional = true

  def serviceMethod() {
    def sipgateService
    //def phoneNumber = 'XXXXXXXXXX' //phoneNumber according to E.164 specification
    //working alternative: 
    println "service"
    def phoneNumber = 'XXXXXXXXXX' 
    def result = sipgateService.sendSMS(phoneNumber, 'This is my Text to send!')
    result ?  'Sending Successful':'Sending failed'
    println "after service"

  }
}

请举个例子来解释一下。 提前非常感谢。

最佳答案

如果您想从服务方法调用插件,您需要执行以下操作:

  1. 更改您的服务名称(使其不再名为 SipgateService)
  2. def sipgateService 添加为类定义,而不是方法

这有效吗?

class MySMSService {
  static transactional = true

  def sipgateService // This will be injected from the SMS plugin

  def serviceMethod() {
    println "service"
    def phoneNumber = 'XXXXXXXXXX' 
    def result = sipgateService.sendSMS(phoneNumber, 'This is my Text to send!')
    result ?  'Sending Successful':'Sending failed'
    println "after service"
  }
}

然后,从 Controller 中,在类级别定义到 MySMSService 的链接,并调用您的 serviceMethod 方法,即:

class MyController {
  def mySMSService  // this will be injected from your service

  // then, when you want to use it (from an action)

  def someAction = {
    ...
    mySMSService.serviceMethod()
    ...
  }
}

关于grails - 如何使用 groovy 调用 Grails 中的服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6251912/

相关文章:

grails - 如何在 Ubuntu 中将 Grails 版本从 2.1.2 升级到 2.2.3

forms - 如何在 Grails 表单中获取多个相同的对象值

hibernate - 当一个人的pk引用另一个人的pk时,如何在GORM中映射实体

grails - 是否可以在没有全部内容的情况下使用GSP(常规服务器页面)?

java - 在 Grails 项目中安装插件 jar 吗?

groovy - 如何在Groovy中将java.lang.String转换为json

jenkins - 如何修剪 Jenkins 管道中的参数?

grails - Gorm findAllBy 里面 gsp 的疑问

grails - Groovy-按雇主,角色,项目文档ID,证书的筛选列表

grails:相当于 php 的 $_POST 和 $_GET 的是什么