首页 > Web开发 > 详细

关于webService的调用

时间:2017-03-15 19:24:56      阅读:149      评论:0      收藏:0      [点我收藏+]

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();

}

}


}


本文出自 “画江湖” 博客,谢绝转载!

关于webService的调用

原文:http://751756016.blog.51cto.com/6308835/1906867

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!