Web Service 是一种新的web应用程序分支,他们是自包含、自描述、模块化的应用,可以发布、定位、通过web调用。Web Service可以执行从简单的请求到复杂商务处理的任何功能。一旦部署以后,其他Web Service应用程序可以发现并调用它部署的服务。
 
 实际上,WebService的主要目标是跨平台的可互操作性。为了达到这一目标,WebService完全基于XML(可扩展标记语言)、
XSD(XMLSchema)等独立于平台、独立于软件供应商的标准,是创建可互操作的、分布式应用程序的新平台。由此可以看出,在以下三种情况下,使用
WebService会带来极大的好处。

  虽然本人完全明白Web Service,但要把概念说的专业,明了,还是引用大家的话比较好。要了解Web Service的朋友,推荐两篇篇文章:

  Web Service 解读一:http://www.cnblogs.com/xiaocai0923/archive/2011/12/30/2308154.html

  Web Service 解读二:http://www.cnblogs.com/xiaocai0923/archive/2011/12/31/2308171.html

下面,就写一个简单的java WebService例子。

一、开发工具:

  1.Eclipse Java EE IDE for Web Developers

  2.apache-tomcat-7.x

二、配置Tomcat服务器:

三、创建web项目:

  1.在java ee版的eclipse里执行:new->other->web->Dynamic Web Project 例如我的项目名称:MyWebServices

  2.(除了做项目需要,强烈建议使用eclipse而不是myeclipse做java ee开发)。这里为了方便java类的编译,我们对类编译路径作一简单配置:

   右击项目,然后在右击菜单中选择:Build Path->Configure Build Path->Java Build Path->Source->Default outer folder.

   将原来的:MyWebService/build/classes改成MyWebService/WebContent/WEB-INF/classes

  3.建立一个用于发布WebService的java类(我这里是Person类com.service包下):

  

 package com.service;

 public class Person {

     public String desc(String name){

         return "hello! " + name;
} }

四、将该类发布为WebService:

  1.将这里的Person类发布为WebService(要发布为web服务的类不一定要在这里,可以是java project中的)

  Person.java ->web services->create web services,如下图所示:

  

  2.一路点击next完成即可,如果tomcat没有启动,在提示启动时,请启动。完成即可。

五、在浏览器中发布web服务:

  1.用于发布该web服务的web项目就是我们创建的MyWebService项目。首先,打开tomcat服务器配置文件增加一个web节点。路径是:

    apache-tomcat-7.0.53\conf\server.xml,用记事本打开,在</Host>前加上虚拟路径:

  

    这里的path随意配置,docBase根据自己的实际情况配置。

  2.在WebContent目录下创建index.jsp,在html标签下添加<h1>hello geoman</h1>.然后启动tomcat服务器。在地址栏里输入:

    http://localhost:8080/geoman/index.jsp

    如果页面能正常打开,则web虚拟节点配置正确。

  3.在虚拟目录配置正确的情况下,在浏览器地址栏输入:

    http://localhost:8080/geoman/services

    则显示如下所示的web服务,其中包括我们发布的Person 服务。如下图所示:

  

  4.点击Person连接,可以看到Person服务的内容,如下图所示:

    也可以直接数据Person服务的地址:

    http://localhost:8080/geoman/services/Person?wsdl

    进行访问。

  

  

、创建Web服务客户端:

  1.首先创建一个java project,(我的项目名称是MyWebServiceClient).

  2.右击项目创建Web Service Client,在service definition中找到Person.sdwl.完成即可。
    此时,在项目中生成了Person服务的各个类。如下图所示:

  

  3.创建一个Test测试类,加入如下代码:

 package com.service;

 import java.rmi.RemoteException;

 public class Test {

     public static void main(String args[]){
PersonSoapBindingStub binding = null;
try {
binding = (PersonSoapBindingStub)
new PersonServiceLocator().getPerson();
}
catch (javax.xml.rpc.ServiceException jre) {
if(jre.getLinkedCause()!=null)
jre.getLinkedCause().printStackTrace(); } binding.setTimeout(6000);
try {
System.out.println(binding.desc("GeoMan"));
} catch (RemoteException e) {
e.printStackTrace();
} } }

  4.运行Test,则可以看到调用该服务后的运行结果(必须打开tomcat,这样服务才处于发布状态):

  

至此,一个基于java的WebService便完整完成了!

    

