有使用 SOAP4R 的 WSDL 解析器的示例吗?我正在尝试列出 WSDL 文件的所有操作,但我无法弄清楚:( 你能给我发布一些教程吗?谢谢
我正在尝试研究WCF Web服务,但我对协议ABC(地址,绑定和合同)有点困惑.我知道每一个是什么,但我看不出它和协议WSDL之间的区别.对我来说,两者都是一样的.
有什么区别?
真的感谢
我有一个wsdl的网络服务.我想使用此wsdl文件生成soap请求消息的结构.使用wsdl文件生成示例soap请求消息的最佳方法是什么?我希望这可以使用基于java的技术完成.
谢谢
我正在尝试创建一个动态Web服务,其中我将期望Java哈希映射或参数的数组列表.
我在类代码中使用以下代码:
package demo;
import java.util.ArrayList;
import javax.jws.WebService;
@WebService
public class HashMapTest {
public HashMapTest() {
super();
}
public int getResponse(ArrayList<String> hm) {
return hm.size();
}
}
Run Code Online (Sandbox Code Playgroud)
我使用的是IDE:Oracle Jdeveloper 11g.当我在同一个中使用向导时,输出WSDL如下所示:
<?xml version="1.0" encoding="UTF-8" ?>
<wsdl:definitions
name="HashMapTestService"
targetNamespace="http://demo/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:tns="http://demo/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"
>
<wsdl:types>
</wsdl:types>
<wsdl:portType name="HashMapTest">
</wsdl:portType>
<wsdl:binding name="HashMapTestSoapHttp" type="tns:HashMapTest">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
</wsdl:binding>
<wsdl:service name="HashMapTestService">
<wsdl:port name="HashMapTestPort" binding="tns:HashMapTestSoapHttp">
<soap:address location="http://localhost:7101/DemoServer-Demo-context-root/HashMapTestPort"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
Run Code Online (Sandbox Code Playgroud)
很容易看出,WSDL已损坏且无法使用.
它只是Jdeveloper中的一个错误,还是我们不能在Web服务中使用Collections API作为参数?
请帮忙
我正在开发一个基于SOAP的SOA项目.好吧,我在互联网上阅读了很多教程,但我仍然有同样的问题,这是所有文章和博客,甚至eclipse的官方文档告诉你如何使用IDE助手或这样的API和框架(例如:JAX-WS, CXF)创建一个Web服务,并为您提供SOAP,WSDL和UDDI的一些定义,但没有一个解释SOA如何工作,发布和部署WS的过程以及C/S req/resp如何使用所有这些实体SOAP,WSDL和UDDI以及SOA项目中存在的其他文件(XML文件和Java文件)来完成远程Web服务的调用过程.我已经阅读了很多电子书,但仍然不了解SOA的工作原理.pliiiz我需要你的帮助,我真的很不安和困惑.提前谢谢了.
我只有一个与大型机通信的Web服务,我不管理大型机只是.Net部分.
一切都工作正常,直到上周.我刚刚在服务调用服务上的Input函数时开始收到此错误
Messege:
"Abend in target program"
资源:
System.Web.Services
堆栈跟踪:
at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)
at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
at ws.UIBP0012Service.UIBP0012Operation(ProgramInterface UIBP0012Operation1)
at CW.BusinessLayer_C.boServiceIVRTwo.Traer_Perfil_IVRTwo()
Run Code Online (Sandbox Code Playgroud)
请帮助,如果您需要任何其他信息,请发表评论
我有一个wsdl定义了一个模式:
<xsd:schema elementFormDefault="unqualified"
targetNamespace="http://www.xpto.com/xpto">
Run Code Online (Sandbox Code Playgroud)
和元素:
<xsd:element name="insertResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element maxOccurs="1" minOccurs="1" name="sys_id"
type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="1" name="table"
type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="1" name="display_name"
type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="1" name="display_value"
type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="1" name="status"
type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="0" name="status_message"
type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="0" name="error_message"
type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
Run Code Online (Sandbox Code Playgroud)
但是当我执行操作并获得响应时,SoapUI说它无效:
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SOAP-ENV:Body>
<insertResponse xmlns="http://www.xpto.com/xpto">
<sys_id>something</sys_id>
<table>something</table>
<display_name>number</display_name>
<display_value>something</display_value>
<status>something</status>
</insertResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Run Code Online (Sandbox Code Playgroud)
SoapUI消息(包含易读性的行):
line 4: Expected element 'sys_id' instead of
'sys_id@http://www.xpto.com/xpto' here in element
insertResponse@http://www.xpto.com/xpto
Run Code Online (Sandbox Code Playgroud)
如果我将WSDL更改为包含elementFormDefault="qualified"
,则在模式中,相同的响应是有效的.
为什么没有这个响应无效 …
这是一个wsdl服务链接:http://www.webservicemart.com/uszip.asmx? WSDL
如果我运行以下命令:
wsimport -s src -d bin http://www.webservicemart.com/uszip.asmx?WSDL
此命令在/ src目录中生成Java源代码,并在/ bin目录中生成相对于发出命令的目录的已编译.class文件.这些生成的类可用于访问远程Web服务.
通过发出以下命令,创建了一个jar文件zipws.jar,其中包含com.webservicemart.ws包中的类:
我可以将这个jar添加到java项目的构建路径中并使用它.
有没有办法让我可以用maven2创建一个java项目,并在POM.xml中指定这个wsdl url并将jar直接下载到我的本地机器中?如果您需要更多信息,请与我们联系.
我正在使用PHP来发出SOAP请求.我确实有来自第三方的Web服务的信息.基本上他们给了我什么:
我很新,但我能理解PHP SOAP的工作原理.但是在这个例子中,我发现调用的URL http://xx.xx.xx.xx/services/myservice?wsdl
与我对我的内容并不完全相同.这里的其他问题是我应该问他们什么?也许wsdl文件的名称是什么?
到目前为止,我有这个代码与我:
try{
$client = new SoapClient("http://xx.xx.xx.xx:xxxxx/some/services/BasicDo?wsdl", array('login'=>"myusername",'password'=> "mypwd"));
}
catch(SoapFault $fault) {
trigger_error("SOAP Fault: (faultcode: {$fault->faultcode}, faultstring: {$fault->faultstring})", E_USER_ERROR);
}
Run Code Online (Sandbox Code Playgroud)
但是从控制台,我收到状态500内部服务器错误.我不知道这是怎么回事,我期待来自catch块的东西.有人请告诉我这个.先感谢您.
我有一个带有多个 XSD 模式的 Spring Boot 项目(我使用的是 Spring-WS)。
如果我使用 Spring 的 PayloadValidatingInterceptor 来验证请求和响应,它只适用于最新的设置模式。
例如:
public void addInterceptors(List<EndpointInterceptor> interceptors) {
PayloadValidatingInterceptor validatingInterceptor = new PayloadValidatingInterceptor();
validatingInterceptor.setValidateRequest(true);
validatingInterceptor.setValidateResponse(true);
validatingInterceptor.setXsdSchema(getFirstSchema());
validatingInterceptor.setXsdSchema(getSecondSchema());
interceptors.add(validatingInterceptor);
super.addInterceptors(interceptors);
}
Run Code Online (Sandbox Code Playgroud)
此代码段将使 Spring 仅验证第二个模式,而不是第一个。我尝试创建多个 PayloadValidatingInterceptors 以使用 super.addInterceptors(interceptors); 添加它们,但它也不起作用。我能找到的唯一响应(使用 Java 而不是 XML)来自 2009 年:
https://jira.spring.io/browse/SWS-481
有谁知道基于 Java 的解决方案来验证来自同一项目中多个 XSD 的请求和响应?
我正在尝试使用 NTLM 身份验证进行 SOAP Web 服务调用,但它不起作用。
我使用了 WSDL 服务。
到目前为止我做了什么:
BasicHttpBinding binding = new BasicHttpBinding();
EndpointAddress address = new EndpointAddress("http://uri.test/");
_client = new TEST_PortClient(binding, address);
if (_client.ClientCredentials != null)
{
_client.ClientCredentials.Windows.AllowNtlm = true; // this method is deprecated
_client.ClientCredentials.Windows.ClientCredential.UserName = "username";
_client.ClientCredentials.Windows.ClientCredential.Password = "password";
}
_client.Open(); // this works successfully
string message = string.Empty;
if (_client.TestConnection(ref message)) // this throw an exception *
{
// do something
}
Run Code Online (Sandbox Code Playgroud)
抛出的异常是:
The HTTP request is unauthorized with client authentication scheme 'Anonymous'. The …
我正在使用 SOAP API 来获取带有应该返回的 cookie 的身份验证密钥。
from zeep import Client
client = Client("AuthenticationService.xml")
result = client.service.ValidateUser(username, password, "")
result
Run Code Online (Sandbox Code Playgroud)
然而,结果是,我得到了 True 布尔值,但没有包含身份验证密钥的 Cookie。
从下图中,您可以看到使用 SoapUI 的同一请求返回一个 cookie。我想知道如何在 Python 中做到这一点。