在eclipse中创建wsdl文件时,它将名称空间设置为:
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
Run Code Online (Sandbox Code Playgroud)
为什么它使用schemas.xmlsoap.org而不是相关的w3模式?
我有一个WSDL,我需要生成一个ServiceContract(OperationContract,DataContract)...
我找到了一种方法为ASMX WebServices做到这一点,但似乎无法在WCF中找到如何做到这一点.
我试过跑步
svcutil AuthPartnerWSDL.wsdl /i /messagecontract /tcv:version35
Run Code Online (Sandbox Code Playgroud)
但是生成的接口不会反序列化进入的调用,因此服务实现的所有请求参数都是 null
我有一个Web服务,外包公司将使用我的服务.我不想打开我的互联网服务.我想只向外包公司提供wsdl文件.他们使用Delphi.这是否可以在Delphi中导入wsdl文件?
我是webservices的新手(特别是使用SOAP/WSDL)现在,.WSDL我已经完全自动生成了服务器的根目录.
如何在没有错误的情况下测试我的web服务是否正常运行(回显正确的结果)? *如何与.wsdl文件进行交互?*
问候.
我有以下问题,无法找到解决方案:
WSDL elementFormDefault="qualified"在我的CXF客户端收到的响应中,所有元素都以命名空间为前缀但JAXB抛出异常
org.apache.cxf.interceptor.Fault: Unmarshalling Error: unexpected element (uri:"unm:ENTSCWS", local:"searchReturn"). Expected elements are
at org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:661)
at org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:533)
at org.apache.cxf.jaxb.io.DataReaderImpl.read(DataReaderImpl.java:128) ...
如果我更改了WSDL elementFormDefault="unqualified"它正在工作,但我不允许更改WSDL,它应该具有前缀为命名空间的元素.
package-info.java包含annotaction:
@javax.xml.bind.annotation.XmlSchema(namespace = "unm:ENTSCWS", elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED)
package entscws;
Run Code Online (Sandbox Code Playgroud)
响应类包含注释:
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {
"searchReturn"
})
@XmlRootElement(name = "searchResponse")
public class SearchResponse {
Run Code Online (Sandbox Code Playgroud)
你知道为什么我会收到这个错误吗?
我的服务是从wsdl文件中选取的.但是发布的服务已经变得很糟糕.如果我想将wso2发布为我的wsdl文件.怎么设置?例如,我的wsdl文件是:
<wsdl:service name="CoshipServiceImplService">
<wsdl:port binding="tns:CoshipServiceImplServiceSoapBinding" name="CoshipServiceImplPort">
<soap:address location="http://X.X.X.X:7843/sysway-boss-service/cxf/CoshipService" />
</wsdl:port>
</wsdl:service>
Run Code Online (Sandbox Code Playgroud)
和WSO2发表如下:
<wsdl:portType name="CoshipServiceImplServicePortType"></wsdl:portType>
<wsdl:binding name="CoshipServiceImplServiceSoap11Binding" type="tns:CoshipServiceImplServicePortType">
</wsdl:binding><wsdl:binding name="CoshipServiceImplServiceSoap12Binding" type="tns:CoshipServiceImplServicePortType"></wsdl:binding>
<wsdl:binding name="CoshipServiceImplServiceHttpBinding" type="tns:CoshipServiceImplServicePortType"></wsdl:binding>
<wsdl:service name="CoshipServiceImplService"></wsdl:service>
It changed my port form "CoshipServiceImplPort" to "CoshipServiceImplServicePortType".
Run Code Online (Sandbox Code Playgroud) 我们项目的要求之一如下:
我们只从客户端WSDL和XSD文件获得.我们的任务是基于这些WSDL和XSD文件生成SOAP消息并提取SOAP主体.
我们应该采取的第一步是从给定的WSDL和XSD文件生成客户端代理文件.主WSDL文件有多个导入,导入的XSD文件也有一些导入.我试图通过使用SvcUtil.exe实用程序来完成客户端代理文件生成,但错误出现了.
我用这种方式运行SvcUtil.exe:
E:\ Projekti\WCF\XSD> svcutil/noconfig rosrazna.ru.xsd.SmevUnifoService.wsdl roskazna.ru.xsd.ResponseTemplate.xsd roskazna.ru.xsd.PGU_ImportRequest.xsd roskazna.ru.xsd.PGU_DataRequest.xsd roskazna. ru.xsd.PGU_ChargesResponse.xsd roskazna.ru.xsd.ExportPaymentsResponse.xsd roskazna.ru.xsd.ExportIncomesResponse.xsd roskazna.ru.xsd.ExportQuittanceResponse.xsd roskazna.ru.xsd.Ticket.xsd
但是,出现了这个错误:
Microsoft(R)服务模型元数据工具[Microsoft(R)Windows(R)Communication Foundation,版本3.0.4506.2152]版权所有(c)Microsoft Corporation.版权所有.
生成文件...警告:未生成任何代码.如果您尝试生成客户端,这可能是因为元数据文档不包含任何有效的合同或服务,或者因为发现所有合同/服务都存在于/ reference assemblies中.验证是否已将所有元数据文档传递给该工具.
警告:如果要从模式生成数据协定,请确保使用/ dataContractOnly选项.
我不得不提到我没有在SvcUtil.exe命令中从主WSDL文件中导入的XSD文件中导入.我不知道怎么把它们.
那么,如何解决这个问题呢?
先感谢您.
戈兰
情况就是这样:我们有一个Spring-MVC应用程序,现在应该提供契约优先的SOAP Web服务.在查看了一个CXF示例(wsdl_first)之后,我终于成功了:
我生成了骨架类,并且还实现了服务接口.
Tomcat 7似乎部署了一些东西:
12 Jan 2014 19:32:08,386 INFO org.apache.cxf.service.factory.ReflectionServiceFactoryBean:411 - Creating Service {urn:webservice.x.com:wsdl}IdmAdapterService from WSDL: classpath:IdmAdapterService.wsdl
Run Code Online (Sandbox Code Playgroud)
我创建了第二个应该处理webservice调用的servlet.WEB-INF/web.xml包含:
<servlet>
<servlet-name>webservices</servlet-name>
<servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>webservices</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)
WEB-INF/cxf-servlet.xml包含:
<jaxws:endpoint xmlns:tns="urn:webservice.x.com:wsdl"
id="idmAdapterImpl" address="/services/IdmAdapterService"
serviceName="tns:IdmAdapterService" endpointName="tns:IdmAdapterSoapPort"
implementor="de.y.idm.IdmAdapterImpl"
/>
Run Code Online (Sandbox Code Playgroud)
src/main/resources/cxf.xml包含:
<jaxws:endpoint name="{urn:webservice.x.com:wsdl}:IdmAdapterSoapPort"
wsdlLocation="IdmAdapterService.wsdl">
<jaxws:properties>
<entry key="schema-validation-enabled" value="true" />
</jaxws:properties>
</jaxws:endpoint>
Run Code Online (Sandbox Code Playgroud)
src/main/resources/server-applicationContext.xml包含:
<!-- HTTP Endpoint -->
<jaxws:endpoint xmlns:tns="urn:webservice.x.com:wsdl"
id="idmAdapterImpl"
address="/services/IdmAdapterService"
serviceName="tns:IdmAdapterService"
endpointName="tns:IdmAdapterSoapPort"
implementor="de.y.idm.IdmAdapterImpl">
<jaxws:features>
<bean class="org.apache.cxf.feature.LoggingFeature" />
</jaxws:features>
</jaxws:endpoint>
Run Code Online (Sandbox Code Playgroud)
当我调用URL时
http://localhost:8080/application/services/IdmAdaptorService?wsdl
Run Code Online (Sandbox Code Playgroud)
我总是最终得到
No service was found.
Run Code Online (Sandbox Code Playgroud)
并在控制台上
12 Jan 2014 19:51:53,731 DEBUG org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter:136 …Run Code Online (Sandbox Code Playgroud) 我有一个我想连接的Web服务,我无法弄清楚wsdl出了什么问题.
wsdl位于" http://marketplacebylaredoute.fr/spapi/SellerOrderService?wsdl ".然后我尝试运行svcutil http://marketplacebylaredoute.fr/spapi/SellerOrderService?wsdl并且它失败了.错误如下(仅提取)
Error: Cannot import wsdl:portType
Detail: An exception was thrown while running a WSDL import extension: System.Se
rviceModel.Description.XmlSerializerMessageContractImporter
Error: These members may not be derived.
XPath to Error Source: //wsdl:definitions[@targetNamespace='http://Redcats/Order
/SellerOrder/2.0']/wsdl:portType[@name='portType']
Run Code Online (Sandbox Code Playgroud)
知道这个wsdl可能有什么问题吗?
我正在尝试使用PySimpleSoap从荷兰政府土地登记处(WSDL)调用SOAP服务.到目前为止,我这样做是为了连接:
from pysimplesoap.client import SoapClient
client = SoapClient(wsdl='http://www1.kadaster.nl/1/schemas/kik-inzage/20141101/verzoekTotInformatie-2.1.wsdl')
Run Code Online (Sandbox Code Playgroud)
在Plamen Petrov的一个很棒的答案的帮助下,我现在明白我需要使用这个client.VerzoekTotInformatie()方法发送下面的xml .
然而,我不明白的是我如何获得所需的XML(见下文).我当然可以手动构建它,但我感觉有一种更聪明/更pythonic的方式来构建它.我可以使用pysimplesoap构建此消息xml吗?
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://www.kadaster.nl/schemas/kik-inzage/20141101" xmlns:v20="http://www.kadaster.nl/schemas/kik-inzage/ip-aanvraag/v20141101">
<soapenv:Header/>
<soapenv:Body>
<ns:VerzoekTotInformatieRequest>
<v20:Aanvraag>
<v20:berichtversie>?</v20:berichtversie>
<v20:klantReferentie>ABC</v20:klantReferentie>
<v20:productAanduiding>?</v20:productAanduiding>
<v20:Ingang>
<v20:Object>
<v20:IMKAD_KadastraleAanduiding>
<v20:gemeente>Amsterdam</v20:gemeente>
<v20:sectie>123</v20:sectie>
<v20:perceelnummer>456</v20:perceelnummer>
<v20:appartementsindex>789</v20:appartementsindex>
<v20:deelperceelnummer>10</v20:deelperceelnummer>
<v20:AKRKadastraleGemeenteCode>20</v20:AKRKadastraleGemeenteCode>
</v20:IMKAD_KadastraleAanduiding>
</v20:Object>
</v20:Ingang>
</v20:Aanvraag>
</ns:VerzoekTotInformatieRequest>
</soapenv:Body>
</soapenv:Envelope>
Run Code Online (Sandbox Code Playgroud)
[编辑]
按照文档中的示例,我现在尝试berichtversie在其中添加VerzoekTotInformatieRequest ,之后我尝试向soap-service请求.但正如你在下面看到的那样,身体仍然只有空<VerzoekTotInformatie>(没有Request),而且我得到了一个巨大的错误.我有什么想法可以构建上面的消息?
>>> client['VerzoekTotInformatieRequest'] = {'Aanvraag': {'berichtversie': 'yay'}}
>>> c.VerzoekTotInformatie()
INFO:pysimplesoap.client:POST https://service1.kadaster.nl/kik/inzage/20141101/VerzoekTotInformatieService
DEBUG:pysimplesoap.client:SOAPAction: "VerzoekTotInformatie"
Content-length: 378
Content-type: text/xml; charset="UTF-8"
DEBUG:pysimplesoap.client:<?xml …Run Code Online (Sandbox Code Playgroud)