`
yufeimen
  • 浏览: 25512 次
  • 来自: 广州
社区版块
存档分类
最新评论

JDK6 Web Service开发(转贴)

    博客分类:
  • java
阅读更多

JSR-181的元数据清单
下面介绍JSR-181里面各个元数据的相关参数及用途
Annotation Retention Target Description 
 WebService  Runtime Type 
 标注要暴露为Web Services的类或接口 
 WebParam  Runtime Parameter 自定义服务方法参数到WSDL的映射 
 WebResult  Runtime Method 自定义服务方法返回值到WSDL的映射 
 WebMethod  Runtime Method 自定义单个服务方法到WSDL的映射 
 Oneway  Runtime Method 必须与@WebMethod连用,表明被标注方法只有输入没有输出,这就要求被标注方法不能有返回值,也不能声明checked exception
 
 HandlerChain  Runtime Type,Method,Field 将Web服务与外部Handler chain关联起来 
 SOAPBinding  Runtime Type,Method 自定义SOAPBinding 

JSR-181元数据使用示例

package WebServices;

import java.io.File;
import java.io.IOException;
import javax.jws.Oneway;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;
import javax.xml.ws.Endpoint;

/**
 * @author chinajash
 */
@WebService(targetNamespace="http://blog.csdn.net/chinajash",serviceName="HelloService")
public class WSProvider {
    @WebResult(name="Greetings")//自定义该方法返回值在WSDL中相关的描述    
    @WebMethod
    public String sayHi(@WebParam(name="MyName") String name){
        return "Hi,"+name; //@WebParam是自定义参数name在WSDL中相关的描述
    }    
    @Oneway //表明该服务方法是单向的,既没有返回值,也不应该声明检查异常
    @WebMethod(action="printSystemTime",operationName="printSystemTime")//自定义该方法在WSDL中相关的描述
    public void printTime(){
        System.out.println(System.currentTimeMillis());
    }
    public static void main(String[] args) {
        Thread wsPublisher = new Thread(new WSPublisher());
        wsPublisher.start();
    }    
    private static class WSPublisher implements Runnable{
        public void run() {
            //发布WSProvider到http://localhost:8888/chinajash/WSProvider这个地址,之前必须调用wsgen命令
            //生成服务类WSProvider的支持类,命令如下:
            //wsgen -cp . WebServices.WSProvider
            Endpoint.publish("http://localhost:8888/chinajash/WSProvider",new WSProvider());
        }        
    }
}

如果想看到Web Services Engine生成的WSDL文件是否遵守上面的元数据, 我们没有必要将上面的WSProvider部署到支持JSR-181的应用服务器或Servlet形式的Web Services Engine,现在JDK6已经提供了一个很简单的机制可以用来测试和发布Web Services,下面讲讲如何在JDK6环境下发布Web Services和查看生成的WSDL
1.将/bin加入path环境变量
2.在命令行下切换当前目录到WSProvider的class文件所在的目录,运行下面命令
wsgen -cp . WebServices.WSProvider
在这个例子中会生成以下3个类的源代码文件及class文件
SayHi
SayHiResponse
PrintTime
3.执行如下代码发布WSProvider到http://localhost:8888/chinajash/WSProvider,在这里可以执行WSProvider类的main方法就可以
Endpoint.publish("http://localhost:8888/chinajash/WSProvider",new WSProvider());
4.在浏览器输入http://localhost:8888/chinajash/WSProvider?wsdl就可以看到生成的WSDL文件

/**.用wsimport为服务消费者(也就是服务的客户端)生成必要的帮助类,命令如下:
wsimport http://localhost:8888/chinajash/WSProvider?wsdl
这会在<当前目录>\net\csdn\blog\chinajash下生成客户端的帮助类,在这个例子中会生成7个类
HelloService.class
ObjectFactory.class
package-info.class
PrintSystemTime.class
SayHi.class
SayHiResponse.class
WSProvider.class
在客户端用下面代码即可调用步骤1定义的Web Service
HelloService hs = new HelloService();
WSProvider ws = hs.getWSProviderPort();
System.out.println(ws.sayHi("chinajash"));
ws.printSystemTime();
调用上述代码后客户端控制台输出
hi,chinajash
服务端控制台输出服务器当前系统时间

*/

分享到:
评论

相关推荐

    精通JavaJDK、数据库系统开发Web开发程序源文件

    这个压缩包文件的主题聚焦于“精通JavaJDK、数据库系统开发以及Web开发程序源文件”,这暗示了它包含了一系列用于学习和实践这三个核心领域的资源。下面我们将深入探讨这些关键知识点。 1. **JavaJDK**: JavaJDK...

    精通Java--JDK、数据库系统开发、Web开发基础与实例

    《精通Java--JDK、数据库系统开发、Web开发基础与实例》是一本全面覆盖Java编程技术及应用实践的书籍。本书旨在帮助读者深入理解和熟练掌握Java语言,从基础到高级,从理论到实践,全方位提升Java开发技能。 首先,...

    精通Java_JDK、数据库系统开发、Web开发

    精通Java_JDK、数据库系统开发、Web开发

    javaJDK数据库开发web开发

    《精通Java - JDK、数据库系统开发、Web开发》是一本专为初学者和进阶者设计的Java技术大全,旨在帮助读者全面掌握Java编程、数据库交互以及Web应用开发的核心技能。书中通过209个精心设计的实例,深入浅出地讲解了...

    jdk5 下 CXF 开发 WEB Service client 所需jar 包

    在Java开发领域,Web服务(Web Service)是一种用于应用程序之间进行通信的标准协议,它使得不同系统之间能够交换数据。在JDK 5环境下,Apache CXF是一个常用的框架,用于开发和消费Web服务,无论是作为服务提供者...

    精通Java:JDK、数据库系统开发Web开发(实例代码)

    《精通Java:JDK、数据库系统开发Web开发》全书共分27章,内容涵盖了Java编程环境概述、基础语法、面向对象软件设计方法、线程、数据集合、网络编程、图形编程、多媒体编程以及Java Web开发。本书每一节的例子都是...

    jdk6 开发webservice

    JDK 6引入了JAX-WS(Java API for XML Web Services),它是一个标准的、基于注解的框架,简化了Web Service的开发流程。以下是对标题和描述中涉及的知识点的详细说明: 1. **JAX-WS**: JAX-WS是Java平台的一个核心...

    windows64位jdk6、jdk7、jdk8安装包

    JDK6还支持新的XML解析器和改进的Java插件,使得Java应用程序可以在Web浏览器中更好地运行。 JDK7是继JDK6之后的又一重大更新,于2011年推出。这个版本引入了许多创新,包括对try-with-resources语句的支持,允许更...

    web服务开发 使用jdk6注解 注解分析

    在 JDK 1.6 版本中,注解的引入极大地简化了 Web 服务的开发,使得开发者能够更高效地创建、部署和管理 Web 服务。 `@WebService` 是 Java Web Services (JAX-WS) 中的一个核心注解,用于声明一个类或接口作为 Web ...

    jdk tomcat axis 安装配置 web service 发布

    6. 将Web服务的WAR文件部署到Tomcat的`webapps`目录下,或者手动将服务相关的文件复制到Tomcat的`webapps`目录下的特定应用目录。 7. 启动Tomcat,通过浏览器访问Web服务的URL,验证服务是否正常工作。 通过以上...

    jdk6免安装下载 免费下载

    首先,JDK6引入了许多关键的新特性,以提升开发效率和程序性能。其中包括: 1. **泛型类型推断**:Java 5引入了泛型,而JDK6进一步优化了这一特性,允许编译器进行类型推断,减少了冗余的类型参数。 2. **改进的...

    jdk6-linux

    对于开发者来说,能够在Ubuntu上安装并使用JDK6意味着他们可以利用这个平台的稳定性和安全性来开发Java应用。 【标签】"jdk6-linux"和"linux-jdk"是对这个压缩包内容的简洁概括。"jdk6-linux"强调了这是JDK6的Linux...

    jdk6开发webservce

    当我们谈论“JDK6开发Web服务”时,这意味着我们将探讨如何使用Java 6版本来创建和实现Web服务。Web服务是一种通过网络进行通信的应用程序,它允许不同系统之间的数据交换,通常基于SOAP(Simple Object Access ...

    Java JDK6开发工具

    JDK是整个Java的核心,包括了Java运行环境(Java Runtime ...最主流的JDK是Sun公司发布的JDK,除了Sun之外,还有很多公司和组织都开发了自己的JDK,例如IBM公司开发的JDK,BEA公司的Jrocket,还有GNU组织开发的JDK等等.

    jdk6u45JDK6u45

    5. **Web服务支持**:JDK6u45增强了对Java API for RESTful Web Services (JAX-RS)的支持,使得开发RESTful服务变得更加便捷。 6. **动态语言支持**:通过JSR 292(也称为 invokedynamic),JDK6u45引入了对动态...

    如何使用Eclipse开发Web Service

    【如何使用Eclipse开发Web Service】 在开发Web Service时,Eclipse作为一个强大的集成开发环境(IDE),提供了便捷的工具和插件支持。本篇将详细阐述如何在Eclipse中进行Web Service的开发。 1. **准备工作** ...

    精通JavaJDK、数据库系统开发、Web开发.iso

    第4章(\程序源文件\第四章) BreakAndContinue.java 定义了各种类型的变量 TestPlus.java 增量运算符的使用 Example.java 条件运算符的使用 ForLoopTest.java 使用for语句实现循环 ...

    web网页开发工具java JDK

    java web开发的基本工具java JDK

Global site tag (gtag.js) - Google Analytics