标签: wsdl

从WCF/.Net向WSDL输出添加注释

基于W3的WSDL规范,可以将"wsdl:document"标记添加到WSDL输出中,以便使用该Web服务的人员可以更好地解释/记录此Web服务.

有没有人知道如何让WCF使用这些注释/描述,或者如何在C#中编写那些注释作为wsdl的一部分导出的代码?

谢谢,迈克尔

wcf wsdl

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

WSDL/SOAP测试使用soapui

我用soapui测试了我的Web服务(wsdl/soap).我有错误:http/log:错误400 BAD REQUEST.

请问我的wsdl可能有什么错误?

错误/日志:

un Jun 05 14:10:37 CEST 2011:ERROR:javax.wsdl.WSDLException: WSDLException (at /html): faultCode=INVALID_WSDL: Expected element '{http://schemas.xmlsoap.org/wsdl/}definitions'.
   javax.wsdl.WSDLException: WSDLException (at /html): faultCode=INVALID_WSDL: Expected element '{http://schemas.xmlsoap.org/wsdl/}definitions'.
    at com.ibm.wsdl.xml.WSDLReaderImpl.checkElementName(Unknown Source)
    at com.ibm.wsdl.xml.WSDLReaderImpl.parseDefinitions(Unknown Source)
    at com.ibm.wsdl.xml.WSDLReaderImpl.readWSDL(Unknown Source)
    at com.ibm.wsdl.xml.WSDLReaderImpl.readWSDL(Unknown Source)
    at com.ibm.wsdl.xml.WSDLReaderImpl.readWSDL(Unknown Source)
    at com.ibm.wsdl.xml.WSDLReaderImpl.readWSDL(Unknown Source)
    at com.ibm.wsdl.xml.WSDLReaderImpl.readWSDL(Unknown Source)
    at com.eviware.soapui.impl.wsdl.support.wsdl.WsdlInterfaceDefinition.load(WsdlInterfaceDefinition.java:48)
    at com.eviware.soapui.impl.wsdl.support.wsdl.WsdlContext.loadDefinition(WsdlContext.java:66)
    at com.eviware.soapui.impl.wsdl.support.wsdl.WsdlContext.loadDefinition(WsdlContext.java:30)
    at com.eviware.soapui.impl.support.definition.support.AbstractDefinitionContext.cacheDefinition(AbstractDefinitionContext.java:264)
    at com.eviware.soapui.impl.support.definition.support.AbstractDefinitionContext.access$400(AbstractDefinitionContext.java:44)
    at com.eviware.soapui.impl.support.definition.support.AbstractDefinitionContext$Loader.construct(AbstractDefinitionContext.java:230)
    at com.eviware.soapui.support.swing.SwingWorkerDelegator.construct(SwingWorkerDelegator.java:46)
    at com.eviware.soapui.support.swing.SwingWorker$2.run(SwingWorker.java:140)
    at java.lang.Thread.run(Thread.java:637)
Run Code Online (Sandbox Code Playgroud)

wsdl web-services soapui

22
推荐指数
4
解决办法
9万
查看次数

MinOccurs 0和nillable true

在我的wsdl中,我有一个元素:

<xsd:element minOccurs="0" name="birthDate" nillable="true" type="xsd:dateTime"/>
Run Code Online (Sandbox Code Playgroud)

我知道nillable true允许空值这是否意味着它可以允许xml空标记?即

<birthDate/>
Run Code Online (Sandbox Code Playgroud)

xml xsd soap wsdl

22
推荐指数
1
解决办法
3万
查看次数

WSDL.exe的位置

我最近听说过WSDL.Exe,但我不知道在哪里可以找到这个程序.有谁知道我在哪里可以找到或下载它?

.net sdk wsdl web-services

21
推荐指数
6
解决办法
9万
查看次数

JAX-WS:与WSDL分离的编译模式

如果在多个Web服务中使用了相当大的模式,那么我想将XSD编译与WSDL编译分开.在一个简化的示例中,单步编译的工作原理如下:

$ wsimport -verbose service.wsdl
parsing WSDL...

Generating code...

org/example/wsdl/mysvc/MySvcPortType.java
org/example/wsdl/mysvc/MySvcService.java
org/example/ns1/Element1.java
org/example/ns1/ObjectFactory.java
org/example/ns1/package-info.java
...
Run Code Online (Sandbox Code Playgroud)

编译xsd并使用生成的剧集文件不起作用:

$ wsimport -b schema3.episode service.wsdl  
parsing WSDL...

