我正在寻找一种工具,可以基于它的WSDL为Web服务的类和方法生成Qt代码.Qt有这样的工具吗?
这个问题重复一遍
我正在尝试使用wsdl自动发现模式中的Zend_Soap_Server创建一个Web服务,但我获得了非常奇怪的效果......这里代码:server:
<?php
require_once('Zend/Soap/AutoDiscover.php');
require_once('Zend/Soap/Server.php');
require_once('Zend/Soap/Wsdl.php');
require_once('library/SoapActions.php');
$wsdl = new Zend_Soap_Autodiscover();
$wsdl->setClass('SoapActions');
if (isset($_GET['wsdl'])) {
$wsdl->handle();
} else {
$server = new Zend_Soap_Server('http://localhost:8083/server.php?wsdl');
$server->setClass('SoapActions');
$server->setEncoding('ISO-8859-1');
$server->handle();
}
Run Code Online (Sandbox Code Playgroud)
SoapActions类:
class SoapActions {
/**
* Test function
*
* @param String $a
* @param String $b
* @return String
*/
public function test1($a, $b) {
return "you passed me ".$a." ".$b;
}
/**
* Test function 2
*
* @param String $a
* @param String $b
* @return String
*/
public …Run Code Online (Sandbox Code Playgroud) 这个是杀了我......
我正在学习用PHP开发SOAP服务器,而且我遇到了一个令人讨厌的问题,谷歌没有多大帮助,尽管问题上有很多问题......
在使用我认为是一个好的WSDL实例化SOAP CLIENT之后,第一次调用soap服务器上的现有函数会产生以下异常:
SoapFault Object
(
[message:protected] => DTD are not supported by SOAP
[string:private] =>
[code:protected] => 0
[file:protected] => /var/www/soapserver/soapServerTestClient.php
[line:protected] => 7
[trace:private] => Array
(
[0] => Array
(
[function] => __call
[class] => SoapClient
[type] => ->
[args] => Array
(
[0] => testSoapService
[1] => Array
(
[0] => TESTSTRING
)
)
)
[1] => Array
(
[file] => /var/www/soapserver/soapServerTestClient.php
[line] => 7
[function] => testSoapService
[class] => SoapClient
[type] => ->
[args] …Run Code Online (Sandbox Code Playgroud) FedEx运送API是否具有SOAP端点?我找不到WSDL端点。
我正在寻找这个问题的帮助,我希望有人给我这帮助.错误如下:
致命错误:SOAP-ERROR:解析WSDL:无法从"http://example.com/index.php/api/?wsdl"加载:无法加载外部实体"http://example.com/index. php/api /?wsdl"位于第28行的/var/www/presentacion/app/code/local/Pengo/Extension/Model/Something.php
我用来连接它的代码是这样的:
$this->_soap = new SoapClient(http://example.com/index.php/api/?wsdl);
Run Code Online (Sandbox Code Playgroud)
并且它说的是错误.
我一直在谷歌,PHP论坛,在StackOverflow和Magento本身,但我找不到任何解决方案.
我所看到的是,WSDL永远不会被解析或加载,因为错误说明并且没有任何函数.
我试过像这样连接:
$options['location'] = http://example.com/index.php/api/?wsdl;
$options['uri'] = 'urn:Magento';
$this->_soap = new SoapClient(null, $options);
Run Code Online (Sandbox Code Playgroud)
像这样它不会像其他错误那样发送任何错误但是没有要使用的函数,就像在另一种情况下它没有'加载和解析WSDL一样.
我有点沮丧,因为我已经开发了这个像1个月,现在我正在做一些测试它显示这个消息,我测试了它真的是空的,新的,它工作正常.
所以任何帮助将不胜感激.
谢谢.
我需要与SOAP服务进行交互,并且这样做很麻烦; 我真的很感激任何指针.原始错误消息是:
org.apache.axis2.databinding.ADBException: Any type element type has not been given
Run Code Online (Sandbox Code Playgroud)
经过一番研究,事实证明,这是SUDS与服务器之间的分歧,如何应对
type="xsd:anyType"
Run Code Online (Sandbox Code Playgroud)
在有问题的元素上.
我已经确认使用SOAPUI,经过建议,可以通过以下步骤解决问题:
那么,SUDS目前在哪里这样做:
<SOAP-ENV:Envelope ... xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<ns3:Body>
<ns0:method>
<parameter>
<values>
<table>
<key>EMAIL_ADDRESS</key>
<value>example@example.org</value>
</table>
</values>
</parameter>
</ns0:method>
Run Code Online (Sandbox Code Playgroud)
它应该产生这个:
<SOAP-ENV:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" ... xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<ns3:Body>
<ns0:method>
...
<parameter>
<values>
<table>
<key xsi:type="xsd:string">EMAIL_ADDRESS</key>
<value xsi:type="xsd:string">example@example.org</value>
</table>
</values>
</parameter>
</ns0:method>
Run Code Online (Sandbox Code Playgroud)
有没有正确的方法来做到这一点?我已经看到了使用ImportDoctor或MessagePlugins的建议,但还没有真正了解如何实现所需的效果.
我在NetBeans 7.1中创建了两个webservices客户端,模仿他们在他们网站上的教程.
我刚刚针对位于http位置的wsdl文件做了第一个,并且使用webservice没有问题
我目前正在使用的Web服务有一个位于https位置的wsdl文件.服务的设置顺利完成.与第一个的唯一区别是弹出窗口警告我安全证书,我接受了.服务,生成的源,META-INF等都已成功创建.wsdl文件的本地副本存储在我的电脑上的src/..文件夹下.
但是,一旦我运行我的代码,我收到此错误:
找不到' https://-domain-.net/-XYZServices-/-ABCXML?wsdl-'wsdl .将资源正确放置在类路径中.
我在Stackoverflow和其他地方发现了几个类似的问题,但没有真正解决我的问题.无论如何,我尝试了几个建议:
我检查了jax-ws-catalog.xml文件,发现上面引用的url映射到存储wsdl本地副本的本地文件夹.我检查了本地文件夹是否实际包含wsdl文件 - 它确实.我尝试在jax-ws-catalog.xml文件中编辑url以指向端口8080和8081 - 没有快乐.
我想这是一个安全问题,但不知道如何解决这个问题.
任何人都可以指出我在这里正确的方向.
仅供参考:我是java和NetBeans的新手.
谢谢.
我正在使用Apache CXF Framework,我在cxf-servlet.xml中指定了Restful以及Soap Webservice,在部署项目并通过url请求服务列表为htt:// SystemIP:8080/WebServicesExample/services /出现具有SOAP和REST服务的服务列表,有没有办法隐藏列表中列出的REST服务?
我有两个服务器:一个用于开发,可以轻松访问WEB,另一个用于生产,只能使用代理访问WEB.
我想从我的生产服务器调用SOAP WEB服务.
以下是代码(URL是假的):
$url = 'https://www.webservice.com/soap.php';
$wsdl = 'https://www.webservice.com/soap.php?wsdl';
$client = new SoapClient
(
$wsdl,
array
(
'location' => $url,
'proxy_host' => 'www.myproxy.com',
'proxy_port' => 8080,
)
);
$namespace = 'urn:mynamespace';
$header = array
(
'header1' => 'H1',
'header2' => 'H2',
'header3' => 'H3',
);
$client->__setSoapHeaders(new SoapHeader($namespace, 'myHeader', $header));
$params = array
(
'param1' => 'val1',
'param2' => 'val2',
'param3' => 'val3',
);
$result = $client->method($params);
Run Code Online (Sandbox Code Playgroud)
我从我的开发服务器运行它,我得到了预期的结果.现在我从我的生产服务器运行它,我得到:
PHP Warning: SoapClient::SoapClient(https://www.webservice.com/soap.php?wsdl): failed to open stream: HTTP request failed! HTTP/1.1 400 …Run Code Online (Sandbox Code Playgroud) 我在Jetty上部署了一个Web服务.我使用SOAP UI通过链接调用它http://ip:port/DefaultRequestListener?workflow=WsdlCPF&soapAction=Import,它的工作原理.我一直在使用在网址末尾有?wsdl的服务,但现在我很困惑.为什么在url的末尾没有?wsdl?