|
Replies:
6 -
Pages:
1
Last Post:
Sep 13, 2008 3:53 PM
by:
boettchergbr »
|
|
|
|
|
|
|
#90001 : XML error on line 1 col 48 byte 50 SYSTEM or PUBLIC, the URI is mi
Posted:
Sep 10, 2008 12:56 AM
|
|
Hallo.
Ich versuche nun schon seit einiger Zeit das sample_GetCategories ans laufen zu bringen. Nachdem ich alle anderen Probleme und Fehler beseitigt habe bleibt mir immer noch die Fehlermeldung "#90001 : XML error on line 1 col 48 byte 50 SYSTEM or PUBLIC, the URI is missing" und ich weiß nicht was ich ändern muss. Ich hab bereits nach dem Fehler gegoogelt aber auch da nix gefunden. Kann mir vielleicht jemand weiterhelfen wo ich ansetzen muss um den Fehler zu finden ?
Gruß Michael
|
|
|
|
|
|
Re: #90001 : XML error on line 1 col 48 byte 50 SYSTEM or PUBLIC, the URI is mi
Posted:
Sep 10, 2008 1:15 AM
|
|
Hallo,
also im API - TestTool funktioniert es gut, vielleicht hilft es ja:
<?xml version="1.0" encoding="utf-8"?> <GetCategoriesRequest xmlns="urn:ebay:apis:eBLBaseComponents"> <RequesterCredentials> <eBayAuthToken>Auth-Token</eBayAuthToken> </RequesterCredentials> <DetailLevel>ReturnAll</DetailLevel> <ErrorLanguage>de_DE</ErrorLanguage> <Version>579</Version> <Site>Germany</Site> </GetCategoriesRequest>
Liefert dann sämtliche Kategorien der deutschen Seite.
Grüße, Mario
|
|
|
|
|
|
Re: #90001 : XML error on line 1 col 48 byte 50 SYSTEM or PUBLIC, the URI is mi
Posted:
Sep 10, 2008 2:06 AM
|
|
Hallo.
Danke erstmal für die Antwort, aber leider kann ich damit nicht wirklich was anfangen. Meine Kenntnisse in XML sind momentan leider noch ziemlich mau, weswegen ich das ganze auch mit dem Toolkit für PHP versuche.
Mein PHP-Code sieht so aus:
<?php require_once 'setincludepath.php'; require_once 'EbatNs/GetCategoriesRequestType.php'; require_once 'EbatNs/EbatNs_Environment.php';
class sample_GetCategories extends EbatNs_Environment { public function dispatchCall ($params) { $req = new GetCategoriesRequestType(); $req->setCategoryParent($params['CategoryParent']); $res = $this->proxy->GetCategories($req); if ($this->testValid($res)) { $this->dumpObject($res); return (true); } else { return (false); } } }
$x = new sample_GetCategories(); $x->dispatchCall ( array ( 'CategoryParent' => '1' ) ); ?>
Ich habe mal die Bemerkungen rausgenommen um den Code nicht unnötig lang zu posten.
Soweit ich das in der Klasse GetCategoriesRequestType sehe, wird die URN hier fest angegeben: parent::__construct 'GetCategoriesRequestType', 'urn:ebay:apis:eBLBaseComponents');
und die uri wird hier fest angegeben:
'nsURI' => 'http://www.w3.org/2001/XMLSchema',
Aus dem Fehler lese ich ja das ihm angeblich die URI fehlt, ich weiß aber nicht warum und wie ich diesen Fehler raus bekomme.
Gruß Michael
|
|
|
|
|
|
Re: #90001 : XML error on line 1 col 48 byte 50 SYSTEM or PUBLIC, the URI is mi
Posted:
Sep 10, 2008 4:59 AM
|
|
Hallo,
in deiner Anfrage fehlt unter anderem das Einbinden der GetCategoriesResponseType.php fuer die Ausgabe und deine API Daten (AppID, DevID, CertID und AuthToken).
Hier mal ein Beispiel:
<?php
// Unterbindet die Notices error_reporting(E_ALL ^ E_NOTICE);;
// Includes require_once 'EbatNs/EbatNs_ServiceProxy.php'; require_once 'EbatNs/GetCategoriesRequestType.php'; require_once 'EbatNs/GetCategoriesResponseType.php';
// API-Daten $session = new EbatNs_Session('config/ebay.config.php'); $cs = new EbatNs_ServiceProxy($session);
// Request (Kann man bei Bedarf ja noch anpassen ...) $req = new GetCategoriesRequestType(); $req->CategorySiteID = 77; $req->LevelLimit = 1; $req->DetailLevel = 'ReturnAll'; // Response $res = $cs->GetCategories($req);
print_r($res);
?>
Mit dem TestTool (https://developer.ebay.com/DevZone/build-test/test-tool/) kann das allerdings auch sehr gut testen ohne große XML-Kenntnisse zu haben.
Grüße, Mario
|
|
|
|
|
|
Re: #90001 : XML error on line 1 col 48 byte 50 SYSTEM or PUBLIC, the URI is mi
Posted:
Sep 10, 2008 7:56 AM
|
|
Hallo.
Stimmt, die API Daten also die Session hatte ich vergessen. Dachte das Beispiel wäre so komplett lauffähig.
Wenn ich nun dein Beispiel verwende bekomme ich folgenden Fehler: Fatal error: Cannot access protected property GetCategoriesRequestType::$CategorySiteID in /srv/www/vhosts/boettcher-computer.de/httpdocs/admin/test.php on line 18
Wenn ich die Zeilen mit
$req->CategorySiteID = 77; $req->LevelLimit = 1; $req->DetailLevel = 'ReturnAll';
weglasse bekomme ich wieder den Fehler wie zuvor, das die URI vermisst wird.
Die SideID wird doch auch schon in der Config-Datei festgelegt oder ?
Ich benutze das Toolkit für PHP5 mit PHP5. Hab früher schonmal unter PHP4 damit probiert und weniger Probleme gehabt.
Gruß Michael
|
|
|
|
|
|
Re: #90001 : XML error on line 1 col 48 byte 50 SYSTEM or PUBLIC, the URI is mi
Posted:
Sep 11, 2008 2:47 AM
|
|
Hallo,
das ist richtig, die SiteID steht in der config. Dabei handelt es sich um die SiteID an die der Request gesendet wird. Man könnte in CategorySiteID eine abweichende ID einsetzen.
Die Zeile "$req->CategorySiteID = 77" kannst du weg lassen. Ich habe das Skript nochmal direkt in der Konsole getest und es läuft. Die Fehlermeldung kann ich so nicht deuten, kannst ja nochmal ein bißchen mehr Code posten, vielleicht findet man da ja noch was.
Viele Grüße
|
|
|
|
|
|
Re: #90001 : XML error on line 1 col 48 byte 50 SYSTEM or PUBLIC, the URI is mi
Posted:
Sep 13, 2008 3:53 PM
|
|
Hallo.
Danke erstmal für die Hilfe. Der Code scheint soweit ok zu sein. Ich hatte die aktuelle EbatNS für PHP5 drauf und hab nun die ältere für PHP4 draufgespielt und es funktioniert.
Gruß Michael
|
|
|