前言:

初学Java,因为工作需要,直接跳到开发WebService。以前用.NET开发过WebService,对比一下,Java的WebService开发部署难度高了不止一个档次。网上的教程各式各异,刚开始我学着使用XFire开发,但是配置过程已经把我给搞糊涂了,弄了两天没搞好。

最后使用Java1.6的新特性,Java-WS专门用于开发WebService,发现这个方法特别的简单(相对而言),但是其中还是有不少注意事项,我这篇主要是参考http://www.cnblogs.com/lee0oo0/archive/2013/01/25/2876357.html,但是我在参考这篇文章时遇到了不少的问题,会在我的文章里面指出来。

有关WebService的名词定义,建议自行百度,或者参考http://blog.csdn.net/icecream0/article/details/6955524。

以下开始讲解如何在MyEclipse中开发一个WebService。

内容:

我使用的是MyEclipse 2014,tomcat是内置的。
第一部分:如何在本地发布一个WebService。

1、新建一个Web Service Project

2、我的工程名是“EbonyWS”,WebService Framework选择JAX-WS。

3、定义一个Java包,存放服务端的类与接口等。新建一个Java包:com.ebony.service

4、先定义一个服务需要具有的方法的接口。新建一个接口:IHello

 package com.ebony.service;

 /**
* 服务需要具备的接口方法
* @author Administrator
*
*/
public interface IHello {
/**
* 必须具备的方法sayHello
* @param name 姓名
* @return
*/
public String sayHello(String name);
}

5、定义此接口的一个实现类,实现类里的方法可以理解成最终调用WebService的具体函数所在地。新建一个类:HelloImpl

 package com.ebony.service;

 /**
* 具体的方法实现,最终调用的方法所在地
* @author Administrator
*
*/
public class HelloImpl implements IHello { @Override
public String sayHello(String name) {
String string = "Congratulations! "
+ name + ", you have finished your first WebService!";
return string;
} }

6、部署工程到服务器上。可以搜索菜单"Add and Remove Project Deployments..."或者点击按钮。

搜索:

或点击按钮:

7、在打开的"Project Deployments"菜单里,单击"Add"。

8、在弹出的菜单中选择"MyEclipse Tomcat",内置的Tomcat,也可以选择自己的Tomcat位置,不过选择内置的更不容易出错。

添加之后的显示:

9、配置好工程的Tomcat之后,启动服务

启动服务成功,会在Console中显示,此时可以确认以上部署服务过程无误:

10、设置Tomcat服务器的端口。因为默认是8080端口,往往这个端口是被占用了的,这样会造成发布WebService不成功。此时需要先修改"Windows-Perferences-MyEclipse-Servers-Integated Sandbox-MyEclipse Tomcat 6"里的Port Number为8089(可自行选择,不要选择被占用的)。

如果你是内置额Tomcat,修改这里就行了,如果是自己下载的Tomcat,还需要修改Tomcat目录下的"conf-server.xml"下的port为8089。

    <Connector port="8089" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />

11、部署Tomcat之后,开始在此服务上发布WebService

Strategy选择下面的一项,可以为工程生成wsdl文件。

下图中,1处需要选择一个实现类,我们这里选择我们已经写好的实现类"com.ebony.service.HelloImpl",并勾选2处的"Generate WSDL in project"。

发布之后会在我们的包"com.ebony.service"生成一个类HelloImplDelegate,作为提供给外部调用的类。

还会为工程生成一个wsdl目录,双击打开"HelloImplService.wsdl"文件。

修改红框内的端口"8080"为"8089",HelloImplPort里的地址,就是我们可以提供给外部调用的WebService地址。

12、在浏览器中打开地址"http://localhost:8089/EbonyWS/HelloImplPort",显示一下内容说明WebService发布成功。

第二部分:如何在Java中调用此WebService

1、新建一个EbonyClient的Java Project。

2、导入WebService。

3、在红框内填入之前的WebService地址,注意要加上"?wsdl",即:

http://localhost:8089/EbonyWS/HelloImplPort?wsdl

导入之后我们会发现,com.ebony.service这个包会导入到了我们的EbonyClient中。

4、新建一个客户端包:com.ebony.client。

5、新建一个客户端类:Client.java

 package com.ebony.client;

 import com.ebony.service.HelloImplDelegate;
import com.ebony.service.HelloImplService; /**
* 调用WebService的客户端
* @author Administrator
*
*/
public class Client {
public static void main(String[] args) {
//实例化服务
HelloImplService helloImplService = new HelloImplService();
//实例化服务委托
HelloImplDelegate helloImplDelegate = helloImplService.getHelloImplPort();
//使用委托调用服务的方法
System.out.println(helloImplDelegate.sayHello("ebony"));
}
}

至此调用服务的工程开发完成。

