我有一个问题,我认为是关于名称空间的问题.WSDL可以从这里下载:http://promostandards.org/content/wsdl/Order%20Shipment%20NotificationService/1.0.0/OSN-1-0-0.zip
生成请求时,它看起来像这样:
<soapenv:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tns="http://www.promostandards.org/WSDL/OrderShipmentNotificationService/1.0.0/" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<tns:GetOrderShipmentNotificationRequest>
<tns:wsVersion>1.0.0</tns:wsVersion>
<tns:id>myusername</tns:id>
<tns:password>mypassword</tns:password>
<tns:queryType>3</tns:queryType>
<tns:shipmentDateTimeStamp>2017-07-19</tns:shipmentDateTimeStamp>
</tns:GetOrderShipmentNotificationRequest>
</soapenv:Body>
</soapenv:Envelope>
Run Code Online (Sandbox Code Playgroud)
这导致肥皂故障.
当SoapUI使用相同的WSDL构造请求时,它看起来像这样
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://www.promostandards.org/WSDL/OrderShipmentNotificationService/1.0.0/" xmlns:shar="http://www.promostandards.org/WSDL/OrderShipmentNotificationService/1.0.0/SharedObjects/">
<soapenv:Header/>
<soapenv:Body>
<ns:GetOrderShipmentNotificationRequest>
<shar:wsVersion>1.0.0</shar:wsVersion>
<shar:id>myusername</shar:id>
<shar:password>mypassword</shar:password>
<ns:queryType>3</ns:queryType>
<ns:shipmentDateTimeStamp>2017-07-19</ns:shipmentDateTimeStamp>
</ns:GetOrderShipmentNotificationRequest>
</soapenv:Body>
</soapenv:Envelope>
Run Code Online (Sandbox Code Playgroud)
您可以看到SoapUI已将用户名和密码放在"shar"命名空间内.我注意到这并没有直接列在WSDL或WSDL直接加载的任何XSD文件中.它被加载类似WSDL => XSD file =>包含shar命名空间的XSD文件.这可能是问题吗?如何将命名空间添加到3个键中?我正在使用savon 2.11.1和nori 2.6.0
这是我最终使用的解决方案:
@client = Savon.client(
wsdl: 'OSN-1-0-0/WSDL/1.0.0/OrderShipmentNotificationService.wsdl',
endpoint: @endpoint,
env_namespace: :soapenv,
namespaces: { "xmlns:shar" => "http://www.promostandards.org/WSDL/OrderShipmentNotificationService/1.0.0/SharedObjects/" },
element_form_default: :qualified,
headers: { "accept-encoding" => "identity" }
)
response = @client.call(:get_order_shipment_notification, message: {
'shar:ws_version': @version,
'shar:id': @username,
'shar:password': @password, …Run Code Online (Sandbox Code Playgroud) 使用git-bash运行vagrant命令时遇到问题.例如,如果我运行vagrant状态,我将收到错误消息"无法加载"vagrant-berkshelf"插件."如果我从正常的Windows命令行运行相同的命令,它将正常工作.如果我运行"VAGRANT_LOG = info vagrant status",输出如下:
$ VAGRANT_LOG=info vagrant status
INFO global: Vagrant version: 1.4.3
INFO global: Ruby version: 2.0.0
INFO global: RubyGems version: 2.0.14
INFO global: VAGRANT_DETECTED_OS="MINGW32_NT-6.1"
INFO global: VAGRANT_INSTALLER_EMBEDDED_DIR="c:/HashiCorp/Vagrant/bin/../embedded"
INFO global: VAGRANT_INSTALLER_ENV="1"
INFO global: VAGRANT_INSTALLER_VERSION="2"
INFO global: VAGRANT_LOG="info"
INFO manager: Registered plugin: box command
INFO manager: Registered plugin: destroy command
INFO manager: Registered plugin: halt command
INFO manager: Registered plugin: help command
INFO manager: Registered plugin: init command
INFO manager: Registered plugin: package command
INFO manager: Registered plugin: plugin …Run Code Online (Sandbox Code Playgroud) 我试图向在Ubuntu 14.04安装期间创建的用户授予无密码sudo权限.但是,创建映像时,不存在与sudo相关的任何更改.以下是预置文件的相关部分:
# Create Vagrant User
d-i passwd/user-fullname string Vagrant User
d-i passwd/username string vagrant
d-i passwd/user-password password vagrant
d-i passwd/user-password-again password vagrant
d-i user-setup/encrypt-home boolean false
d-i user-setup/allow-password-weak boolean true
# Setup passwordless sudo for vagrant user
d-i preseed/late_command string echo "vagrant ALL=(ALL:ALL) NOPASSWD:ALL" > /target/etc/sudoers.d/vagrant
d-i preseed/late_command string chmod 0440 /target/etc/sudoers.d/vagrant
Run Code Online (Sandbox Code Playgroud)
我也试过了
d-i preseed/late_command string in-target echo "vagrant ALL=(ALL:ALL) NOPASSWD:ALL" > /etc/sudoers.d/vagrant
Run Code Online (Sandbox Code Playgroud)
当图像完成/etc/sudoers.d/vagrant将不存在于任何地方.
即使我运行命令:
d-i preseed/late_command string mkdir /stuff
d-i preseed/late_command string in-target mkdir /stuff
Run Code Online (Sandbox Code Playgroud)
stuff目录将不存在.
我知道这些命令正在运行,因为我曾经输错了一次并在安装过程中看到了错误.所有其他preseed命令似乎都在工作.
我已经阅读了有关in-target指令的信息,安装程序将创建一个具有最终文件系统的/ …