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

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

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

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

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

HelloWorldWS.java

  1. package server;
  2.  
  3. /**
  4. * Created by Lin_Yang on 2014/12/16.
  5. */
  6. public interface HelloWorldWS {
  7. public String sayHello(String name);
  8. }

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

HelloWorldImpl.java

  1. package server;
  2.  
  3. import javax.jws.WebMethod;
  4. import javax.jws.WebService;
  5.  
  6. /**
  7. * Created by Lin_Yang on 2014/12/16.
  8. */
  9. @WebService
  10. public class HelloWorldImpl implements HelloWorldWS {
  11. @WebMethod
  12. @Override
  13. public String sayHello(String name) {
  14. String str="欢迎你:"+name;
  15. System.out.println(str);
  16. return str;
  17. }
  18. }

 

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

下面就可以发布这个WebService了

Publish.java

  1. package server;
  2.  
  3. import javax.xml.ws.Endpoint;
  4.  
  5. /**
  6. * Created by Lin_Yang on 2014/12/16.
  7. */
  8. public class Publish {
  9. public static void main(String args[]){
  10. Object implementor = new HelloWorldImpl();
  11. String address = "http://localhost:8989/HelloWorld"; //发布到的地址
  12. Endpoint.publish(address, implementor);
  13. System.out.println("发布成功");
  14. }
  15. }

  

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

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

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

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

  1. 随后应该弹出这个一个提示框。
  2.  
  3. 首先,Web service wsdl url 是指明WSDL文档的位置,这里的地址和服务端发布的地址相对应。他也可以不从网络中寻找这个WSDL文档,也可以从本地寻找。
  4.  
  5. 格式是这样的:file:/c:/CRMLOYMemberCreateWorkflow.wsdl 指定文档的地址。
  6.  
  7. 按照上图的配置,就会在client包中生成这些代码

  1. 下面我们就可以根据这些生成的代码,访问服务端的WebService
  2.  
  3. test/client.java
  1. package client.test;
  2.  
  3. import client.HelloWorldImpl;
  4. import client.HelloWorldImplService;
  5.  
  6. /**
  7. * Created by Lin_Yang on 2014/12/16.
  8. */
  9. public class Client {
  10. public static void main(String args[]){
  11. HelloWorldImplService helloWorldImplService=new HelloWorldImplService();
  12. HelloWorldImpl helloWorld= helloWorldImplService.getHelloWorldImplPort();
  13. String returnStr= helloWorld.sayHello("先知后觉");
  14. System.out.println(returnStr);
  15. }
  16.  
  17. }

服务端显示

  1. 客户端显示:

  1.  
  2. 希望可以给大家一些启示。
  3.  

下载demo

intellij 开发webservice的更多相关文章

  1. 使用JDK开发WebService

    一.WebService的开发手段 使用Java开发WebService时可以使用以下两种开发手段 1. 使用JDK开发(1.6及以上版本) 2.使用CXF框架开发(工作中) 二.使用JDK开发Web ...

  2. Java开发Webservice的组件

    参考:http://bbs.csdn.net/topics/390900831 转自:http://blog.csdn.net/dragoo1/article/details/50759222 htt ...

  3. 2.使用JDK开发webService

    使用jdk开发webService需要注意:jdk版本必须1.6以及1.6以上! 以下webService的组成部分: server端和client端,通过服务器端(server)webService ...

  4. 利用NuSoap开发WebService(PHP)

    利用NuSoap开发WebService(PHP) 分类: php 2010-09-08 12:00 5005人阅读 评论(1) 收藏 举报 webservicephpsoapstringencodi ...

  5. JAVA6开发WebService (四)——SAAJ调用WebService

    转载自http://wuhongyu.iteye.com/blog/810571 前面写了个JAX-WS的小例子,看到用JAVA6开发WebService确实很简单,也很方便,不过前面也说了,JAVA ...

  6. Apache axis2 + Eclipse 开发 WebService

    yd小结注意:1.axis2的2个插件的版本必须与引入的jar包匹配,如果不同则可能报以下错误 “没有实现序列化方法”或 “org.apache.axis2.databinding.utils.wri ...

  7. struts1+spring+myeclipse +cxf 开发webservice以及普通java应用调用webservice的实例

    Cxf + Spring+ myeclipse+ cxf 进行  Webservice服务端开发 使用Cxf开发webservice的服务端项目结构 Spring配置文件applicationCont ...

  8. 使用cxf开发webservice应用时抛出异常

    在使用cxf开发webservice应用时,报出了类似下面的错误 JAXB: [javax.xml.bind.UnmarshalException: unexpected element (uri:& ...

  9. WebService学习总结(三)——使用JDK开发WebService

    一.WebService的开发手段 使用Java开发WebService时可以使用以下两种开发手段 1. 使用JDK开发(1.6及以上版本) 2.使用CXF框架开发(工作中) 二.使用JDK开发Web ...

随机推荐

  1. 存储过程中set什么什么的讲解

    原文发布时间为:2008-09-27 -- 来源于本人的百度文章 [由搬家工具导入] set ansi_nulls [on/off] 与 set quoted_identifier [on/off] ...

  2. TCP/IP协议详解笔记——IP协议

    简介 TCP/IP协议族中最核心的协议,提供不可靠.无连接的数据报传输服务. 不可靠:不能保证IP数据报能成功送达. 无连接:并不维护后续数据报的状态信息,每个数据报的处理都是相互独立.数据报可能不会 ...

  3. 安卓edittext实现输入数字限制条件的效果

    我们知道edittext能指定输入字符类型,这次我们就来了解下在数字模式下的一些显示控制输入的效果 1.限制输入数字 android:inputType="number|numberDeci ...

  4. jvm 简单描述

    java零基础入门-面向对象篇(一) 基础类型和引用类型 友情提示:本章开始可能会有部分较深入的内容,不说又不行,说了又很难解释清楚,因为里面的技术细节实在太多太复杂,所以我会屏蔽部分技术细节,只展示 ...

  5. 维生素d

    作者:卓正内科李爽 链接:https://www.guokr.com/article/440438/来源:果壳本文版权属于果壳网(guokr.com),禁止转载.如有需要,请联系sns@guokr.c ...

  6. Data structure basics - Java Implementation

    Stack & Queue Implementations FixedCapacityQueue package cn.edu.tsinghua.stat.mid_term; import j ...

  7. 【redis】redis实现API接口调用调用次数的限制

    redis实现API接口调用调用次数的限制 参考地址:https://bbs.csdn.net/topics/391856106?page=1 参考地址:https://www.cnblogs.com ...

  8. 研读:Shielding applications from an untrusted cloud with Haven

    watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdHJ1c3Ribw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA ...

  9. todo提纲

    deep&wide为啥work,如何优化特征:详述attention,attention在ctr预估中如何使用,din为啥work?详述transformer,如何应用于ctr预估;item2 ...

  10. 自编自演的Linux脚本

    启动全服务脚本 #!/bin/bash cd `` BIN_DIR=`pwd` COUNT= function deal(){ # ; #/stdout.log |grep -w 'Main serv ...