小编Bri*_*ith的帖子

使用 Savon gem 修改 SOAP XML 命名空间

我正在尝试修改 Savon SOAP 调用中的命名空间之一。这是我的请求的样子:

HTTPI GET request to www.intg.pathway.verosapps.com (excon)
SOAP request: https://www.intg.pathway.verosapps.com/VerosPathway.svc
SOAPAction: "urn:IVerosPathway/VerosPathway_Ping", Content-Type: text/xml;charset=UTF-8, Content-Length: 434
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://tempuri.org/" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
  <soapenv:Body>
    <VerosPathway_Ping>
      <request>
        <Credentials>
          <UserId>*username*</UserId>
          <Password>*password*</Password>
        </Credentials>
      </request>
    </VerosPathway_Ping>
  </soapenv:Body>
</soapenv:Envelope>
Run Code Online (Sandbox Code Playgroud)

我不得不进行大量调整,因为该公司希望其客户使用 .NET 进行 SOAP 交互,而我们使用的是 Ruby。我非常接近格式正确,但我需要在信封部分做两件事之一:

  1. 将 "xmlns="http://tempuri.org/" 更改为 "xmlns:wsdl="http://tempuri.org/"
  2. 或者完全删除“xmlns="http://tempuri.org/”。

这是我的萨文电话:

apiClient = Savon.client(endpoint: "https://www.intg.pathway.verosapps.com/VerosPathway.svc", env_namespace: :soapenv, namespace_identifier: nil, logger: Rails.logger, log_level: :debug, log: true, :pretty_print_xml => true, ssl_version: :TLSv1, wsdl: 'https://www.intg.pathway.verosapps.com/VerosPathway.svc?wsdl')
Run Code Online (Sandbox Code Playgroud)

如果我将以下行添加到我的 Savon 调用中:

namespaces: {"xmlns:wsdl" => "http://tempuri.org/"}
Run Code Online (Sandbox Code Playgroud)

那么我的请求是这样的: …

ruby xml soap ruby-on-rails savon

4
推荐指数
1
解决办法
2374
查看次数

无法访问 RabbitMQ 管理插件

我正在尝试访问 Ubuntu 12.04 服务器上的 RabbitMQ 管理插件。我有一个反向代理设置,可将端口 15627 路由到“/messages”,并且我已使用 Rackspace 验证端口 15627 已打开。然而,当我导航到 mydomain.com/messages 时,我看到的只是一个空白页面 - 根本没有登录页面。浏览器选项卡正确显示“RabbitMQ Management”,服务器上正在运行RabbitMQ服务。我使用的是 RabbitMQ 版本 3.4.2。

我的反向代理:

AllowEncodedSlashes On
ProxyPass         /messages  http://localhost:15672/
ProxyPassReverse  /messages  http://localhost:15672/
Run Code Online (Sandbox Code Playgroud)

以下是 RabbitMQ 的插件列表:

[e*] amqp_client               3.4.2
[e*] mochiweb                  2.7.0-rmq3.4.2-git680dba8
[E*] rabbitmq_management       3.4.2
[e*] rabbitmq_management_agent 3.4.2
[e*] rabbitmq_web_dispatch     3.4.2
[e*] webmachine                1.10.3-rmq3.4.2-gite9359c7
Run Code Online (Sandbox Code Playgroud)

有人在代理上设置rabbitmq时遇到问题吗?感谢您提供的任何帮助,谢谢!

编辑1

我忘了提及,如果我导航到 my-server-ip-address:15672,我可以访问 RabbitMQ 管理插件,所以我知道它在端口 15672 上可用。

编辑2

更新了代理信息

apache rabbitmq ubuntu-12.04

2
推荐指数
1
解决办法
1608
查看次数

Spring Scheduled Cron 作业在错误的时间触发

我有一个 Spring Boot 应用程序,其中包含使用 @Scheduled 注释的各种调度程序。一些时间表使用 fixedRate 设置,其他时间表使用 cron。fixedRate 计划运行良好,但我注意到在过去的一个月中,cron 计划触发的实际时间每天会有 1-2 小时的变化。

即具有 cron 设置的工作

@Scheduled(cron = "0 0 2 * * *")
Run Code Online (Sandbox Code Playgroud)

将在凌晨 3:00 而不是凌晨 2:00 触发。它也不是每天都在发生。它会连续几天在同一时间运行,然后发生一些事情,每次运行它都会再关闭一个小时,直到我重新启动应用程序。

服务器上的系统时间是准确的,我在这里完全没有想法。有没有人遇到过这个?

编辑 1

我输入了一些日志来确定作业是否在同一时间间隔内误触发,结果似乎是随机的。以下是三天内上述 cron 作业的开始/结束时间:

Format: Calendar.getInstance().getTime() (System.currentTimeMillis())

Start: Sat Oct 21 03:14:15 CDT 2017 (1508573655778)
End:   Sat Oct 21 03:22:24 CDT 2017 (1508574144708)

Start: Sun Oct 22 02:26:58 CDT 2017 (1508657218774)
End:   Sun Oct 22 02:35:12 CDT 2017 (1508657712492)

Start: Mon Oct 23 02:00:03 CDT 2017 (1508742003072)
End:   Mon …
Run Code Online (Sandbox Code Playgroud)

java cron spring spring-scheduled spring-boot

2
推荐指数
1
解决办法
1787
查看次数