Posts:
2
Registered:
11/3/09
|
|
|
|
Error : No port for method 'merchant:(null)'
Posted:
Nov 3, 2009 9:03 AM
|
|
|
Hi all
I'm posting here after long searches among this forum and other resources, without any results.
I use the Amazon SOAP API with PHP 5 and the NuSOAP library.
The problem occurs when I send Amazon a _POST_ORDER_FULFILLMENT_DATA_ message with an attached XML document. In response, I get the error mentionned in the title : No port for method 'merchant:(null)'.
Here is the content of the request sent :
POST /gateway/merchant-interface-mime HTTP/1.0 Host: merchant-api.amazon.co.uk:443 User-Agent: NuSOAP/0.7.3 (1.114) Content-Type: multipart/related; type="text/xml"; boundary="=_b33ccbfaded8cae0f1413c8f7ddebc48" SOAPAction: "http://www.amazon.com/merchants/merchant-interface/MerchantInterface#postDocument#KEx3YXNwY1NlcnZlci9BbXpJU0EvTWVyY2hhbnQ7TGphdmEvbGFuZy9TdHJpbmc7TG9yZy9pZG9veC93YXNwL3R5cGVzL1JlcXVlc3RNZXNzYWdlQXR0YWNobWVudDspTHdhc3BjU2VydmVyL0FteklTQS9Eb2N1bWVudFN1Ym1pc3Npb25SZXNwb25zZTs=" Authorization: Basic dGhpZXJyeUBkaW1pcHJvLmZyOm1pcmVpbGxl Content-Length: 1715
--=_b33ccbfaded8cae0f1413c8f7ddebc48 Content-Transfer-Encoding: 8bit Content-Type: text/xml; charset="UTF-8"
<?xml version="1.0" encoding="UTF-8"?> <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" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"> <SOAP-ENV:Body> <merchant> <merchantIdentifier xsi:type="xsd:string">XXXX</merchantIdentifier> <merchantName xsi:type="xsd:string">XXXX</merchantName> </merchant> <messageType xsi:type="xsd:string">_POST_ORDER_FULFILLMENT_DATA_</messageType> <doc xsi:type="xsd:string" href="cid:f47701b78edf2aaf597db6bdbb2cdd95"></doc> </SOAP-ENV:Body> </SOAP-ENV:Envelope>
--=_b33ccbfaded8cae0f1413c8f7ddebc48 Content-Transfer-Encoding: 8bit Content-ID: <f47701b78edf2aaf597db6bdbb2cdd95> Content-Type: text/xml Content-Disposition: attachment
<?xml version="1.0"?> <AmazonEnvelope xsi:noNamespaceSchemaLocation="amzn-envelope.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <Header> <DocumentVersion>1.01</DocumentVersion> <MerchantIdentifier>XXXX</MerchantIdentifier> </Header> <MessageType>OrderFulfillment</MessageType> <Message> <MessageID>1</MessageID> <OrderFulfillment>
<AmazonOrderID>XXX-XXXXXXX-XXXXXXX</AmazonOrderID> <MerchantOrderID>XXXXX</MerchantOrderID> <MerchantFulfillmentID>XXXXX</MerchantFulfillmentID> <MerchantFulfillmentDate>2009-11-03 12:14:27</MerchantFulfillmentDate> <FulfillmentData> <CarrierCode>UPS</CarrierCode> <ShippingMethod>Standard</ShippingMethod> </FulfillmentData> </OrderFulfillment> </Message> </AmazonEnvelope>
--=_b33ccbfaded8cae0f1413c8f7ddebc48--
And here is the response returned by the web service :
HTTP/1.1 500 Internal Server Error Date: Tue, 03 Nov 2009 16:39:00 GMT Server: Server EmbeddedSOAPServer: WASP-C++ Vespa/4.6, build 2162 (Linux i686 2.6.18-8.el5a2xen #1 SMP Tue Apr 3 16:48:05 PDT 2007) Cneonction: close Transfer-Encoding: chunked Content-Type: text/xml; charset="UTF-8"
<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" xmlns:SE="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>No port for method 'merchant:(null)' with SOAPAction '"http://www.amazon.com/merchants/merchant-interface/MerchantInterface#postDocument#KEx3YXNwY1NlcnZlci9BbXpJU0EvTWVyY2hhbnQ7TGphdmEvbGFuZy9TdHJpbmc7TG9yZy9pZG9veC93YXNwL3R5cGVzL1JlcXVlc3RNZXNzYWdlQXR0YWNobWVudDspTHdhc3BjU2VydmVyL0FteklTQS9Eb2N1bWVudFN1Ym1pc3Npb25SZXNwb25zZTs="' found</faultstring></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
Does anyone has an idea where does this "no port for method merchant:(null)" come from ? I don't use any 'merchant' method, I use 'postDocument'.
Thanks in advance to those who will have look at it...
|
|
Posts:
2
Registered:
11/3/09
|
|
|
|
Re: Error : No port for method 'merchant:(null)'
Posted:
Nov 5, 2009 2:08 AM
in response to:
sylozof
|
|
|
I found the solution. I have a class with a "wsdl" attribute, that I initialised with a distant URI to the WSDL file. Actually, the class needed a local path to the WSDL file. It works as it should now.
Thanks all.
|
|
|
Legend
|
|
Amazonian
|
|
Helpful Answer
|
|
Correct Answer
|
|