Подключаемый модуль Grails CXF

Я новичок в CXF и, следовательно, любезно избавьте меня, если мой вопрос слишком глуп.

Я намерен разработать службу REST с использованием Grails, которая принимает пользовательский объект JAVA. Поэтому я намерен использовать плагин grails-cxf.

В моем контроллере мне нужен метод (POST), который принимает объект Java и возвращает объект Java.

def UserDetails getUserDetails(User user)
{
   // Logic

   return new UserDetails();
}

Я не вижу хорошего примера в документации плагина. Я не особо придираюсь к использованию этого плагина. Если вы можете предложить какой-либо способ достижения этого с помощью Grails, я не против.

Пожалуйста помоги. Можем ли мы использовать плагин grails-cxf для разработки REST API?


person Vinod Jayachandran    schedule 14.09.2015    source источник
comment
Прежде всего def UserDetails getUserDetails(User user) должно быть UserDetails getUserDetails(User user) или def getUserDetails(User user)   -  person YAT    schedule 15.09.2015
comment
Я согласен, но приведенный выше метод был просто образцом, чтобы объяснить, чего я пытаюсь достичь. В основном метод Rest для принятия объектов Java в качестве аргументов   -  person Vinod Jayachandran    schedule 15.09.2015


Ответы (2)


Вы должны определить в config.groovy, где плагин cxf ищет сервис.

Передний пример:

cxf {
  servlet {
    loadOnStartup = 10
  }
  servlets = [
        CxfServlet: '/services/*'
  ]
  endpoint {
    soap12Binding = false
   }
}

Таким образом, плагин ищет в папке службы некоторые веб-службы, но вам нужно определить службу как веб-службу. Для вашего примера служба может выглядеть так:

class UserDetailsService {
  static expose = EndpointType.JAX_RS

  @WebResult(name = 'getUserDetails')
  @WebMethod
  UserDetails getUserDetails(@WebParam(name = 'user')User user)
  {
      // Logic

      return new UserDetails();
  }
}

Я не уверен, работает ли это с объектом пользователя, я никогда не делал этого с объектом Java. Если это не сработает, вы можете использовать UserId и получить пользователя внутри метода.

ХТН

person YAT    schedule 15.09.2015
comment
Так мило с твоей стороны ответить. Позвольте мне попытаться обновить вас. Могу ли я вызывать REST API getUserDetails через любой REST-клиент? - person Vinod Jayachandran; 15.09.2015
comment
не могли бы вы помочь и сказать мне, какой будет URL-адрес REST для вышеуказанного API getUserDetails? - person Vinod Jayachandran; 15.09.2015

Мне не нужен плагин cxf, чтобы служба Rest принимала объекты Java в качестве аргументов.

Command Object послужил моей цели

person Vinod Jayachandran    schedule 16.09.2015