标签: wsdl

WSP0075:策略断言"TransportBinding"被评估为"未知".为什么?

我是一个我无法控制的SOAP服务的客户端(在.NET中实现).该服务提供WSDL.我使用Apache CXF从WSDL生成java客户端(具体来说,我使用的是Maven的cxf-codegen-plugin,它使用了wsdl2java).

但是,当我实例化生成的服务类时,会记录以下警告:

Sep 04, 2014 5:18:00 PM [com.sun.xml.internal.ws.policy.EffectiveAlternativeSelector]  selectAlternatives
WARNING: WSP0075: Policy assertion "{http://schemas.xmlsoap.org/ws/2005/07/securitypolicy}TransportBinding" was evaluated as "UNKNOWN".
Sep 04, 2014 5:18:00 PM [com.sun.xml.internal.ws.policy.EffectiveAlternativeSelector]  selectAlternatives
WARNING: WSP0019: Suboptimal policy alternative selected on the client side with fitness "UNKNOWN".
Run Code Online (Sandbox Code Playgroud)

但是客户端工作正常 - 我使用该服务没有任何问题.但是,我对这些错误感到困惑.

错误是关于WSDL中的这个安全策略,我认为它说它无法理解:

<wsp:Policy wsu:Id="soap11_policy" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy">
  <wsp:ExactlyOne>
    <wsp:All>
      <sp:TransportBinding xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
        <wsp:Policy>
          <sp:TransportToken>
            <wsp:Policy>
              <sp:HttpsToken RequireClientCertificate="false"/>
            </wsp:Policy>
          </sp:TransportToken>
          <sp:AlgorithmSuite>
            <wsp:Policy>
              <sp:Basic256/>
            </wsp:Policy>
          </sp:AlgorithmSuite>
          <sp:Layout>
            <wsp:Policy>
              <sp:Strict/>
            </wsp:Policy>
          </sp:Layout>
        </wsp:Policy>
      </sp:TransportBinding>
    </wsp:All>
  </wsp:ExactlyOne>
</wsp:Policy>
Run Code Online (Sandbox Code Playgroud)

但据我所知,这是一个完全普通的政策,并没有什么不寻常之处.当然应该理解?我该如何修复此警告?

为了记录,这里是如何调用wsdl2java(摘自pom.xml).

-exsh trueARG和cxf-rt-bindings-soap …

wsdl cxf wsdl2java jax-ws soap-client

15
推荐指数
3
解决办法
2万
查看次数

从Python中的WSDL文件创建模拟Web服务

我们正在为远程服务编写客户端,该服务公开SOAP Web服务并为这些服务发布WSDL定义.

我们在测试期间无法访问系统,因此我们想编写一个模拟服务.我们正在为客户端使用Python,所以理想情况下我们希望将Python用于模拟服务器,尽管我认为它并非绝对必要.

我们的梦想是能够从我们可以填写的WSDL文件中生成存根,然后使用Paste Deploy作为WSGI服务器提供存根,尽管它不必是Paste Deploy或WSGI,只要它可靠地工作即可.主要的是我们需要从"真正的"WSDL文件生成存根,以便我们不会意外地编写不兼容的模拟服务器.

我们在客户端库中使用suds,并查看了soaplib和ZSI.然而,soaplib中的wsgi2py内容在顶部说"不要使用",ZSI似乎要吞下很多东西.人们通常会用这种东西做什么?

马丁

python soap wsdl mocking

14
推荐指数
2
解决办法
7738
查看次数

如何将SOAP头传递给未在WSDL文件中定义的python SUDS

我的网络上有一个摄像头,我试图用肥皂水连接,但泡沫不会发送所需的所有信息.我需要在WSDL文件中放置未定义的额外soap标头,以便摄像头可以理解该消息.所有头文件都包含在SOAP信封中,然后suds命令应该在邮件正文中.

我已经检查了suds 网站 ,它说要像这样传入标题:(这会将元素作为标题传递,但我有一个信封,所以我不知道如何输入这个)

from suds.sax.element import Element
client = client(url)
ssnns = ('ssn', 'http://namespaces/sessionid')
ssn = Element('SessionID', ns=ssnns).setText('123')
client.set_options(soapheaders=ssn) 
result = client.service.addPerson(person)
Run Code Online (Sandbox Code Playgroud)

