首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >webService学习(二)—— 调用自定义对象参数

webService学习(二)—— 调用自定义对象参数

作者头像
Java架构师必看
发布2021-05-14 16:59:06
发布2021-05-14 16:59:06
97200
代码可运行
举报
文章被收录于专栏:Java架构师必看Java架构师必看
运行总次数:0
代码可运行

webService学习(二)—— 调用自定义对象参数

本文主要内容:

1、如何通过idea进行webService Client的简单实现(不再使用wsimport的方式,其实是ide帮我们做了)

2、在webservice中调用自定义参数(自定义类)。

好,下面上货。

一、在idea的帮助下使用webService Client。

首先需要感谢一下文章:

https://my.oschina.net/nba/blog/482117

通过这篇文章能够对在自己的项目中成功的引入webService。

简单说一共两步:

1、在项目中建立好自己的包(用来存放webservice生成的文件)

2、选择webservice方式,并且生成。

点击ok后,能够在com.otherWebService包下生成对应的webservice client端的文件。

二、在webservice中调用自定义参数(自定义类)

1、首先定义一个学生类:

代码语言:javascript
代码运行次数:0
运行
复制
package com.xueyoucto.xueyou;

import javax.jws.WebMethod;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;

/**
 * Created by Administrator on 2017/1/16.
 */
public class Student {
    private String name;
    private int age;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public Student() {
    }
}

2、定义一个webService

代码语言:javascript
代码运行次数:0
运行
复制
package com.xueyoucto.xueyou;

import javax.jws.WebService;
import javax.xml.ws.Endpoint;

/**
 * Created by Administrator on 2017/1/14.
 */
@WebService
public class HelloService {

    public String testService(String params){
        return "hello " + params;
    }

    public String testStudent(Student student){
        return student.getName() + " : " + student.getAge();
    }

    public static void main(String[] args) {
        Endpoint.publish("http://localhost:8888/HelloService/",new HelloService());
        System.out.println("ok");
    }
}

3、发布webService

4、按照上面介绍的导入webservice Client的方式把HelloService导入到项目中

5、尝试调用webService

代码语言:javascript
代码运行次数:0
运行
复制
package com.firstServiceClient;

import com.otherWebService.HelloService;
import com.otherWebService.HelloServiceService;
import com.otherWebService.Student;

import javax.xml.ws.WebServiceException;

/**
 * Hello world!
 *
 */
public class App 
{
    public static void main( String[] args ) {
        System.out.println( "Hello World!" );
        try {
            HelloService helloService = new HelloServiceService().getHelloServicePort();
            String s  = helloService.testService("aabbcc");
            System.out.println(s);
            Student student = new Student();
            student.setAge(13);
            student.setName("aabbcc");
            String s2 = helloService.testStudent(student);
            System.out.println(s2);
        }catch (WebServiceException wse){
            System.out.println("服务未启动");
            wse.printStackTrace();
        }catch (Exception e){
            e.printStackTrace();
        }
    }
}

6、运行结果:

7、注意:

在webService的调用过程中,不能使用student的全构造函数。在网上查找原因的时候遇到了一些解释。主要原因就是在调用构造函数的时候,在本地其实是Student的一个代理类,并且这时候没有和服务器进行通信。只有当webservice方法被调用的时候,才会和服务器端通信。

更详细的请参考:

http://www.cnblogs.com/gisflyer/archive/2010/12/29/1919420.html

本文来源0day__,由javajgs_com转载发布,观点不代表Java架构师必看的立场,转载请标明来源出处

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • webService学习(二)—— 调用自定义对象参数
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档