intelliJ开发WebService

1 篇文章 0 订阅
1 篇文章 0 订阅

最近项目中运用到了motan进行分布式部署,但是本人对motan不太了解,仔细阅读了motan入门指南后还是没有完全体会到motan的思想与技术实现手段。

同事指点我从WebService入手,理解soap协议,从中获得灵感。
附上WebService工作原理链接(转):
http://www.cnblogs.com/Jessy/p/3528341.html

实践出真知。在网上阅读完WebService与soap的相关资料后,直接上手开干!
工具:
- intelliJ IDEA 2017 ULTIMATE

于是就研究了一下,但是关于intellij 开发 WebService 的文章极少,要不就是多年以前,于是研究一下,写这篇博文。纯属记录,分享,中间有不对的地方,望请指正,下面开始。
首先,开发WebService的服务器端,不需要借助任何的其他,JDK就可以搞定,只要在类上标注了@WebService,以及在方法上,标注了@WebMethod方法,就可以认为他是一个WebService。
下面,先显示一下我的目录结构:
目录结构
在server包下的是服务器端代码,在client包下的是客户端代码。
下面看一下,服务端代码:
HelloWorldWS.java

package com.zj.server;

/**
 * Author:  zj
 * Date:  2017/6/2
 * Time: 11:31
 */
public interface HelloWorldWS {
    public String sayHi(String name);
}

这是一个接口。(当然也可以没有这个接口,效果是一样的)
HelloWorldImpl.java

package com.zj.server;

import javax.jws.WebMethod;
import javax.jws.WebService;

/**
 * Author:  zj
 * Date:  2017/6/2
 * Time: 11:32
 */
@WebService
public class HelloWorldImpl implements HelloWorldWS{
    @WebMethod
    @Override
    public String sayHi(String name) {
        String str = "welcome:" + name;
        System.out.println("服务器方法被调用,sayHi运行:"+str);
        return str;
    }
}

注意上面的两个注释@WebService 和 @WebMethod
下面就可以发布这个WebService了
Publish.java

package com.zj.server;

import javax.xml.ws.Endpoint;

/**
 * Author:  zj
 * Date:  2017/6/2
 * Time: 11:34
 */
public class Publish {
    public static void main(String[] args) {
        Object impl = new HelloWorldImpl();
        String address = "http://localhost:8989/HelloWorld";
        Endpoint.publish(address,impl);
        System.out.println("WebService发布成功");
    }
}

下面着重说一下客户端代码的创建过程。
intellij14 中内置了WebService 的客户端代码的实现方式,他是使用的 JAX-WS.废话不多说,上图。
这里写图片描述
在Intellj 的 Tool–>WebServices–>Generate Java Code From WSDL (一看就是根据WSDL文档生成java代码了)
这里写图片描述
随后应该弹出这个一个提示框。
按照上图的配置,就会在client包中生成这些代码:
这里写图片描述
下面我们就可以根据这些生成的代码,访问服务端的WebService了。
OK,先创建客户端test,跑起来!

package com.zj.client;

/**
 * Author:  zj
 * Date:  2017/6/2
 * Time: 14:34
 */
public class test {
    public static void main(String[] args) {
        HelloWorldImplService helloWorldImplService = new HelloWorldImplService();
        HelloWorldImpl helloWorld = helloWorldImplService.getHelloWorldImplPort();
        String result = helloWorld.sayHi("第一个WebService");
        System.out.println("客户端成功调用sayHi方法,返回:" + result);
    }
}

服务端显示:
这里写图片描述
客户端显示:
这里写图片描述

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值