最近项目中有用到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. Java中的内存机制及管理

    1. Java根据虚拟机以及平台的版本不同而在内存中开辟不同大小的内存,通常不会关注这个大小. 2. 程序中的对象存储在内存的堆(heap)中 3. 程序中的方法和局部变量存储在内存的栈(Stack) ...

  2. 【CDockablePane】关于CDockablePane

    1.DockPane是CFrameWndEx框架窗口的函数,不能用于基于对话框的应用程序,也不能用于老版本VC,只能用于基于单文档和多文档的应用程序. 2.最佳变通实现办法:创建CFormView基类 ...

  3. php通过$_SERVER['HTTP_USER_AGENT']获取浏览器相关参数

    最近不忙,同事在忙一个app项目.当听到领导安排让他做一个判断苹果还是安卓手机,如果是安卓手机下载安卓app.如果是苹果手机下载苹果app;然后我就上网搜了一下学习学习: php通过$_SERVER[ ...

  4. python 保留两位小数方法

    原博客连接:https://blog.csdn.net/Jerry_1126/article/details/85009810 保留两位小数,并做四舍五入处理 方法一:使用字符串格式化 a = 12. ...

  5. git的使用学习(七)githup和码云的使用

    1.使用GitHub 我们一直用GitHub作为免费的远程仓库,如果是个人的开源项目,放到GitHub上是完全没有问题的.其实GitHub还是一个开源协作社区,通过GitHub,既可以让别人参与你的开 ...

  6. HDU 5727.Necklace-二分图匹配匈牙利

    好久没写过博客了,把以前的博客补一下. Necklace Time Limit: 3000/1500 MS (Java/Others)    Memory Limit: 65536/65536 K ( ...

  7. 牛客网 Wannafly挑战赛8 A.小Y和小B睡觉觉

    写了一会不想写了... A-小Y和小B睡觉觉 链接:https://www.nowcoder.com/acm/contest/57/A来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制: ...

  8. python--网络爬虫一

    http://hankjin.blog.163.com/blog/static/3373193720105140583594/ http://blog.csdn.net/wklken/article/ ...

  9. (7)JavaScript-BOM(浏览器对象模 型)

    window 对象 全局作用域 在浏览器中, window 对象有双重角色,它既是通过 JavaScript 访问浏览器窗口的一个接口,又是 ECMAScript 规定的 Global 对象. 所有在 ...

  10. 关于npm无法安装依赖包以及安装包缓慢的解决方法

    因为npm的服务器在国外,导致我们使用npm安装第三方包缓慢.而且有的第三方包是被墙的. 因此,作为墙内人,必须解决这个问题,否则开发起来实在是太坑了! 推荐大家使用淘宝的镜像(cnpm),它以每10 ...