Java WebService 开发简单实例的更多相关文章

  1. Java WebService(实战) 简单实例

    一.准备工作(以下为本实例使用工具) 1.MyEclipse10.7.1 2.JDK 1.6.0_22 二.创建服务端 1.创建[Web Service Project],命名为[TheService ...

  2. java反射机制简单实例

    目录 Java反射 简单实例 @(目录) Java反射 Java语言允许通过程序化的方式间接对Class进行操作.Class文件由类装载器装载后,在JVM中将形成一份描述Class结构的元信息对象,通 ...

  3. SpringMVC笔记——Spring+MyBatis组合开发简单实例

    简介 SSH框架很强大,适合大型项目开发.但学无止境,多学会一门框架组合开发会让自己增值许多. SSM框架小巧精致,适合中小型项目快速开发,对于新手来说也是简单上手的.在SSM框架搭建之前,我们先学习 ...

  4. java web 开发入门实例

    学习是个技巧活,关键是要找到重点的地方,新手在这方面的坑尤其多.看别人的教程一步一步的跟着做,隔几步就遇到一个新知识点,忍不住就百度往深处了解,一晃半天就过去了. 有的知识点要深入学习的,有的是了解下 ...

  5. JAVA项目中公布WebService服务——简单实例

    1.在Java项目中公布一个WebService服务: 怎样公布? --JDK1.6中JAX-WS规范定义了怎样公布一个WebService服务. (1)用jdk1.6.0_21以后的版本号公布. ( ...

  6. 使用CXF发布WebService服务简单实例

    一.说明: 前面介绍了使用axis2来发布Webservice服务,现在介绍一种更popular,更高效的Webservice服务发布技术:CXF Apache CXF = Celtix + XFir ...

  7. Java UDP的简单实例以及知识点简述

    UDP的实现 Java中实现UDP协议的两个类,分别是DatagramPacket数据包类以及DatagramSocket套接字类. 其与TCP协议实现不同的是: UDP的套接字DatagramSoc ...

  8. HTML5面向对象的游戏开发简单实例总结

    在阅读一本HTML5游戏开发相关书籍时发现一个很好的例子,通过这个例子可以对面向对象的开发进行更深入的理解.这个对象要实现的是:将一个CSS sprite中的图像绘制到canvas中.首先创建一个Sp ...

  9. java web开发基础实例(javabean+jsp+servlet+jdbc)

    JavaBean:用于传递数据,拥有与数据相关的逻辑处理 JSP:从Model接收数据并生成HTML Servlet:接收HTTP请求并控制Model和View jdbc:用于配置环境 一.[建立数据 ...

随机推荐

  1. c#params ref out

    params params 关键字可以指定在参数数目可变处采用参数的方法参数. 在方法声明中的 params 关键字之后不允许任何其他参数,并且在方法声明中只允许一个 params 关键字. 示例: ...

  2. Testing - 测试基础 - 概念

    测试是为了度量和提高被测试软件的质量,对测试软件进行工程设计.实施.维护的的整个生命周期过程. 仅仅发现Bug是测试的初步,而分析出根本原因推动问题的解决,却要有很深的功底. 不同的测试岗位从事不同的 ...

  3. 【Android】Android Studio 快速打开Github上的Demo

    ******* 注意 ******* Google 在15年12月2日发布了Android Studio 2.0,比起以前的版本速度提升了很多,所以强烈推荐各位朋友升级IDE! 1.修改:build. ...

  4. JavaScript中{}+{}

    在 JavaScript 中,加法的规则其实很简单,只有两种情况: 把数字和数字相加 把字符串和字符串相加 所有其他类型的值都会被自动转换成这两种类型的值. 为了能够弄明白这种隐式转换是如何进行的,我 ...

  5. asp.net中打印指定控件内容

    1.写一个PrintHelper类using System;using System.Data;using System.Configuration;using System.Web;using Sy ...

  6. Azure ARM (9) 创建ARM模式下的虚拟机网络

    <Windows Azure Platform 系列文章目录> 笔者在之前几章内容中,创建了ARM Resource Group,然后在这个ARM Resource Group下创建Azu ...

  7. 设计前沿:25个设计师向您展示 iOS 7 界面

    我们中的许多人都对新发布的 iOS 7 用户界面有点失望.扎眼的颜色搭配,难看的图标和可疑的设计决策,导致很多的设计师在 Dribbble 和 Behance 等社交网站分享自己对 iOS 界面设计的 ...

  8. SQL Server安全(10/11):行级别安全(Row-Level Security)

    在保密你的服务器和数据,防备当前复杂的攻击,SQL Server有你需要的一切.但在你能有效使用这些安全功能前,你需要理解你面对的威胁和一些基本的安全概念.这篇文章提供了基础,因此你可以对SQL Se ...

  9. OpenJudge1700:八皇后问题 //不属于基本法的基本玩意

    1700:八皇后问题//搜索 总时间限制:  10000ms 内存限制:  65536kB 描述 在国际象棋棋盘上放置八个皇后,要求每两个皇后之间不能直接吃掉对方. 输入 无输入. 输出 按给定顺序和 ...

  10. 一个比较有意思的C语言问题

    先看代码吧,学习c语言结构体中看到的一个问题 #include<stdio.h> int main(){ struct{ int a:2; }x; x.a=; x.a=x.a+; prin ...