首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

Web Service之Axis1.x入门3

2012-09-11 
Web Service之Axis1.x入门三???? 继上一篇《Web Service之Axis1.x入门二》后,这是第三篇。上一篇主要讲的定制

Web Service之Axis1.x入门三

???? 继上一篇《Web Service之Axis1.x入门二》后,这是第三篇。上一篇主要讲的定制发布这种发布方式,那么我们这一篇将讲解传递JavaBean对象。

???? 在上一篇的环境下进行开发。

???一.服务端?

?? 1.服务端建立一个User类

?

??? 4.wsdl效果如下

???
Web Service之Axis1.x入门3

?? 二.客户端

?? 1.客户端User类

?

package client;import java.net.MalformedURLException;import java.net.URL;import java.rmi.RemoteException;import javax.xml.namespace.QName;import javax.xml.rpc.ParameterMode;import javax.xml.rpc.ServiceException;import org.apache.axis.client.Call;import org.apache.axis.client.Service;import org.apache.axis.encoding.ser.BeanDeserializerFactory;import org.apache.axis.encoding.ser.BeanSerializerFactory;import client.bean.User;/** * @author Tankiy * @since 2011 */public class UserClient {    /**     * @param args     * @throws MalformedURLException      * @throws Exception      */    public static void main(String[] args) throws ServiceException, RemoteException, MalformedURLException {              //目标地址            String url = "http://localhost:8999/User/services/UserServer";   //只是这里修改下           //提供接口名              String serviceName = "sayHello";              //创建服务对象              Service service = new Service();              //创建调用对象              Call call = (Call) service.createCall();              //设置调用JavaBean的命名空间              QName qn = new QName("urn:UserServer", "User");        call.registerTypeMapping(User.class, qn, new BeanSerializerFactory(User.class, qn),                 new BeanDeserializerFactory(User.class, qn));        call.setTargetEndpointAddress(new URL(url));        //调用的服务器端方法        call.setOperationName(new QName("User", "getUser"));        //设置返回的类型        call.setReturnType(qn, User.class);        User user = (User)call.invoke(new Object[]{});        if(user != null) {            System.out.println(user.getUserName());        }    } }

?

? 输出结果为Tankiy.恭喜你,测试成功。

热点排行