[ERROR] Schema descriptor {http://www.example.org/ns1}element1 in
message part "part1" is not defined and could not be bound to Java.
Perhaps the schema descriptor {http://www.example.org/ns1}element1 is
not defined in the schema imported/included in the WSDL. You can
either add such imports/includes or run wsimport and provide the
schema location using -b switch.   line 9 of
file:...jaxepisode_element/service.wsdl
Run Code Online (Sandbox Code Playgroud)

那么如何在wsimport中使用预编译的模式呢?

附录:当包含在另一个模式中时使用该剧集并避免新的编译(d3.jar包含来自schema3 + …

java xsd wsdl jax-ws jaxb

21
推荐指数
1
解决办法
2886
查看次数

Web服务API版本控制

我向我的客户提供了一个小型Web服务API,我计划随着时间的推移而发展.所以我需要某种版本控制,但我找不到任何关于你是如何做这样的事情的信息.

有最好的做法吗?

如何在不破坏与Web服务使用者的兼容性的情况下继续添加新功能?

versioning wsdl web-services backwards-compatibility

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

从WSDL文件生成Web服务

我想从WSDL文件生成Web服务类.我希望服务器端代码不是客户端.wsimport创建客户端.您使用哪个工具从WSDL文件创建服务器端代码?

java wsdl wsdl2java

20
推荐指数
3
解决办法
6万
查看次数

由于"无法加载外部实体",无法连接到Magento SOAP API v2

我无法使用PHP连接到Magento SOAP API v2.发生的错误是:

PHP致命错误:未捕获的SoapFault异常:[WSDL] SOAP-ERROR:解析WSDL:无法从' http://www.example.com/index.php/api/v2_soap/index/wsdl/1/ ' 加载:无法加载外部实体" http://www.example.com/index.php/api/v2_soap/index/wsdl/1/ "

看起来,正在加载WSDL,但它不包含外部SOAP文件.


PHP连接代码:

$client = new SoapClient('http://www.example.com/api/v2_soap?wsdl=1');
$session = $client->login('username', 'password');
Run Code Online (Sandbox Code Playgroud)

从v2_soap剪切?wsdl = 1文件:

<service name="MagentoService">
    <port name="Mage_Api_Model_Server_V2_HandlerPort" binding="typens:Mage_Api_Model_Server_V2_HandlerBinding">
        <soap:address location="http://www.example.com/index.php/api/v2_soap/index/"/>
    </port>
</service>
Run Code Online (Sandbox Code Playgroud)

Magento版本是1.5.1.0.

php soap wsdl magento

20
推荐指数
1
解决办法
3万
查看次数

如何使用WSDL完全填充的请求生成SOAP消息,而无需代码生成

我想问你如何在WSDL文件的基础上以XML格式生成SOAP请求/响应.目标平台是JVM,因此可以使用多种语言(例如Java,Scala,Groovy,JRuby,Jython等).SOAP请求/响应生成应该完全在XML级别上完成,而不需要任何类生成和类加载(在这种情况下,WSDL2Java,JAXB或类似方法是不合适的).应该使用开源组件以编程方式完成生成.生成技术应该支持document-literal,rpc-encoded和rpc-literal风格,因此生成器应该处理参数的正确编码.请求/响应消息应该是完全填充的 - >即使对于空/空值,也应生成空节点.

长话短说 - >我想以编程方式完成SoapUI IDE中可行的事情.我已经看过不同的Java相关库/框架(SAAJ,WSDL4J)或Ruby(Savon),但我正在努力进一步推动它.

我正在处理的示例Web服务定义(WSDL和XSD)是 stockquote-ws.wsdlstockquote-schema.xsd.

我想做的是:

SoapMessageGenerator generator = new SoapMessageGenerator("stockquote-ws.wsdl");
String request = generator.generateSoapRequest();
String response = generator.generateSoapResponse();
Run Code Online (Sandbox Code Playgroud)

在这种情况下,请求应如下所示:

<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:stoc="http://centeractive.com/stockquote.wsdl" xmlns:stoc1="http://centeractive.com/stockquote.xsd">
   <soapenv:Header/>
   <soapenv:Body>
      <stoc:GetLastTradePrice soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
         <stoc1:TradePriceRequest>
            <tickerSymbol xsi:type="xsd:string">?</tickerSymbol>
         </stoc1:TradePriceRequest>
      </stoc:GetLastTradePrice>
   </soapenv:Body>
</soapenv:Envelope>
Run Code Online (Sandbox Code Playgroud)

......而响应应如下所示:

<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:stoc="http://centeractive.com/stockquote.wsdl" xmlns:stoc1="http://centeractive.com/stockquote.xsd">
   <soapenv:Header/>
   <soapenv:Body>
      <stoc:GetLastTradePriceResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
         <stoc1:TradePrice>
            <price xsi:type="xsd:float">?</price>
         </stoc1:TradePrice>
      </stoc:GetLastTradePriceResponse>
   </soapenv:Body>
</soapenv:Envelope>
Run Code Online (Sandbox Code Playgroud)

java soap wsdl web-services

20
推荐指数
2
解决办法
6万
查看次数

如何在wsdl Web服务中确定方法名称和参数

我在Web服务和KSoap库方面遇到的问题很少.我在询问之前搜索了这个主题,却找不到任何东西.

这是一个问题:我有一个像http://www.anyting.com/bulkService.wsdl这样的网址,但我没有任何关于它的文档.我可以确定仅检查wsdl文件的METHOD NAMENAMESPACE参数.示例:http://www.webservicex.net/isbn.asmx?WSDL

如果可能,我在哪里可以找到发送请求的方法参数.

我正在使用Android Project,所以我使用KSoap2,我需要METHOD NAME和NAMESPACE.

小问题:myservice.wsdl url 是否与myservice.asmx相同?WSDL

感谢您的支持..

编辑#1:我花了很多时间,我得到了正确的参数:

  • METHOD_NAME: Web服务可能有多种方法.如果找不到有关Web服务的文档,可以在wsdl中搜索方法名称.如果您的Web服务扩展名是.asmx,那么您的wsdl就像../services/service.asmx?wsdl.打开wsdl文件并搜索"操作名称",这个参数就是你的方法.选择要使用的内容.

  • NAMESPACE:打开你的wsdl并搜索"targetNamespace".此参数是您的NAMESPACE参数.

  • SOAP_ACTION:此参数由Method Name和Namespace组成.像String SOAP_ACTION = NAMESPACE + METHOD_NAME一样使用它;

    • URL:在wsdl中查找"service"元素.此元素包含"wsdlsoap:address location ="此地址是您的Web服务的URL.

parameters wsdl ksoap2

20
推荐指数
2
解决办法
5万
查看次数