定期调用Web服务

时间:2018-12-04 18:46:22

标签: java sql-server web-services

我已经在JAVA中实现了REST API。我想定期运行,也就是说,每周在指定时间运行一次。我正在尝试通过SQL Server作业调用Web服务来自动执行此操作。我在设置此电话时遇到麻烦。我读过的每篇文章都暗示这是一个坏主意,或者它的方式太复杂而无法理解。任何人都可以通过简单的方法来帮助建立电话吗?或者,如果有替代方案,那是什么?

我已经尝试过:

Declare @Object as Int;
Declare @ResponseText as Varchar(8000);

Exec sp_OACreate 'MSXML2.XMLHTTP', @Object OUT;
Exec sp_OAMethod @Object, 'open', NULL, 'get',
                                                              'http://www.webservicex.com/stockquote.asmx/GetQuote?symbol=MSFT', --Your Web Service Url (invoked)
                                                              'false'
Exec sp_OAMethod @Object, 'send'
Exec sp_OAMethod @Object, 'responseText', @ResponseText OUTPUT

Select @ResponseText

Exec sp_OADestroy @Object

但是我不确定它是最安全的选择。

2 个答案:

答案 0 :(得分:0)

有许多选项可用于配置调度程序以定期调用Web服务调用。

选项1>最简单的方法是在Linux系统中使用cURL实用程序并将其安排在crontab条目中。

示例调用:curl -XGET http://www.webservicex.com/stockquote.asmx/GetQuote?symbol=MSFT

选项2>第二个选项可以是在Autosys配置中安排包装外壳脚本。

选项3>如果您使用的是Java生态系统,则可以使用Spring batch scheduling

答案 1 :(得分:0)

我遇到了另一种选择。您可以在Sql Jobs中运行PowerShell脚本。我编写了脚本来调用Web Service和Sql Job,以每周运行脚本。完美运行。

谢谢。