`

java发布webService

 
阅读更多
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实例

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

    java发布webservice接口

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

    java开发webservice的简单例子

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

    java发布webService 步骤

    本篇文章将详细讲解如何使用Java来发布一个Web服务,并在Tomcat服务器上部署运行。 一、准备工作 1. **安装Java开发环境**:确保你已经安装了Java JDK,可以访问Java API并编译Java源代码。 2. **安装Tomcat服务器...

    java 利用webservice传输文件

    在“java 利用webservice传输文件”的场景中,JACOB可能被用来执行以下任务: 1. **文件操作**:Windows系统有许多内置的COM组件,如Scripting.FileSystemObject,可用于读写文件、创建目录等。通过JACOB,Java程序...

    java开发webservice入门最全讲解demo

    java开发webservice入门最全讲解demo

    java webService接口开发案例

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

    java发布WebService.doc

    总结起来,Java发布WebService涉及到的主要知识点有: - Java编程基础,包括类和方法的定义。 - Eclipse IDE的使用,创建项目、配置服务器、部署应用。 - JAX-WS框架,用于创建和发布Web服务。 - Tomcat服务器的...

    java开发webservice.doc

    总结来说,Java 6通过内置的JAX-WS简化了Web Service的开发过程,无需额外的框架或库即可创建和发布服务。这种方式减少了依赖,便于部署和维护,同时也保留了Java的灵活性。开发者只需要关注服务的业务逻辑,而无需...

    Java开发WebService实例--计数器.mht

    Java开发WebService实例--计数器.mht

    java版WebService生成客户端和服务端的实例

    在Java世界中,WebService是一种基于XML的开放标准技术,它允许不同系统间的应用程序进行通信,跨越不同的操作系统和编程语言。本实例将详细讲解如何使用Apache Axis1.4工具来生成Java版的WebService服务端和客户端...

    java的webservice服务端程序

    - 在提供的压缩包中,可能包含了如`axis2`, `jaxws-api`, `saaj-api`, `wsdl4j`等jar包,它们是Java开发WebService所必需的库文件,用于处理SOAP消息、解析WSDL文件和执行其他相关任务。 4. **内部逻辑代码实现**...

    用Java 开发 WebService Axis简单实例

    在开发之前, 先了解一下AXIS,axis目前出现的2版本以其灵活性,快速开发工具的集成高于xfire而使用者居其上.用Eclipse开发,一开始就会想到xfire,它是集成与Eclipse的.所以 开发起来非常方便,现在我们来看看axis的开发...

    axis1.4带lib包java开发webservice客户端和服务端

    标题 "axis1.4带lib包java开发webservice客户端和服务端" 涉及到的是一个基于Java的Web服务开发工具包,Axis1.4,它包含必要的库文件(lib)来支持创建和消费Web服务。这个压缩包是为MyEclipse集成开发环境设计的,...

    JAVA调用webservice并解析xml

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

    java 调用 webService工具类

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

    java实现webservice实例.doc

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

    java调用WebService实例

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

    java开发webService完整例子借鉴.pdf

    Java 开发 Web 服务完整例子 本文档主要讲述了 Java 开发 Web 服务的完整例子,包括使用 JDK 中的 Web 服务 API 实现 Web 服务,以及使用 XFire 工具来生成 Web 服务。 一、使用 JDK 中的 Web 服务 API 实现 Web ...

Global site tag (gtag.js) - Google Analytics