现在,我不确定如何实现这一点.比方说,我有以下标题:

<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://www.w3.org/2003/05/soap-envelope" xmlns:SOAP
ENC="http://www.w3.org/2003/05/soap-encoding"
<wsa:MessageID SOAP-ENV:mustUnderstand="true">urn:uuid:43268c01-f09c6</wsa:MessageID>
 <SOAP-ENV:Header>
Run Code Online (Sandbox Code Playgroud)

使用这个或类似的例子有谁知道如何将有效的SOAP消息传递给目标服务?

谢谢

python xml wsdl suds soapheader

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

C#客户端如何调用wsdl文件

我的客户给了我一个.wsdl文件来访问他们的web服务.使用VS2008我可以创建一个项目,但我不知道如何在其中使用.wsdl文件.

.net c# wsdl visual-studio-2008

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

XML/WSDL比较工具

对于那些经常使用Web服务的人来说,他们不时会得到更新,这并不奇怪.而且您始终需要跟踪这些更新的更改.

在我的特定情况下,我处理由WSDL定义的Web服务,并且我获得了基于此WSDL生成的类.

但是在从更新的WSDL重新生成类之前,我希望看到WSDL中的更改并确定更改量 - 看看我应该做些什么准备.

不幸的是,如果我只比较新旧版本的.wsdl文件,由于一个原因并不总是很好 - wsdl内容可以重新排序(内部重构).这就是找到更多语义工具的原因.

我已经尝试过Oxygen XML Diff工具,但它对我来说效果也不好.

我正在寻找一个工具,它将采用两个XML并且只带来语义差异,例如:

  • 元素A补充说
  • 将子元素b7添加到元素B.

为了这个工作,我猜这个工具必须加载并深入分析结构,Oxygen XML Diff声称做得很好,但它只是一个改进版本的文本文件比较.

您能否为此推荐一项工作,特别是要查看基于WSDL的Web服务更新.

更新1:新想法是比较生成的源而不是WSDL.

谢谢.

xml wsdl web-services

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

使用捕获的流量为现有SOAP服务生成WSDL

我需要使用打印机的SOAP服务.有一个Windows工具来访问这个服务,我用它来生成SOAP请求和我需要的重要功能的响应.

现在我应该使用Python编写一个Linux客户端,我发现最简单的方法是使用suds带有WSDL文件的库.但我没有这个WSDL!

当我调查windows工具(查看可执行文件的hexdump)时,我得出结论可能根本没有WSDL文件.

现在我的问题是,有没有人体验过"逆向工程"SOAP服务,并且知道哪些工具可以用于为现有服务创建WSDL文件?(谷歌还没有提出任何有用的东西).

soap wsdl web-services

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

Ruby gem用于使用xsd:import来使用Webservices wsdl


我们需要使用一个Web服务,它获得了一个使用xsd:import进行数据类型定义的WSDL.savon gem不支持,因为它使用芥末.
我们正在使用Ruby 1.9.2
你能不能给我一些宝石.

关心Surendran

ruby soap wsdl savon

14
推荐指数
1
解决办法
1671
查看次数

复杂类型在wcf wsdl中不可用

我已经创建了一个WCF服务,但是服务WSDL没有显示我的类(复杂类型).

以下是服务:

[ServiceContract]
public interface IFedexService
{
    [OperationContract]
    ShipmentReply CreateMultiFedExShipment(RxRdShipment shipment);

    [OperationContract]
    ShipmentReply CreateFedExShipment(RxRdShipment shipment);
}
Run Code Online (Sandbox Code Playgroud)

我的班级定义是:

[DataContract]
public class ShipmentReply
{
    [DataMember]
    public string ReferenceNumber { get; set; }

    [DataMember]
    public string MasterTrackingNumber { get; set; }

    [DataMember]
    public List<ReplyPackage> Packages { get; set; }

    [DataMember]
    public bool Response { get; set; }

