`

JAVA开发WebService (一)

阅读更多

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服务了:

 

package com.why.client;

public class HelloClient {

 public static void main(String[] args) {
  Hello hello = new HelloService().getHelloPort();
  String s = hello.sayHello("why");
  System.out.println(s);
 }
}
 

执行代码,输出:Hello why

分享到:
评论

相关推荐

    Java开发WebService实例

    ### Java开发WebService实例详解 在IT领域,尤其是企业级应用开发中,WebService作为一种标准化的、跨平台的服务交互方式,被广泛应用于系统间的数据交换与服务调用。本文将基于给定的“Java开发WebService实例”...

    java开发webservice的简单例子

    Java开发Web服务(Web Service)是一种常见的技术,用于在不同应用程序之间实现互操作性。Web服务基于开放标准,如XML(可扩展标记语言)、WSDL(Web服务描述语言)和SOAP(简单对象访问协议),使得服务提供者可以...

    java webService接口开发案例

    Java WebService接口开发是将Java应用程序暴露为网络服务的一种方式,允许不同系统间的数据交换和交互。本案例将深入探讨如何使用Java实现Web服务的创建、发布和调用。 一、理解WebService WebService是一种基于...

    java 利用webservice传输文件

    在IT行业中,Java是一种广泛应用的编程语言,而Web服务(Web Service)则是一种基于标准的、平台无关的方式,使得不同的应用...理解并熟练掌握这一技术,对于Java开发者来说,无疑会提升其在企业级应用开发中的能力。

    java开发webservice入门最全讲解demo

    java开发webservice入门最全讲解demo

    java发布webservice接口

    java开发过程中,很多地方都会遇到数据传递,远程获取数据问题,我这个简单的webservice接口发布可以在java开发过程中,很多地方都会遇到数据传递,远程获取数据问题,我这个简单的webservice接口发布可以在

    java开发webservice.doc

    Java开发Web Service是一种在分布式环境中实现服务调用的技术,它允许不同系统间的应用程序通过网络进行通信。在Java 6及更高版本中,JAX-WS(Java API for XML Web Services)已经成为标准的一部分,使得开发Web ...

    java注解webservice学习第一篇

    在Java Web服务(WebService)开发中,注解的应用极大地简化了服务的创建和配置。本文将深入探讨如何使用Java注解来构建Web服务,并结合给出的“lib”压缩包文件,推测可能包含了一些用于支持Web服务的库文件。 ...

    JAVA调用webservice并解析xml

    在IT行业中,调用Web服务并解析XML是常见的任务,特别是在Java开发中。Web服务,尤其是基于SOAP(Simple Object Access Protocol)的,提供了一种标准的跨平台、跨语言的数据交换方式。本教程将深入讲解如何在Java...

    JAVA6开发WebService (三)——几个概念

    在Java 6中开发Web服务(WebService)是企业级应用中的常见任务,它允许不同的系统之间通过网络交换数据。本文将深入探讨Web服务的几个关键概念,帮助开发者更好地理解和使用这项技术。 首先,我们来理解什么是Web...

    myeclipse开发Java WebService.zip

    MyEclipse是基于Eclipse的商业级Java开发工具,它集成了多种功能,如Java EE应用开发、Web开发、数据库管理等。对于Java WebService的开发,MyEclipse提供了一站式的解决方案,包括服务创建、调试和部署。 2. **...

    java 调用 webService工具类

    在Java开发中,调用Web服务是常见的任务,特别是当我们需要与远程系统进行交互或集成时。本工具类主要用于简化这个过程,确保开发者能够高效、可靠地调用WebService。下面我们将详细探讨Java调用WebService的相关...

    java实现webservice实例.doc

    3. 移动应用程序:WebService可以用于实现移动应用程序的后台服务,提供了一个灵活的移动应用程序开发模式。 Java实现WebService实例提供了一个灵活的解决方案,用于实现不同的应用程序之间的交互和集成。

    Java访问c#开发的webservice

    ### Java访问C#开发的Webservice详解 #### 一、引言 在现代软件开发过程中,尤其是对于大型项目而言,采用分布式系统架构已经成为一种常态。分布式应用能够将复杂的业务逻辑分解并部署到不同的服务器上,从而提高...

    java axis webservice 开发实例

    Java Axis WebService 开发实例详解 在Java世界中,开发Web服务时,Axis是一个非常流行的开源工具,它允许开发者创建、部署和使用Web服务。本实例将深入探讨如何使用Axis来构建一个简单的Web服务,并进行调用。这个...

    用Java 开发 WebService Axis简单实例

    用Eclipse开发,一开始就会想到xfire,它是集成与Eclipse的.所以 开发起来非常方便,现在我们来看看axis的开发是怎么样的? 看完本文后,你可以相互比较一下xfire与它的差别. 首先,创建axis环境 .(注:我事先说明.这是...

    java调用WebService实例

    Java调用WebService是一种常见的在分布式系统中实现服务交互的方式,主要应用于不同系统间的数据共享和功能集成。在Java中,有多种库可以帮助我们完成这项任务,其中之一就是Apache Axis2。本篇文章将详细介绍如何...

    Java cxf开发webservice,分别有客户端和服务端

    2.用cxf开发webservice 3.这个服务端和客户端的小demo 在服务端 对外开放接口服务,然后在客户端 调用服务端的方法, 实现客户端(一个javaweb项目)对服务端(javaweb项目)方法的调用, 实际上就是发送和接收消息...

    Java生成WebService客户端代码操作步骤.txt

    Java开发生生WebService客户端代码操作步骤 Java开发生生WebService客户端代码操作步骤 Java开发生生WebService客户端代码操作步骤

    使用cxf wsdl2java生成webservice客户端

    使用cxf wsdl2java生成webservice客户端命令

Global site tag (gtag.js) - Google Analytics