SoapFault异常:从PHP访问Java Web服务时[HTTP]不支持的媒体类型 - java

我正在尝试使用Zend Framework v1.9.0中的Zend_Soap_Client连接到Java Web服务:

<?php
include( 'Zend/Loader/Autoloader.php');
$autoloader = Zend_Loader_Autoloader::getInstance();
$client = new Zend_Soap_Client('https://webservice.com/webservice-war/webservice?wsdl'
    , array('encoding'=> 'UTF-8'));

try{
    $result = $client->find_customer(array('username' => 'user', 
                         'password' => '123'), array('city' => 'some city'));
} catch(Exception $e){
    echo $e;
}

echo '<pre>' . $client->getLastRequestHeaders() . '</pre>'; 
?>

输出:

SoapFault exception: [HTTP] Unsupported Media Type in 
/Library/ZendFramework-1.9.0/library/Zend/Soap/Client.php:937 
Stack trace: 
 #0 [internal function]:
SoapClient->__doRequest('_doRequest(Object(Zend_Soap_Client_Common),
    '__doRequest('__soapCall('find_customer', Array, NULL, NULL, Array) 
 #6 [internal function]:  
 Zend_Soap_Client->__call('find_customer', Array) 
 #7 /Users/webservicetest/index.php(8): 
 Zend_Soap_Client->find_customer(Array, Array) 
 #8 {main}

POST /webservice-war/webservice HTTP/1.1
Host: webservice.com
Connection: Keep-Alive
User-Agent: PHP-SOAP/5.2.6
Content-Type: application/soap+xml; charset=utf-8; action=""
Content-Length: 315

知道有什么问题吗?网址是正确的,因为调用时我得到了可用的功能

$client->getFunctions()

参考方案

根据this listing,异常指示托管Web服务的服务器对您的请求编码不满意:

指示对等HTTP服务器
不支持使用的Content-type
编码请求消息。的
消息交换被认为具有
完成失败。

因此,您应该向Web服务提供商咨询有关他们期望的内容类型/编码的信息。

如果您使用SOAP_1_2,则可能的解决方案是将其更改为SOAP_1_1,因为这会更改发出的请求。

httpURLConnection vs Apache Commons http - java

我只是想知道使用Java默认HttpURLConnection类是否有任何问题。某种错误使您切换到Apache Commons。还是仅仅是类公开的(丑陋的)接口证明了第三方http lib的诞生? 披露:我听到了一些反对java.net的争论,但有一些严重的问题,但是我很难相信,在多次发布JDK之后,属于Java核心发行版的类仍然存在问题。 参考方案 使我进…

如何使用Java创建docx文件? - java

我正在尝试使用Java创建.docx文件,但由于某些原因我无法打开该文件。错误来自“文件内容有问题”。有谁知道如何解决这个问题? 参考方案 尝试了多个库这是免费的。 http://www.docx4java.org/trac/docx4j还要检查aspose(不是免费的) http://www.aspose.com/categories/java-compo…

如何使JVM启动更快? - java

This question already has answers here: Closed 7 years ago. Possible Duplicate: How to speed up Java VM (JVM) startup time?我正在用Java(或可能是另一种基于JVM的语言)编写命令行实用程序。问题是JVM启动时间。例如,JVM的启动速度…

Java:正则表达式模式匹配器是否有大小限制? - java

我的模式类似于OR:“word1 | word2 | word3”我大约有800个字。可能有问题吗? 参考方案 您仅受记忆和理智的限制。 :)

Java:线程池如何将线程映射到可运行对象 - java

试图绕过Java并发问题,并且很难理解线程池,线程以及它们正在执行的可运行“任务”之间的关系。如果我创建一个有10个线程的线程池,那么我是否必须将相同的任务传递给池中的每个线程,或者池化的线程实际上只是与任务无关的“工人无人机”可用于执行任何任务?无论哪种方式,Executor / ExecutorService如何将正确的任务分配给正确的线程? 参考方案 …