WebService是SOA的一种较好的实现方式,它将应用程序的不同功能单元通过中立的契约(独立于硬件平台、操作系统和编程语言)联系起来,使得各种形式的功能单元更好的集成。
W3C对他的定义是:
A Web service is a software system designed to support interoperable machine-to-machine interaction over a network. It has an interface described in a machine-processable format (specifically WSDL). Other systems interact with the Web service in a manner prescribed by its description using SOAP messages......"
Web service是一个软件系统,为了支持跨网络的机器之间相互操作交互而设计。它有一个机器可识别的描述格式(特别是WSDL)。不同的系统之间可以通过SOAP消息在规定的方式下相互调用。(英文不好,请指正!)
简单的说,WebService是一种独立于特定语言、特定平台,基于网络的、分布式的模块化组件。是一个能够使用xml消息通过网络来访问的Interface,这个Interface描述了一组可访问的操作。
WebService一般分为两种:
REST式WebService,基于HTTP协议;
RPC式WebService,基于SOAP协议,不过SOAP也是基于HTTP传输的。
狭义上的WebService是指第二种RPC式的WebService,也就是我们常说的那种。
JAVA中有三种WebService规范,分别是JAX-WS(JAX-RPC)、JAX-RS、JAXM&SAAJ。
这里先说JAX-WS(Java API For XML-WebService),JDK1.6 自带的版本为JAX-WS2.1,其底层支持为JAXB。早期的JAVA Web服务规范JAX-RPC(Java API ForXML-Remote Procedure Call)目前已经被JAX-WS 规范取代,JAX-WS 是JAX-RPC 的演进版本,但JAX-WS 并不完全向后兼容JAX-RPC。
废话不多说了,先来写一个最简单的例子:
服务器端:
在想要发布为WebService的类上加上注解@WebService,这个类的方法就变为WebService的方法了,再通过Endpoint的publish方法,发布这个服务,到此,一个最简单的WebService搞定。运行main方法,在浏览器里输入”http://localhost:8080/com.why.webservice.Hello?wsdl “ 会看到你的WSDL信息。
不过需要注意一 下, 有的同学如果不加@SOAPBinding(style = SOAPBinding.Style.RPC)这行代码会报错:
com.sun.xml.internal.ws.model.RuntimeModelerException: runtime modeler error: Wrapper class com.why.webservice.jaxws.SayHello is not found. Have you run APT to generate them?
网上资料说只要将JDK升级到1.6u17就可以了,我直接升级到了1.6u22(1.6.0_22-b04),问题解决!
package com.why.webservice;
import javax.jws.WebService;
import javax.xml.ws.Endpoint;
/**
*
* @author why
*
*/
@WebService
public class Hello {
public String sayHello(String name) {
return "Hello " + name;
}
public static void main(String[] args){
Endpoint.publish("http://localhost:8080/com.why.webservice.Hello", new Hello());
System.out.println("Success");
}
}
客户端:
在命令行输入命令 wsimport -p [包名] -keep [发布的服务地址?wsdl] 生成客户端代码,如生成本例的客户端代码”wsimport -p com.why.client -keep http://localhost:8080/com.why.webservice.Hello?wsdl“,当然,前提是你已经配好了JAVA环境变量。控制台会显示
利用这些生成的客户端代码,就可以调用这个WebService服务了:
执行代码,输出:Hello why
相关推荐
### Java开发WebService实例详解 在IT领域,尤其是企业级应用开发中,WebService作为一种标准化的、跨平台的服务交互方式,被广泛应用于系统间的数据交换与服务调用。本文将基于给定的“Java开发WebService实例”...
Java开发Web服务(Web Service)是一种常见的技术,用于在不同应用程序之间实现互操作性。Web服务基于开放标准,如XML(可扩展标记语言)、WSDL(Web服务描述语言)和SOAP(简单对象访问协议),使得服务提供者可以...
Java WebService接口开发是将Java应用程序暴露为网络服务的一种方式,允许不同系统间的数据交换和交互。本案例将深入探讨如何使用Java实现Web服务的创建、发布和调用。 一、理解WebService WebService是一种基于...
在IT行业中,Java是一种广泛应用的编程语言,而Web服务(Web Service)则是一种基于标准的、平台无关的方式,使得不同的应用...理解并熟练掌握这一技术,对于Java开发者来说,无疑会提升其在企业级应用开发中的能力。
java开发webservice入门最全讲解demo
java开发过程中,很多地方都会遇到数据传递,远程获取数据问题,我这个简单的webservice接口发布可以在java开发过程中,很多地方都会遇到数据传递,远程获取数据问题,我这个简单的webservice接口发布可以在
Java开发Web Service是一种在分布式环境中实现服务调用的技术,它允许不同系统间的应用程序通过网络进行通信。在Java 6及更高版本中,JAX-WS(Java API for XML Web Services)已经成为标准的一部分,使得开发Web ...
在Java Web服务(WebService)开发中,注解的应用极大地简化了服务的创建和配置。本文将深入探讨如何使用Java注解来构建Web服务,并结合给出的“lib”压缩包文件,推测可能包含了一些用于支持Web服务的库文件。 ...
在IT行业中,调用Web服务并解析XML是常见的任务,特别是在Java开发中。Web服务,尤其是基于SOAP(Simple Object Access Protocol)的,提供了一种标准的跨平台、跨语言的数据交换方式。本教程将深入讲解如何在Java...
在Java 6中开发Web服务(WebService)是企业级应用中的常见任务,它允许不同的系统之间通过网络交换数据。本文将深入探讨Web服务的几个关键概念,帮助开发者更好地理解和使用这项技术。 首先,我们来理解什么是Web...
MyEclipse是基于Eclipse的商业级Java开发工具,它集成了多种功能,如Java EE应用开发、Web开发、数据库管理等。对于Java WebService的开发,MyEclipse提供了一站式的解决方案,包括服务创建、调试和部署。 2. **...
在Java开发中,调用Web服务是常见的任务,特别是当我们需要与远程系统进行交互或集成时。本工具类主要用于简化这个过程,确保开发者能够高效、可靠地调用WebService。下面我们将详细探讨Java调用WebService的相关...
3. 移动应用程序:WebService可以用于实现移动应用程序的后台服务,提供了一个灵活的移动应用程序开发模式。 Java实现WebService实例提供了一个灵活的解决方案,用于实现不同的应用程序之间的交互和集成。
### Java访问C#开发的Webservice详解 #### 一、引言 在现代软件开发过程中,尤其是对于大型项目而言,采用分布式系统架构已经成为一种常态。分布式应用能够将复杂的业务逻辑分解并部署到不同的服务器上,从而提高...
Java Axis WebService 开发实例详解 在Java世界中,开发Web服务时,Axis是一个非常流行的开源工具,它允许开发者创建、部署和使用Web服务。本实例将深入探讨如何使用Axis来构建一个简单的Web服务,并进行调用。这个...
用Eclipse开发,一开始就会想到xfire,它是集成与Eclipse的.所以 开发起来非常方便,现在我们来看看axis的开发是怎么样的? 看完本文后,你可以相互比较一下xfire与它的差别. 首先,创建axis环境 .(注:我事先说明.这是...
Java调用WebService是一种常见的在分布式系统中实现服务交互的方式,主要应用于不同系统间的数据共享和功能集成。在Java中,有多种库可以帮助我们完成这项任务,其中之一就是Apache Axis2。本篇文章将详细介绍如何...
2.用cxf开发webservice 3.这个服务端和客户端的小demo 在服务端 对外开放接口服务,然后在客户端 调用服务端的方法, 实现客户端(一个javaweb项目)对服务端(javaweb项目)方法的调用, 实际上就是发送和接收消息...
Java开发生生WebService客户端代码操作步骤 Java开发生生WebService客户端代码操作步骤 Java开发生生WebService客户端代码操作步骤
使用cxf wsdl2java生成webservice客户端命令