Hmm.. Ich habe das Problem gefunden, allerdings wundert mich gerade, warum das nicht viel größere Probleme gemacht hat..
Im Log des WLW kann man nachlesen, was ihm Probleme bereitet:
Code: Select all
Invalid response document returned from XmlRpc server --->
System.Xml.XmlException: There are multiple root elements. Line 2, position 2.
Das Ergebnis, das das XML RPC Plugin hier ausgibt, kann man auch schön im Logfile sehen:
Code: Select all
<br />
<b>Warning</b>: Cannot modify header information -
headers already sent in <b>serendipity_event_xmlrpc/PEAR/XML/RPC/Server.php</b>
on line <b>399</b><br />
<br />
<b>Warning</b>: Cannot modify header information -
headers already sent in <b>serendipity_event_xmlrpc/PEAR/XML/RPC/Server.php</b>
on line <b>399</b><br />
<?xml version=""1.0"" encoding=""UTF-8""?>
<methodResponse>
<params>
<param>
<value><boolean>1</boolean></value>
</param>
</params>
</methodResponse>
Offensichtlich wird hier 2 Mal versucht, einen http header zu schicken. Im Code des Plugins findet man dann folgendes:
Code: Select all
case 'frontend_xmlrpc':
// Those variables should not be set by other plugins!
header('Content-Type: text/xml');
Und später wird das File serendipity_xmlrpc.inc.php inkludiert, das seinerseits den XML_RPC_Server instanziert, der als letztes dann in jedem Fall einen http header rausschickt! Daher also der 2. HTTP Header.
Was mich wundert ist, dass das Posten usw klappt, aber nur bei der Methode metaWeblog.editPost auf die Nase gefallen wird. Wahrscheinlich deshalb, weil das eine der wenigen Methoden ist, wo ein korrekter Rückgabewert erforderlich ist. Eigentlich müsste aber jede Rückgabe des XML-RPC Plugins so ein kaputtes XML schicken, wenn ich das richtig sehe.
Allerdings: Die Kategorien konnte WLW korrekt bei mir auslesen, da muss das XML wohl ok gewesen sein.. Sehr merkwürdig..
Jedenfalls: Wenn ich das
aus obigem Codeblock auskommentiere, dann klappt auf einmal alles mit WLW! Nach dem veröffentlichen des Artikels erkennt WLW den Artikel als veröffentlicht und kann diesen nun auch nachträglich synchronisieren!
Jetzt ist die Frage: Warum ist die obige Codezeile in dem Plugin drin und warum hat sie bisher offenbar keine Probleme gemacht? Denn nach dieser Zeile wird
in jedem Fall (außer bei einer XSD Anforderung) der XML_RPC_Server instanziiert, der
in jedem Fall einen eigenen Header rausschickt. Somit müssten
immer 2 Header rausgeschickt werden mit dem entsprechenden Output?!
Hat jemand eine Idee, ob ich die Zeile problemlos streichen (und einchecken) kann, oder ist die für irgendetwas im Plugin doch noch wichtig?