PHPからセットアップしたWebサービスを呼び出す際に問題があります。下のエラーメッセージの難読化されたアドレスhttp://XXX.XXX.XXX.XXX/test.asmx?wsdl
は、有効なWSDLを返します。私は正常にVB.netのクライアントを使用してWebサービスとしてそれを呼び出すようにしようとしましたが、私は次のメッセージを得るのDebian上でPHPからそれを呼び出すとき:問題は何をすることができ致命的なエラー:Uncaught SoapFault例外:[WSDL]
Fatal error: Uncaught SoapFault exception: [WSDL] SOAP-ERROR: Parsing WSDL: Couldn't load from 'http://XXX.XXX.XXX.XXX/test.asmx?wsdl' in /var/www/domain/mywebsite.com/public_html/catalog/fomeus/orders.php:101 Stack trace: #0 /var/www/domain/mywebsite.com/public_html/catalog/fomeus/orders.php(101): SoapClient->SoapClient('http://XXX.XXX.XXX.XXX/', Array) #1 {main} thrown in /var/www/domain/mywebsite.com/public_html/catalog/fomeus/orders.php on line 101
を?私は以下のWebサービスとPHPクライアント用のコードを含んでいます。
Webサービス:
Imports System.Web.Services
Imports System.Web.Services.Protocols
Imports System.ComponentModel
...
' To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.
' <System.Web.Script.Services.ScriptService()> _
<System.Web.Services.WebService(Namespace:="http://tempuri.org/")> _
<System.Web.Services.WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> _
<ToolboxItem(False)> _
Public Class WebService1
Inherits System.Web.Services.WebService
<WebMethod()> _
Public Function HelloWorld() As String
Return "Hello World"
End Function
End Class
PHPクライアント:
require_once($_SERVER['DOCUMENT_ROOT']."/catalog/fomeus/includes/soap/nusoap.php");
$objClient = new soapclient("http://XXX.XXX.XXX.XXX/test.asmx?wsdl",
array('trace' => 1, 'exception' => 0, 'cache_wsdl' => 0));
print_r($objClient -> HelloWorld());
それは任意の助けだ場合、私はPHPのバージョン5.2.6を使用しています。私は問題が何であるかを把握しようとしている別のフォーラムでたくさんの投稿を行ってきました。多くの人が同じ問題を抱えていますが、これまでに私が見つけた解決策のどれも私のためには働きません。どんな助けでも大歓迎です。
に取り組んで私のために働きましたか? – Nacho
SoapClientオブジェクトを作成する行の周りにtry..catchブロックをラップしてみてください。キャッチすることを忘れてはいけません。つまりcatch(Exception $ e){}ではなくcatch(SoapFault $ e){} catch内で例外フィールド(getMessageなど)を照会するか、var_dump例外を表示し、それがあなたに伝えるものを投稿します。 – Stephen
wsdlを投稿できますか? – zode64