最近项目中有用到WebService,于是就研究了一下,但是关于intellij 开发 WebService 的文章极少,要不就是多年以前,于是研究一下,写这篇博文。纯属记录,分享,中间有不对的地方,望请指正,下面开始。

首先,开发WebService的服务器端,不需要借助任何的其他,JDK就可以搞定,只要在类上标注了@WebService,以及在方法上,标注了@WebMethod方法,就可以认为他是一个WebService。

下面,先显示一下我的目录结构:

在server包下的是服务器端代码,在client包下的是客户端代码。

下面看一下,服务端代码:

HelloWorldWS.java

 package server;

 /**
* Created by Lin_Yang on 2014/12/16.
*/
public interface HelloWorldWS {
public String sayHello(String name);
}

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

HelloWorldImpl.java

package server;

import javax.jws.WebMethod;
import javax.jws.WebService; /**
* Created by Lin_Yang on 2014/12/16.
*/
@WebService
public class HelloWorldImpl implements HelloWorldWS {
@WebMethod
@Override
public String sayHello(String name) {
String str="欢迎你:"+name;
System.out.println(str);
return str;
}
}

 

 注意上面的两个注释@WebService 和  @WebMethod

下面就可以发布这个WebService了

Publish.java

package server;

import javax.xml.ws.Endpoint;

/**
* Created by Lin_Yang on 2014/12/16.
*/
public class Publish {
public static void main(String args[]){
Object implementor = new HelloWorldImpl();
String address = "http://localhost:8989/HelloWorld"; //发布到的地址
Endpoint.publish(address, implementor);
System.out.println("发布成功");
}
}

  

客户端的代码很简单,这里就不连篇累牍了。

下面着重说一下客户端代码的创建过程。

intellij14 中内置了WebService 的客户端代码的实现方式,他是使用的 JAX-WS.废话不多说,上图。

在Intellj 的 Tool-->WebServices-->Generate Java Code From WSDL  (一看就是根据WSDL文档生成java代码了)

随后应该弹出这个一个提示框。

首先,Web service wsdl url 是指明WSDL文档的位置,这里的地址和服务端发布的地址相对应。他也可以不从网络中寻找这个WSDL文档,也可以从本地寻找。

格式是这样的:file:/c:/CRMLOYMemberCreateWorkflow.wsdl   指定文档的地址。

按照上图的配置,就会在client包中生成这些代码

下面我们就可以根据这些生成的代码,访问服务端的WebService了

test/client.java
package client.test;

import client.HelloWorldImpl;
import client.HelloWorldImplService; /**
* Created by Lin_Yang on 2014/12/16.
*/
public class Client {
public static void main(String args[]){
HelloWorldImplService helloWorldImplService=new HelloWorldImplService();
HelloWorldImpl helloWorld= helloWorldImplService.getHelloWorldImplPort();
String returnStr= helloWorld.sayHello("先知后觉");
System.out.println(returnStr);
} }

服务端显示

 客户端显示:


    希望可以给大家一些启示。

下载demo

最新文章

  1. POJ 1815 Friendship
  2. 学习 opencv---(1) opencv3.1.0 组件结构浅析
  3. Python 3.5 连接Mysql数据库(pymysql 方式)
  4. bat批量去除文件首行和合并到文件
  5. WDS的原理
  6. 怎么在 html 中 动态的加载一个 script
  7. C#.Net 如何动态加载与卸载程序集(.dll或者.exe)4-----Net下的AppDomain编程 [摘录]
  8. delphi xe3的helper语法 good
  9. 集合对象(NSSet)
  10. JeeSite试用
  11. The encryption certificate of the relying party trust identified by thumbprint is not valid
  12. linux系统命令<一>----关机重启
  13. SpringBoot开发案例从0到1构建分布式秒杀系统
  14. Select下拉框使用ajax异步绑定数据
  15. aplication.properties配置
  16. 八(第一篇)、主体结构元素——article元素、section元素
  17. vuejs之v-if-ajax异步请求数据遇到的坑
  18. Tf中的NCE-loss实现学习【转载】
  19. 小菜菜mysql练习解读分析1——查询" 01 "课程比" 02 "课程成绩高的学生的信息及课程分数
  20. django系列6--Ajax04 请求设置(设置csrf_token)

热门文章

  1. UVA1218 Perfect Service
  2. Javascript&Ajax-深入浅出JSONP--解决ajax跨域问题
  3. Sql Server 2005 中的row_number() 分页技术
  4. Linux设备模型(热插拔、mdev 与 firmware)【转】
  5. Scrapy学习-25-Scrapyd部署spider
  6. hdu 4528(搜索好题)
  7. 【转载】Javascript-XMLHttpRequest对象简介
  8. mysql查询练习题
  9. Google Cloud服务免费申请试用以及使用教程
  10. Elasticsearch搜索结果返回不一致问题