關於webService的調用

1、在項目WEB-INF目錄下有一個固定命名的配置文件server-config.wsdd,在該文件中作如下配置

<service name="demo" provider="java:RPC">

<parameter name="allowedMethods" value="*" />

<parameter name="className" value="hx.server.test.Demo" />

</service>

2、在web.xml中配置項目AxisServlet,如下:

    

    <servlet>

<servlet-name>AxisServlet</servlet-name>

<servlet-class>org.apache.axis.transport.http.AxisServlet</servlet-class>

</servlet>

    

    <servlet-mapping>

<servlet-name>AxisServlet</servlet-name>

<url-pattern>/services/dataSync/*</url-pattern>

</servlet-mapping>


3、Demo類如下:

package hx.server.test;


public class Demo {


public String med1(String name){

return "Hello, " + name;

}

}


4、客戶端調用,需要導入相應的axis.jar包:

package hx.client;


import java.net.MalformedURLException;

import java.net.URL;

import java.rmi.RemoteException;


import javax.xml.namespace.QName;

import javax.xml.rpc.ServiceException;


import org.apache.axis.client.Call;

import org.apache.axis.client.Service;


public class TestCall {

public static void main(String[] args) {


try {

/ 項目名/AxisServlet(web.xml)/server-config.wsdd配置文件中                的service名稱

String endpoint_1 =             "http://192.168.0.123:8080/gagbsync/services/dataSync/demo?wsdl";

Service service = new Service();

Call call = (Call) service.createCall();

call.setOperationName(new QName(endpoint_1, "med1"));  // "med1"                                         爲方法名

call.setTargetEndpointAddress(new URL(endpoint_1));

String result = (String) call.invoke(new Object[] { "小明" });

System.out.println("result=" + result);


} catch (MalformedURLException e) {

e.printStackTrace();

} catch (RemoteException e) {

e.printStackTrace();

} catch (ServiceException e) {

e.printStackTrace();

}

}


}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章