2016-04-20 8 views
0

I SOAP und XQuery verwenden möchte, eine XML-Datei auf einer lokalen exist Datenbank abzufragen, aber ich bekomme die folgende Fehlermeldung im Browser:SOAP Query Error

Funktionen:

array (10) {[ 0] => string (56) "getResourceResponse getResource (getResource $ Parameter)" [1] => string (38) "queryResponse Abfrage (Abfrage $ Parameter)" [2] => string (44) "connectResponse connect (connect $ Parameter) "[3] => string (47)" retrieveResponse retrieve (ruft $ Parameter ab) "[4] => string (53)" disconnectResponse disconnect (trenne $ parameter) "[5] => string (68)" getResourceDataResponse getResourceData (getResourceData $ Parameter) "[6] => string (41)" xqueryResponse xquery (xquery $ Parameter) "[7] => string (59)" retr ieveDataResponse retrieveData (retrieveData $ Parameter)“[8] => string (77) "retrieveByDocumentResponse retrieveByDocument (retrieveByDocument Parameter $)"[9] => string (65) "listCollectionResponse Listcollection (Listcollection $ Parameter)"}

SoapFault Ausnahme: [soapenv: Server.userException] java.lang.NullPointerException in C: \ xampp \ htdocs \ phexist \ helloclient.php: 8 Stack-Trace: # 0 [interne Funktion]: SoapClient -> __ Aufruf ('xquery', Array) # 1 C: \ xampp \ htdocs \ phexist \ helloclient.php (8): SoapClient-> xquery ('Ross') # 2 {main}

Server-Code:

<?php 
include ('include/eXist.php'); 
function xquery($firstName) { 
return "Hello ".$firstName; 
//sayhello 

try 
{ 
$db = new eXist(); 
# Connect 
$db->connect() or die ($db->getError()); 

$query = 'for $line in //Orders/Taxes return $line'; 

print "<p><b>XQuery:</b></p><pre>$query</pre>"; 

# XQuery execution 
//$db->setDebug(TRUE); 
$db->setHighlight(FALSE); 
$result = $db->xquery($query) or die ($db->getError()); 
} 



ini_set("soap.wsdl_cache_enabled", "0"); // disabling WSDL cache 
$server = new SoapServer("http://localhost:8080/exist/services/Query?wsdl"); 
$server->addFunction("xquery"); 
$server->handle(); 
?> 

Clie nt Code:

<?php 
$client = new SoapClient("http://localhost:8080/exist/services /Query?wsdl"); 
echo "Functions:<br/><br/>"; 
echo var_dump($client->__getFunctions()); 
echo "<br/><br/>"; 
try 
{ 
$return = $client->xquery("Ross"); 
echo($return."<br>"); 
} 
catch(SoapFault $soapFault) 
{ 
echo ($soapFault); 

} 

?> 

Antwort

0

Sie geben das Ergebnis von 'sayhello' eher als die xquery zurück. Verteiltes Rechenmodul ??

+0

Ja, weißt du, wie ich es zum Laufen bringen kann? Ich bin nicht sehr gut darin, wie Sie sehen können. – RossH

+0

Ich mache auch dieses Modul haha, USW ?? – rejy11

+0

Ja, haha, ich habe keine Ahnung, wie ich es zum Laufen bringen kann. – RossH