Как вызвать службу в Grails с помощью groovy

У меня есть одна служба, в которой у меня есть метод для вызова, и как я могу получить доступ к этой службе. Я видел плагин sms и установил его, и как я могу отправлять смс из своего приложения на разные мобильные телефоны. Я следил за плагином sms grails, но не получил никаких результатов, кроме исключений.

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"

  }
}

Пожалуйста, объясните мне на примере. Заранее большое спасибо.


person srini    schedule 06.06.2011    source источник
comment
дубликат: stackoverflow .com/questions/6250914/ ???   -  person elCapitano    schedule 06.06.2011


Ответы (1)


Если вы хотите вызвать плагин из метода службы, вам нужно будет сделать:

  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"
  }
}

Затем из контроллера определите ссылку на 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()
    ...
  }
}
person tim_yates    schedule 06.06.2011