Salut!
Ich möchte zwei Anwendungen (Mediawiki und Alfresco) über einen Webservice mit Hilfe der von Alfresco angebotenen Implementierung verbinden.
Ich kann erfolgreich Seiten erstellen, löschen, verändern und Dateien heraufladen. Will ich aber eine neue Version einer Datei heraufladen, kommt es zu dem im Folgenden beschriebenen Fehler:
PHP-Code:
Notice: Undefined property: SoapFault::$faultstring in /var/www/html/mediawiki/includes/Exception.php on line 230
SoapFault exception: [soapenv:Server.generalException] (null) in /opt/alfresco/alfresco-php-library/Alfresco/Service/WebService/AlfrescoWebService.php:74 Stack trace:
#0 /opt/alfresco/alfresco-php-library/Alfresco/Service/WebService/AlfrescoWebService.php(74): SoapClient->__soapCall('update', Array, Array, Array, Array)
#1 /opt/alfresco/alfresco-php-library/Alfresco/Service/WebService/AlfrescoWebService.php(47): AlfrescoWebService->__soapCall('update', Array)
#2 [internal function]: AlfrescoWebService->__call('update', Array)
#3 /opt/alfresco/alfresco-php-library/Alfresco/Service/Session.php(168): AlfrescoWebService->update(Array)
#4 /var/www/html/mediawiki/extensions/ExternalStoreAlfresco.php(159): Session->save()
#5 /var/www/html/mediawiki/includes/ExternalStore.php(61): ExternalStoreAlfresco->store('10.129.24.48:80...', NULL)
#6 /var/www/html/mediawiki/includes/Revision.php(676): ExternalStore::insert('alfresco://10.1...', NULL)
#7 /var/www/html/mediawiki/includes/filerepo/LocalFile.php(838): Revision->insertOn(Object(DatabaseMysql))
#8 /var/www/html/mediawiki/includes/filerepo/LocalFile.php(690): LocalFile->recordUpload2('', '', '', Array, false)
#9 /var/www/html/mediawiki/includes/SpecialUpload.php(551): LocalFile->upload('mwrepo://local/...', '', '', 1, Array)
#10 /var/www/html/mediawiki/includes/SpecialUpload.php(282): UploadForm->internalProcessUpload(NULL)
#11 /var/www/html/mediawiki/includes/SpecialUpload.php(264): UploadForm->processUpload()
#12 /var/www/html/mediawiki/includes/SpecialUpload.php(14): UploadForm->execute()
#13 [internal function]: wfSpecialUpload(NULL, Object(SpecialPage))
#14 /var/www/html/mediawiki/includes/SpecialPage.php(678): call_user_func('wfSpecialUpload', NULL, Object(SpecialPage))
#15 /var/www/html/mediawiki/includes/SpecialPage.php(464): SpecialPage->execute(NULL)
#16 /var/www/html/mediawiki/includes/Wiki.php(193): SpecialPage::executePath(Object(Title))
#17 /var/www/html/mediawiki/includes/Wiki.php(45): MediaWiki->initializeSpecialCases(Object(Title), Object(OutputPage), Object(WebRequest))
#18 /var/www/html/mediawiki/index.php(90): MediaWiki->initialize(Object(Title), Object(OutputPage), Object(User), Object(WebRequest))
#19 {main}
Hier habe ich die übergebenen Parameter ausgeben lassen, die unteren sind die, bei denen der Fehler ausgelöst wird:
PHP-Code:
ARGUMENTS:Array (
[0] => Array (
[username] => test
[password] => test ) )
OPTIONSArray ( )
INPUT_HEADERSArray ( )
OUTPUT_HEADERSArray ( )
ARGUMENTS:Array (
[0] => Array (
[store] => Array (
[scheme] => workspace
[address] => SpacesStore )
[query] => Array (
[language] => lucene
[statement] => PATH:"app:company_home/cm:Projects/cm:Archiv/cm:mediawiki/cm:mediawiki" )
[includeMetaData] => ) )
OPTIONSArray ( )
INPUT_HEADERSArray (
[0] => SoapHeader Object (
[namespace] => http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd
[name] => Security
[data] =>
[mustUnderstand] => 1 ) )
OUTPUT_HEADERSArray ( )
ARGUMENTS:Array (
[0] => Array (
[statements] => Array (
[create] => Array (
[0] => Array (
[id] => sessionTICKET_dbe78dba1923c8e76cd0dfa0419e646607ba32e60
[parent] => Array (
[store] => Array (
[scheme] => workspace
[address] => SpacesStore )
[uuid] => aa85d891-42c2-11dd-8a56-9d9dae762acd
[associationType] => {http://www.alfresco.org/model/content/1.0}contains
[childName] => {http://www.alfresco.org/model/content/1.0}Image - Herausforderung.jpg )
[type] => {http://www.alfresco.org/model/content/1.0}content
[property] => Array (
[0] => Array (
[name] => {http://www.alfresco.org/model/content/1.0}name
[isMultiValue] =>
[value] => Image - Herausforderung.jpg )
[1] => Array (
[name] => {http://www.alfresco.org/model/content/1.0}initialVersion
[isMultiValue] =>
[value] => )
[2] => Array (
[name] => {http://www.alfresco.org/model/content/1.0}autoVersion
[isMultiValue] =>
[value] => ) ) ) )
[writeContent] => Array (
[0] => Array (
[property] => {http://www.alfresco.org/model/content/1.0}content
[content] =>
[format] => Array (
[mimetype] => text/html
[encoding] => UTF-8 )
[where_id] => sessionTICKET_dbe78dba1923c8e76cd0dfa0419e646607ba32e60 ) )
[addAspect] => Array (
[0] => Array (
[aspect] => {http://www.alfresco.org/model/content/1.0}versionable
[where_id] => sessionTICKET_dbe78dba1923c8e76cd0dfa0419e646607ba32e60 ) ) ) ) )
OPTIONSArray ( )
INPUT_HEADERSArray (
[0] => SoapHeader Object (
[namespace] => http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd
[name] => Security
[data] =>
[mustUnderstand] => 1 ) )
OUTPUT_HEADERSArray ( )
Und hier ist die Funktion, aus der der Aufruf stattfindet:
PHP-Code:
class AlfrescoWebService extends SoapClient
{
[...]
public function __soapCall($function_name, $arguments=array(), $options=array(), $input_headers=array(), $output_headers=array())
{
if (isset($this->ticket))
{
// Automatically add a security header
$input_headers[] = new SoapHeader($this->securityExtNS, "Security", null, 1);
// Set the JSESSION cookie value
$sessionId = Repository::getSessionId($this->ticket);
if ($sessionId != null)
{
$this->__setCookie("JSESSIONID", $sessionId);
}
}
return parent::__soapCall($function_name, $arguments, $options, $input_headers, $output_headers);
}
[...]
}
Die PHP-Version ist 5.1.6 auf CentOS 5, soap ist installiert.
Kann mir jemand einen Hinweis auf die Ursache des Fehlers geben? Ich komme dem Ganzen einfach nicht auf die Spur und habe von der Soap-Integration keine wirkliche Ahnung.
Vielen Dank im Voraus!
lg
Nico