Web 服务已经出现很久了。首先是 SOAP,但 SOAP 仅描述消息的情况,然后是 WSDL,WSDL 并不会告诉您如何使用
Java™ 编写 Web 服务。在这种情况下,JAX-RPC 1.0 应运而生。经过数月使用之后,编写此规范的 Java Community
Process (JCP) 人员认识到需要对其进行一些调整,调整的结果就是 JAX-RPC 1.1。该规范使用大约一年之后,JCP
人员希望构建一个更好的版本:JAX-RPC 2.0。其主要目标是与行业方向保持一致,但行业中不仅只使用 RPC Web 服
务,还使用面向消息的 Web 服务。因此从名称中去掉了“RPC”,取而代之的是“WS”(当然表示的是 Web 服务)
。因此 JAX-RPC 1.1 的后续版本是 JAX-WS 2.0——Java API for XML-based Web services。
首先,编写服务端接口实现类(java SEI)Service Endpoint Interface
package endpoint;
import javax.jws.WebMethod;
import javax.jws.WebService;
@WebService(name = "Calculator", serviceName = "CalculatorService", targetNamespace =
"http://techtip.com/jaxws/sample")
public class Calculator {
public Calculator() {
}
@WebMethod(operationName = "add", action = "urn:Add")
public int add(int i, int j) {
int k = i + j;
System.out.println(i + "+" + j + " = " + k);
return k;
}
}
研究上面的实现类Calculator,注意到类里的两个注释的使用@WebService跟@WebMethod。一个正确的端点实现类必
须包含有一个@WebService注释。这个注释标注这个类将作为一个web服务对外开放。@WebService的name属性表明了
web服务描述语言(WSDL)里的端口类型(portType)(在这个例子里是”Calculator”)。而
serviceName="CalculatorService"对应的是一个WSDL里的服务元素(service)。targetNamespace属性为WSDL说明了
XML的命名空间。所有的这些属性都是可选的。对于这些属性的默认值是什么,请参考Web Services Metadata for
the Java Platform规范,JSR 181。
再来看看另外一个重要的注释@WebMethod,被它注释过的方法说明将它以一个
web服务的方法暴露出来,被其他应用来调用。@WebMethod注释里的operationName
声明了WSDL里的一个元素WSDL operation(在这个例子里,”add”),另外一
个属性action =("urn:Add"),它为WSDL还有一些从这个web服务操作(web service operation)生
成的元素声明了一个命名空间。这两个属性都是可选的。如果你没有列出来的
话,WSDL操作(operation)的值将会默认为方法名,还有action值也会默认为
服务的targetNamespace。
2.执行wsgen
D:\>wsgen -cp D:\EclipseWorckspace\JavaWS\bin -s D:\EclipseWorckspace\JavaWS\sr
c -d D:\EclipseWorckspace\JavaWS\bin -r D:\EclipseWorckspace\JavaWS\wsdl -wsdl e
ndpoint.Calculator
3.把生成的源文件放到工程里面,通过Endpoin类执行发布
JDK6提供了发布Web Service的简便方法:
package endpoint;
import javax.xml.ws.Endpoint;
public class Publish {
public static void main(String[] args) {
Endpoint.publish("http://localhost:8181/cal", new Calculator());
System.out.println("success...");
}
}
这样,就可以通过soupUI测试发布的服务了。
wsgen命令的使用
该命主要用来对SEI实现类做处理,生成相应的.java、.class和wsdl文件;使用方法如下:
-cp 指明编译后的class文件所在的目录,要用全名,并且后面要跟个“.”,去两边要有空格;
-s 定义把生成的.java文件放在哪个目录(必须指定目录)
-d 定义把生成的.class文件放在哪个目录(必须指定目录)
-wsdl 指定生成wsdl文件(没有目录,即便指定也是生成在-d所指定的目录里)
-version 版本号
例如:wsgen -cp . endpoint.Calculator -s src -d bin -wsdl
上面都是相对目录。
分享到:
相关推荐
### Java开发WebService实例详解 在IT领域,尤其是企业级应用开发中,WebService作为一种标准化的、跨平台的服务交互方式,被广泛应用于系统间的数据交换与服务调用。本文将基于给定的“Java开发WebService实例”...
java开发过程中,很多地方都会遇到数据传递,远程获取数据问题,我这个简单的webservice接口发布可以在java开发过程中,很多地方都会遇到数据传递,远程获取数据问题,我这个简单的webservice接口发布可以在
Java开发Web服务(Web Service)是一种常见的技术,用于在不同应用程序之间实现互操作性。Web服务基于开放标准,如XML(可扩展标记语言)、WSDL(Web服务描述语言)和SOAP(简单对象访问协议),使得服务提供者可以...
本篇文章将详细讲解如何使用Java来发布一个Web服务,并在Tomcat服务器上部署运行。 一、准备工作 1. **安装Java开发环境**:确保你已经安装了Java JDK,可以访问Java API并编译Java源代码。 2. **安装Tomcat服务器...
在“java 利用webservice传输文件”的场景中,JACOB可能被用来执行以下任务: 1. **文件操作**:Windows系统有许多内置的COM组件,如Scripting.FileSystemObject,可用于读写文件、创建目录等。通过JACOB,Java程序...
java开发webservice入门最全讲解demo
Java WebService接口开发是将Java应用程序暴露为网络服务的一种方式,允许不同系统间的数据交换和交互。本案例将深入探讨如何使用Java实现Web服务的创建、发布和调用。 一、理解WebService WebService是一种基于...
总结起来,Java发布WebService涉及到的主要知识点有: - Java编程基础,包括类和方法的定义。 - Eclipse IDE的使用,创建项目、配置服务器、部署应用。 - JAX-WS框架,用于创建和发布Web服务。 - Tomcat服务器的...
总结来说,Java 6通过内置的JAX-WS简化了Web Service的开发过程,无需额外的框架或库即可创建和发布服务。这种方式减少了依赖,便于部署和维护,同时也保留了Java的灵活性。开发者只需要关注服务的业务逻辑,而无需...
Java开发WebService实例--计数器.mht
在Java世界中,WebService是一种基于XML的开放标准技术,它允许不同系统间的应用程序进行通信,跨越不同的操作系统和编程语言。本实例将详细讲解如何使用Apache Axis1.4工具来生成Java版的WebService服务端和客户端...
- 在提供的压缩包中,可能包含了如`axis2`, `jaxws-api`, `saaj-api`, `wsdl4j`等jar包,它们是Java开发WebService所必需的库文件,用于处理SOAP消息、解析WSDL文件和执行其他相关任务。 4. **内部逻辑代码实现**...
在开发之前, 先了解一下AXIS,axis目前出现的2版本以其灵活性,快速开发工具的集成高于xfire而使用者居其上.用Eclipse开发,一开始就会想到xfire,它是集成与Eclipse的.所以 开发起来非常方便,现在我们来看看axis的开发...
标题 "axis1.4带lib包java开发webservice客户端和服务端" 涉及到的是一个基于Java的Web服务开发工具包,Axis1.4,它包含必要的库文件(lib)来支持创建和消费Web服务。这个压缩包是为MyEclipse集成开发环境设计的,...
在IT行业中,调用Web服务并解析XML是常见的任务,特别是在Java开发中。Web服务,尤其是基于SOAP(Simple Object Access Protocol)的,提供了一种标准的跨平台、跨语言的数据交换方式。本教程将深入讲解如何在Java...
在Java开发中,调用Web服务是常见的任务,特别是当我们需要与远程系统进行交互或集成时。本工具类主要用于简化这个过程,确保开发者能够高效、可靠地调用WebService。下面我们将详细探讨Java调用WebService的相关...
使用cxf wsdl2java生成webservice客户端命令
3. 移动应用程序:WebService可以用于实现移动应用程序的后台服务,提供了一个灵活的移动应用程序开发模式。 Java实现WebService实例提供了一个灵活的解决方案,用于实现不同的应用程序之间的交互和集成。
Java调用WebService是一种常见的在分布式系统中实现服务交互的方式,主要应用于不同系统间的数据共享和功能集成。在Java中,有多种库可以帮助我们完成这项任务,其中之一就是Apache Axis2。本篇文章将详细介绍如何...