【问题标题】:Can't get an output while calling java web service using php使用php调用java Web服务时无法获得输出
【发布时间】:2015-08-25 06:57:58
【问题描述】:

我已经使用 java 创建了一个 Web 服务。我使用以下代码使用 php 调用 Web 服务。

$client = new SoapClient("http://localhost:8080/imageCom/wsdl/CompareImage.wsdl");
$stock = "http://localhost/pic/blueTshirts/b10.jpg";
$parameters= array("url"=>$stock);
$values = $client->checkSimilarity($parameters);       
var_dump($values);

当我运行代码时,我得到以下输出。但它不显示结果

输出:object(stdClass)#2 (0) { }

这是我的 WSDL

<wsdl:definitions xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="http://simalarity.imageCom" xmlns:intf="http://simalarity.imageCom" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://simalarity.imageCom">
<!--
WSDL created by Apache Axis version: 1.4
Built on Apr 22, 2006 (06:55:48 PDT)
-->
<wsdl:types>
<schema xmlns="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://simalarity.imageCom">
<element name="checkSimilarity">
<complexType>
<sequence>
<element name="url" type="xsd:string"/>
</sequence>
</complexType>
</element>
<element name="checkSimilarityResponse">
<complexType/>
</element>
</schema>
</wsdl:types>
<wsdl:message name="checkSimilarityRequest">
<wsdl:part element="impl:checkSimilarity" name="parameters"></wsdl:part>
</wsdl:message>
<wsdl:message name="checkSimilarityResponse">
<wsdl:part element="impl:checkSimilarityResponse" name="parameters"></wsdl:part>
</wsdl:message>
<wsdl:portType name="CompareImage">
<wsdl:operation name="checkSimilarity">
<wsdl:input message="impl:checkSimilarityRequest" name="checkSimilarityRequest"></wsdl:input>
<wsdl:output message="impl:checkSimilarityResponse" name="checkSimilarityResponse"></wsdl:output>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="CompareImageSoapBinding" type="impl:CompareImage">
<wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="checkSimilarity">
<wsdlsoap:operation soapAction=""/>
<wsdl:input name="checkSimilarityRequest">
<wsdlsoap:body use="literal"/>
</wsdl:input>
<wsdl:output name="checkSimilarityResponse">
<wsdlsoap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="CompareImageService">
<wsdl:port binding="impl:CompareImageSoapBinding" name="CompareImage">
<wsdlsoap:address location="http://localhost:8080/imageCom/services/CompareImage"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>

我做错了什么?请帮我。

【问题讨论】:

  • 不,我使用 eclipse 创建了 Web 服务。首先我创建了一个动态 Web 项目并添加了 java 类。然后为该 java 类创建 Web 服务。我使用 java 中的示例测试客户端测试了 Web 服务。效果很好。

标签: java php web-services


【解决方案1】:

问题是你得到了标准的类对象数组作为回报。

您必须相应地提取值

print_r($array) 将递归打印你的数组。

你也可以像下面这样循环遍历一个对象数组,

foreach ($array as $key => $object) {
echo $object->object_property;
}

将数组视为事物的集合。这是一个袋子,您可以在其中存储您的东西并为它们提供唯一的 ID(密钥)并访问它们。

【讨论】:

  • 当我运行 print_r($array) 时,我得到的输出是“stdClass Object ()”
  • 它应该返回一个值。我使用java客户端对其进行了测试。它给了我价值。
  • 它在 glassfish 服务器控制台中打印输出。但是如何在php页面打印呢?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多