2012-08-29 89 views
0

我有下面的php webservice代碼,我想這樣做,以便我可以在java中調用這個web服務。 我需要先生成wsdl?然後用wsdl生成java web服務存根?我怎樣才能在java中調用它。以及我需要使用什麼工具。謝謝。從java調用php的web服務

<?php include_once("../../lib/config.php"); ?> 
<?php 
if(!extension_loaded("soap")){ 
    dl("php_soap.dll"); 
} 

ini_set("soap.wsdl_cache_enabled","0"); 
$server = new SoapServer("membersearch.wsdl"); 

function doMyMemberSearch($membernumber){ 

    $sqlMemberInfo = mysql_query("SELECT * FROM Member_Info WHERE Member_Number = '".$membernumber."'"); 
    $rowMemberInfo = mysql_fetch_array($sqlMemberInfo); 

    $arr[] = array(
      "anniversary" => $rowMemberInfo['Anniversary'], 
      "club" => $rowMemberInfo['Club'], 
      "level"=> $rowMemberInfo['Level'], 
      "delivery"=> $rowMemberInfo['Delivery'], 
      "firstname"=> $rowMemberInfo['First_Name'], 
      "lastname"=> $rowMemberInfo['Last_Name'], 
      "birthday"=> $rowMemberInfo['Birthday'], 
      "spousefirst"=> $rowMemberInfo['Spouse_First'], 
      "spouselast"=> $rowMemberInfo['Spouse_Last'], 
      "spousebirthday"=> $rowMemberInfo['Spouse_Birthday'], 
      "signuploc"=> $rowMemberInfo['Signup_Loc'], 
      "status"=> $rowMemberInfo['Status'] 

     ); 
      if (isset($rowMemberInfo['Anniversary'])) { 
       return $arr; 
      }else { 
       throw new SoapFault("Server","Unknown Member Number '$membernumber'."); 
     } 
} 




$server->AddFunction("doMyMemberSearch"); 
$server->handle(); 
?> 

回答

0

WSDL是與實現語言無關的。因此,它是用PHP,C#,Java還是任何其他語言編寫都沒關係。 您需要獲取服務的.wsdl文件。通常情況下,您可以通過將瀏覽器指向服務URL並添加查詢字符串'?WSDL'來獲取。

例子:

http://www.example.com/theWebService?WSDL 

一旦你有,你可以使用Apache CXF,阿帕奇Axis2中,春季WS或任何其他Web服務框架生成Java客戶端存根代碼。