Java开发WebService(使用Java-WS)的更多相关文章

  1. C# 开发XML Web Service与Java开发WebService

    一.web service基本概念 Web Service也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量 ...

  2. 纯 Java 开发 WebService 调用测试工具(wsCaller.jar)

    注:本文来自hacpai.com:Tanken的<纯 Java 开发 WebService 调用测试工具(wsCaller.jar)>的文章 基于 Java 开发的 WebService ...

  3. Java开发知识之Java中的Map结构

    Java开发知识之Java中的Map结构 一丶Map接口 Map没有实现Collection接口,提供的是Key 到Value的映射. Map中.不能包含相同的Key,每个Key只能映射一个Value ...

  4. Java开发知识之Java中的集合Set接口以及子类应用

    ---恢复内容开始--- Java开发知识之Java中的集合Set接口以及子类应用 一丶Set接口以及作用 在上一讲.我们熟悉了接口的实现图.以及自己各有的子类. List接口主要存储的数据是可以重复 ...

  5. Java开发知识之Java中的集合上List接口以及子类讲解.

    Java开发知识之Java中的集合类 一丶什么是集合类 如果你学习说数据结构,那么学习集合就很简单. 因为集合就是存储数据的结构. 例如 有链表结构 (list ) 还有 map结构.等等. 集合类就 ...

  6. Java开发知识之Java中的泛型

    Java开发知识之Java中的泛型 一丶简介什么是泛型. 泛型就是指泛指任何数据类型. 就是把数据类型用泛型替代了. 这样是可以的. 二丶Java中的泛型 Java中,所有类的父类都是Object类. ...

  7. Java开发知识之Java的枚举

    Java开发知识之Java的枚举 一丶什么是枚举 枚举可以理解为就是常量,在Java中我们定义常量.都是用 final语句. C++中都是用const关键字. 枚举跟C++概念都是一样的.就是特定的常 ...

  8. Java开发知识之Java的异常处理

    Java开发知识之Java的异常处理 一丶异常概述 在讲解异常之前,我们要搞清楚.什么是异常. 通俗理解就是我们编写的程序出问题了.进行处理的一种手段. 比如我们的QQ.有的时候就崩溃了.比如出现xx ...

  9. Java开发知识之Java类的高级特性,内部类.以及包使用.跟常量关键字

    Java开发知识之Java类的高级特性,内部类.以及包使用.跟常量关键字 一丶Java中包的机制 首先包其实就是个文件夹.作用就是管理类. Java中每次定义一个类的时候.通过Java编译之后.都会生 ...

  10. Java开发知识之Java的继承多态跟接口*

    Java开发知识之Java的继承多态跟接口 一丶继承 1.继承的写法 在Java中继承的 关键字是 extends 代表一个类继承另一个类. 继承的含义以及作用: 继承就是基于某个父类的扩展.制定出来 ...

随机推荐

  1. 二分图最大权值匹配 KM算法 模板

    KM算法详解+模板 大佬讲的太好了!!!太好了!!! 转载自:http://www.cnblogs.com/wenruo/p/5264235.html KM算法用来求二分图最大权完美匹配. 本文配合该 ...

  2. POJ Treasure Exploration 【DAG交叉最小路径覆盖】

    传送门:http://poj.org/problem?id=2594 Treasure Exploration Time Limit: 6000MS   Memory Limit: 65536K To ...

  3. POJ 3764 The xor-longest Path 【01字典树&&求路径最大异或和&&YY】

    题目传送门:http://poj.org/problem?id=3764 The xor-longest Path Time Limit: 2000MS   Memory Limit: 65536K ...

  4. ubuntu安装完整版的vim

    apt-get remove vim-commonapt-get install vim

  5. 【洛谷P2296】[NOIP2014]寻找道路

    寻找道路 题目链接 这道题非常的水,按照题意, 先反向建边,从终点搜索,标记出可以到达终点的点 然后枚举一遍,判断出符合条件1的点 再从起点搜索一遍就可以了 #include<iostream& ...

  6. 【luogu P3178 [HAOI2015]树上操作】 题解

    题目链接:https://www.luogu.org/problemnew/show/P3178 模板题 菜 #include <cstdio> #include <cstring& ...

  7. 【luogu P2863 [USACO06JAN]牛的舞会The Cow Prom】 题解

    题目链接:https://www.luogu.org/problemnew/show/P2863 求强连通分量大小>自己单个点的 #include <stack> #include ...

  8. 【luogu P2324 [SCOI2005]骑士精神】 题解

    题目链接:https://www.luogu.org/problemnew/show/P2324 不懂怎么剪枝,所以说,,我需要氧气.. 第一道A* // luogu-judger-enable-o2 ...

  9. 学习MySql和MongoDB笔记

    首先了解下关系型数据库和非关系型数据库 关系型数据库 SQL关系型数据库采用了关系模式来组织数据,即关系模式为二维表格模型. 主要的数据库:SQL Server,Oracle,Mysql,Postgr ...

  10. [国家集训队]小Z的袜子(莫队,概率)

    题目描述 作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿.终于有一天,小Z再也无法忍受这恼人的找袜子过程,于是他决定听天由命…… 具体来说,小Z把这N只袜子从1到N编 ...