java axis调用php webservevice

php webservice

这里木有使用wsdl。

<?php
$soap = new SoapServer(null,array('uri'=>"http://192.168.1.12/"));//This uri is your SERVER ip.
                                              //Register the function
//$soap->addFunction(SOAP_FUNCTIONS_ALL);
$soap->addFunction('get_cpu_rate');   
$soap->handle();

function get_cpu_rate($host_ip,$cpu_limit_max,$cpu_limit_min){
    $cpu_limit_max_per = $cpu_limit_max * 100; //
    $cpu_limit_min_per = $cpu_limit_min * 100; 
    $conn= mysql_connect("localhost", "admin", "admin") or die("Could not connect: " . mysql_error());
    mysql_select_db('mydb',$conn);
    $sql="select status from host where hostname='".$host_ip."'";
    $query=mysql_query($sql);
    $host_msg=mysql_fetch_array($query);
    if($host_msg['status']==3){
    $host_status="上线";
    $res=array();
    $sh='/var/www/snmp_exec '.$host_ip;
    exec($sh, $res, $rc);
    if($rc==0){
        $cpu_util=$res[4];
    }
    if ($cpu_util>=$cpu_limit_max_per){
        //return $cpu_util-$cpu_limit_min_per;
        return "CPU used ".$cpu_util."%is bigger than".$cpu_limit_max;
    } 
    if ($cpu_util<=$cpu_limit_min_per){
        //return $cpu_util-$cpu_limit_min_per;
        return "CPU used ".$cpu_util."%is smaller than".$cpu_limit_min;
    }
    return $cpu_util.'%';
    }else {
    $host_status="下线";
    return "down";
    }
   mysql_close($conn);
}
?>

java 端使用 axis来调用。

package com.fei;

import java.net.MalformedURLException;  
import java.rmi.RemoteException;  
import javax.xml.rpc.ServiceException;  
import org.apache.axis.client.Call;  
import org.apache.axis.client.Service;
public class javasoapclient {
    public static void main(String[] args) throws ServiceException, MalformedURLException, RemoteException {  
        String serviceUrl = "http://192.168.1.12/serverSoap.php";  
        Service service = new Service();  
        Call call = (Call) service.createCall();  
        call.setTargetEndpointAddress(new java.net.URL(serviceUrl));  
        call.setOperationName("get_cpu_rate");  
        String ip = "192.168.1.10";  
        double cpu_limit_max = 0.50;
        double cpu_limit_min = 0.01;
        String reVal = call.invoke(new Object[] {ip,cpu_limit_max,cpu_limit_min}).toString();  
        System.out.println(reVal);  
    }
}

可能用到的java 包

axis-ant.jar
axis.jar
commons-discovery-0.2.jar
commons-logging-1.0.4.jar
jaxrpc.jar
log4j-1.2.8.jar
saaj.jar
wsdl4j-1.5.1.jar

 

axis下载地址:http://www.apache.org/dist/ws/axis/1_4/

posted @ 2012-06-26 15:49  Feythin Lau  阅读(290)  评论(0编辑  收藏  举报