Кварцевая работа для вызова сервлета другого приложения

Мне нужно создать кварцевую работу в моем приложении Grails, которое должно вызывать сервлет другого приложения. И в методе doGet() сервлета мне нужно получить сообщение, которое передается, и выполнить процесс, а после его завершения необходимо отправить ответ обратно в службу. Я новичок в этом, кто-нибудь может мне помочь. создаст задание в приложении grails и вызовет метод сервиса из этого метода, как мне вызвать сервлет doGet() другого приложения.

Это моя кварцевая работа

class DBCleanUpJob {

    def concurrent = false
        def miscBillService

        static triggers = {
        cron name : 'myTrigger', cronExpression : "0 0 2 * 1 ?"
    }

        def execute() {
        miscBillService.miscBillCall()
    }
}

И это мой сервис

 @Transactional
     class MiscBillService {


     def miscBillCall() {

         String line;
         try
         {
             URL url = new URL("http://127.0.0.1/MServlet?value=run start");
             BufferedReader ins = new BufferedReader(new InputStreamReader(url.openStream()));
             line = ins.readLine();

             System.out.println(line);

             ins.close();
         }
         catch (Exception e)
         {
             e.printStackTrace();
         }
     }
 }

Вызывает ли приведенный выше код сервлет doGet() метод?

1 ответ

Я использую плагин для остальных клиентов, https://github.com/grails-plugins/grails-rest-client-builder/

Добавьте следующее в build.gradle

dependencies {
    compile "org.grails:grails-datastore-rest-client:5.0.0.RC2"
    ...
}

Тогда к вашим услугам...

import grails.plugins.rest.client.RestBuilder

def yourGetUrl = 'http://getUrl'
def rest = new RestBuilder()
def resp = rest.get( yourGetUrl )
// do some validation on response & process
def xml = processGetResponse( resp )
def yourPostUrl = 'http://postUrl'
resp = rest.post( yourPostUrl ) {
    contentType "text/xml; charset=ISO-8859-1"
    xml xmlData
}
processPostResponse( resp )

Выше предполагается, что вы отправляете обратно XML, это, конечно, нужно изменить, если нет.

Другие вопросы по тегам