最近项目中有用到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

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. 【CF1043B】Lost Array(枚举)

    题意:给定n与数组a,求所有的k使得存在x数组能按以下规则构造出a n<=1e3,a[i]<=1e6 思路: #include<cstdio> #include<cstr ...

  2. 【Codeforces Round #519】

    A:https://www.cnblogs.com/myx12345/p/9872082.html B:https://www.cnblogs.com/myx12345/p/9872124.html ...

  3. Extension Methods "点"函数方法 扩展方法

    原文发布时间为:2011-03-25 -- 来源于本人的百度文章 [由搬家工具导入] http://msdn.microsoft.com/en-us/library/bb383977.aspx 条件: ...

  4. duilib入门简明教程 -- 前言(1) (转)

    原文转自 :http://www.cnblogs.com/Alberl/p/3341956.html     关于duilib的介绍就不多讲了,一来不熟,二来小伙伴们想必已经对比了多个界面库,也无需赘 ...

  5. 如何得知 GIC 的所有中斷

    can get the supported GIC interrupts from the below adb command, adb root adb shell cat /proc/interr ...

  6. 涂色问题(Python)

    题目:将一个圆形等分成N个小扇形,将这些扇形标记为1,2,3,-,N.现在使用M种颜色对每个扇形进行涂色,每个扇形涂一种颜色,且相邻的扇形颜色不同,问有多少种不同的涂法?(N≥1,M≥3) 参考:ht ...

  7. LeetCode OJ--Palindrome Number

    https://oj.leetcode.com/problems/palindrome-number/ 判断是否为回文数 取每一位存到vector中,再判断 负数不是回文数 class Solutio ...

  8. L1-8 外星人的一天

    L1-8 外星人的一天(15 point(s)) 地球上的一天是 24 小时.但地球上还有一些精力和勤奋度都远超一般人的大神级人物,他们的“一天”是以 48 小时为周期运转的,这种人被人们尊称为“外星 ...

  9. P1243~P1247 线段树模板题总结

    前言 这几天刚刚刷了5道线段树(水)题,现在来总结一下. 首先是犯的不少错误: 1.建树.更新函数没有return.这是最气的,每次最后程序错误查了半天也没查出来,最后发现是没有return.递归边界 ...

  10. [AHOI2005] SHUFFLE 洗牌

    1965: [Ahoi2005]SHUFFLE 洗牌 Time Limit: 3 Sec  Memory Limit: 64 MBSubmit: 952  Solved: 630[Submit][St ...