    [DataMember]
    public RxNotification Notification { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我的问题是我没有找到这ShipmentReply门课WSDL.我的问题是什么?

谢谢你,Arefin

wcf wsdl

14
推荐指数
1
解决办法
8116
查看次数

Elixir使用detergentex和洗涤剂调用Axis2 Java SOAP Web服务

从Elixir,我试图使用detergentex调用SOAP Web服务,这是一个围绕Erlang库清洁剂的包装器.

我可以在洗涤剂主页上的示例中调用SOAP Web服务,没有任何问题:http://www.webservicex.net/convertVolume.asmx? WSDL

参数:

wsdl_url = "http://www.webservicex.net/convertVolume.asmx?WSDL"
action = "ChangeVolumeUnit"
parameters = ["100","dry","centiliter"]
Run Code Online (Sandbox Code Playgroud)

但是,当尝试调用Axis2 Java SOAP Web服务时,我遇到了一些问题.示例:http://www.thomas-bayer.com/axis2/services/BLZService?wsdl

以下列方式调用"getBank"时

wsdl_url = "http://www.thomas-bayer.com/axis2/services/BLZService?wsdl"
action = "getBank"
parameters = ["abc"]
wsdl = Detergentex.init_model(wsdl_url)
res = Detergentex.call(wsdl, action, parameters)
Run Code Online (Sandbox Code Playgroud)

我收到以下错误消息:

{:error, 'Struct doesn\'t match model: recordtype not expected: p:getBank'}
Run Code Online (Sandbox Code Playgroud)

使用以下堆栈跟踪

    src/erlsom_write.erl:357: :erlsom_write.findAlternative/4
    src/erlsom_write.erl:258: :erlsom_write.processSubType/5
    src/erlsom_write.erl:241: :erlsom_write.processElementValues/7
    src/erlsom_write.erl:132: :erlsom_write.struct2xml/6
    src/erlsom_write.erl:323: :erlsom_write.processAlternativeValue/8
    src/erlsom_write.erl:241: :erlsom_write.processElementValues/7
    src/erlsom_write.erl:116: :erlsom_write.struct2xml/6
    src/erlsom_write.erl:323: :erlsom_write.processAlternativeValue/8
    src/erlsom_write.erl:241: :erlsom_write.processElementValues/7
    src/erlsom_write.erl:45: :erlsom_write.write/2
    src/detergent.erl:211: :detergent.call_attach/8 …
Run Code Online (Sandbox Code Playgroud)

erlang soap wsdl web-services elixir

14
推荐指数
1
解决办法
989
查看次数

PHP SoapClient不处理WSDL中的abstract和substitutionGroup属性

我正在使用他们提供的wsdl向Canada Post发送一个电话,其中包含以下部分:

<!-- group-id and transmit-shipment are mutually exclusive -->
<xsd:element name="groupIdOrTransmitShipment" abstract="true" />
<xsd:element name="group-id" type="tns:GroupIDType" substitutionGroup="tns:groupIdOrTransmitShipment"/>
<xsd:element name="transmit-shipment" type="xsd:boolean" fixed="true" substitutionGroup="tns:groupIdOrTransmitShipment"/>

<xsd:complexType name="ShipmentType">
    <xsd:all>
        <xsd:element ref="tns:groupIdOrTransmitShipment" />
        <xsd:element name="quickship-label-requested" type="xsd:boolean" minOccurs="0"/>
        <xsd:element name="cpc-pickup-indicator" type="xsd:boolean" fixed="true" minOccurs="0"/>
        <xsd:element name="requested-shipping-point" type="tns:PostalCodeType" minOccurs="0"/>
        <xsd:element name="shipping-point-id" type="tns:OutletIDType" minOccurs="0" />
        <xsd:element name="expected-mailing-date" type="xsd:date" minOccurs="0"/>
        <xsd:element name="delivery-spec" type="tns:DeliverySpecType"/>
        <xsd:element name="return-spec" type="tns:ReturnSpecType" minOccurs="0"/>
    </xsd:all>
</xsd:complexType>
Run Code Online (Sandbox Code Playgroud)

在他们的代码示例中,他们扩展了Soap类并覆盖了__doRequest()Soap方法,如下所示:

/*
 Need to override SoapClient because the abstract element 'groupIdOrTransmitShipment' is expected to be in the request …
Run Code Online (Sandbox Code Playgroud)

php soap wsdl soap-client

14
推荐指数
1
解决办法
696
查看次数