`
newleague
  • 浏览: 1492295 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类

传智播客-web service(4)-利用jdk6开发WS应用

 
阅读更多
java开发web service最简单的方式是用jdk6自带的支持web service的注解功能。 1、编写代码如下: @WebService(serviceName="HelloWorldService", targetNamespace="www.itcast.cn") public class HelloWorldService { @WebMethod public String sayHello(String name){ System.out.println(name); return "Hello, " + name; } public static void main(String[] args) { //终端,发布web service,参数1是服务公开的访问地址address,参数2是服务的具体实现implement Endpoint.publish("http://localhost:7070/HelloWorldService", new HelloWorldService()); } } 其中,targetNamespace的默认值是service类所在包名,当然也可以手动赋值。但是要想通过targetNamespace直接在浏览器里访问,还需要特别配置。如果不加载到web容器中,可以在host系统文件里添加“127.0.0.1 www.itcast.cn”,不过这样访问的话还需要在“www.itcast.cn”后加端口(端口是自定义的,随意)才能访问;如果加载到tomcat这样的容器里访问,可以在tomcat系统文件中通过类似配置实现。tomcat可以连同端口一起配置到虚拟域名中,windowsXP的host文件可能也有这样的配置,欲知详情,请自行google百度。 2、运行代码,一般java app运行方式即可。可以看到运行后进程和启ServerSocket服务程序一样一直出于开启状态。不过要注意jdk6的具体版本。如果是jdk6u10以下的版本,直接运行应该会报错“Wrapper class cn.itcast.jdkws.service.jaxws.SayHello is not found. Have you run APT to generate them?”,这时必须先用apt命令将主程序(service类)进行编译,然后生成一些java文件到jaxws目录下,再运行主程序即可。如果是jdk6u16及以上版本,直接运行,不会报错。 3、打开浏览器,输入“http://localhost:7070/HelloWorldService”,回车,此时页面可能是“Web Services No JAX-WS context information available.”这样的信息。一般浏览器不能直接访问WS程序,不过所有的WS都可以生成WSDL文档供一般浏览器访问,方式是在地址后面加上“?wsdl”即可。WSDL文档中的<xxx>即前文说的“soap信封”。生成的文档如下: <?xml version="1.0" encoding="UTF-8" ?> - <!-- Published by JAX-WS RI at http://jax-ws.dev.java.net. RI''s version is JAX-WS RI 2.1.6 in JDK 6. --> - <!-- Generated by JAX-WS RI at http://jax-ws.dev.java.net. RI''s version is JAX-WS RI 2.1.6 in JDK 6. --> - <definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://service.jdkws.itcast.cn/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/wsdl/" targetnamespace="http://service.jdkws.itcast.cn/" name="HelloWorldService"> - <types> - <schema><import namespace="http://www.itcast.cn/" schemalocation="http://localhost:7070/HelloWorldService?xsd=1"></import></schema></types> - <message name="sayHello"><part name="parameters" element="tns:sayHello"></part></message> - <message name="sayHelloResponse"><part name="parameters" element="tns:sayHelloResponse"></part></message> - <porttype name="HelloWorldService"> - <operation name="sayHello"><input message="tns:sayHello"><output message="tns:sayHelloResponse"></output></operation></porttype> - <binding name="HelloWorldServicePortBinding" type="tns:HelloWorldService"><binding transport="http://schemas.xmlsoap.org/soap/http" style="document"></binding> - <operation name="sayHello"><operation soapaction=""></operation> - <input><body use="literal"></body> - <output><body use="literal"></body> </output></operation></binding> - <service name="HelloWorldService"> - <port name="HelloWorldServicePort" binding="tns:HelloWorldServicePortBinding"><address location="http://localhost:7070/HelloWorldService"></address> </port></service></definitions> 4、不过IDE提供了WS explorer工具开启WS客户端,极大方便了WS的测试。Eclipse和MyEclipse都有这个工具: WS explorer--&gt; 点击右上角的WSDL Page小图标(本代码中)--&gt; 右边单元中WSDL URL Browse下的文本框中输入“http://localhost:7070/HelloWorldService?wsdl”--&gt;Go!--&gt;展开左边单元节点,点击sayHello--&gt;点击右单元arg0后面的add,输入参数“tom”--&gt;Go! 可以看到下面出现了body内容,展开body,有返回值“Hello tom”。点击下单元右上角的source,可以看到具体的soap信封封装的请求响应中传输的xml数据信息。而且此时控制台也打印出了tom。 其实整个上述过程并没有用到tomcat,但是为什么可以通过WS explorer以浏览器形式访问service呢?因为jdk6的Endpoint类的实现里封装一个微型的web容器。不过正如前面所说,WS explorer是IDE提供的WS测试工具,可以通过其查看WS的流程、机制,但是生产环境下不应依赖于它。而且jdk6的WS支持还不那么稳定,所以现在生产环境下并不采用jdk6开发WS,入入门还可以,也许稳定以后就可以了。 5、MyEclipse还有个自带的工具(eclipse的没找到,不知道有没有)--TCP/IP Monitor也可以查看WS传输信息。不过这时的访问地址应该改为TCP/IP Monitor里设置的监听地址。 (1)window--&gt;preferences--&gt;myeclipse enterprise workbench--&gt;internet tools--&gt;TCP/IP Monitor,设置监听器,别忘了点击start启动监听。 (2)window--&gt;show view--&gt;other--&gt;myeclipse common--&gt;TCP/IP Monitor,显示TCP/IP Monitor视窗。 (3)更改上述wsdl文档并另存到e盘,更改的是访问地址,改为监听地址。 (4)删除前述WS explorer信息,重新访问,不过得手动输入URL:file:e:/xxx.wsdl--&gt;Go!(file表示文件协议,不能省略;后续内容参照步骤4)此时就可以看到TCP/IP Monitor视图里的请求响应信息了。</xxx>
分享到:
评论

相关推荐

    传智播客--IDEA快速使用入门视频(上)

    【传智播客--IDEA快速使用入门视频(上)】是针对初学者设计的一系列教程,旨在帮助用户迅速掌握JetBrains的IntelliJ IDEA这一强大的集成开发环境(IDE)。这个上半部分的教程由20个短视频组成,总计约1小时,涵盖了...

    《Java 基础入门(传智播客)》_高清中文版pdf 网盘链接

    根据提供的文件信息,我们可以推断出这是一本关于Java编程语言的基础入门教程,由传智播客出版。虽然具体的PDF内容未给出,但从标题、描述和部分可见内容来看,本书主要面向初学者,旨在帮助他们掌握Java编程的基本...

    bcprov-ext-jdk15on-1.54.jar和bcprov-jdk15on-1.54.jar压缩文件

    《深入解析bcprov-jdk15on与bcprov-ext-jdk15on:Java加密库的秘密武器》 在Java开发中,加密技术是至关重要的,它保障了数据的安全传输和存储。bcprov-jdk15on和bcprov-ext-jdk15on是Bouncy Castle项目提供的两个...

    bcprov-ext-jdk15on-1.54.jar,bcprov-jdk15on-1.54.jar

    在Java开发过程中,有时会遇到一个异常:“java.lang.RuntimeException: Could not generate DH keypair”。这个异常通常是由于Java加密库的问题导致的,特别是在进行安全通信,如使用SSL/TLS协议时,系统尝试生成...

    jdk-8u60-windows-i586-JDK1.8-32位

    jdk-8u60-windows-i586 jdk-8u60-windows-i586 jdk-8u60-windows-i586 jdk-8u60-windows-i586 jdk-8u60-windows-i586

    jdk-8u251-macosx-x64 Mac版JDK官网下载,告别5KB/S!

    `jdk-8u251-macosx-x64.dmg`是一个适用于Mac OS的磁盘映像文件,类似于Windows上的.exe安装程序。用户可以通过双击该文件,然后按照提示进行安装。DMG文件可以方便地创建和分享软件安装包,无需额外的安装程序。 **...

    bcmail-jdk15on-1.49.jar/bcpkix-jdk15on-1.49.jar/bcprov-jdk15on-1.49.jar打包下载

    - **Web安全**:在开发支持HTTPS的Web服务器或客户端时,bcprov可以用于处理SSL/TLS连接,提供安全的数据传输。 - **数据加密**:对于需要保护敏感信息的应用,bcprov提供了多种加密算法供选择,确保数据的安全存储...

    bcprov-jdk16-143.jar和bcprov-jdk15-135.jar

    在jdk中的jre\lib\security修改java.security文件, security.provider.6=com.sun.security.sasl.Provider 下面添加 security.provider.7=org.bouncycastle.jce.provider.BouncyCastleProvider 在\jre\lib\ext中...

    传智播客Android实战培训PPT

    【Android实战培训PPT】是传智播客提供的高级软件人才实作培训资源,专注于3G应用开发,特别是Android平台的学习。这份培训资料涵盖了从基础知识到实战技能的多个方面,对于想深入理解并掌握Android开发的学员来说是...

    bcprov-ext-jdk15on-154.jar和bcprov-jdk15on-154.jar

    "bcprov-ext-jdk15on-154.jar" 和 "bcprov-jdk15on-154.jar" 是两个非常重要的工具jar包,它们属于Bouncy Castle加密库,专门用于解决Java中的加密和安全问题,尤其是当系统遇到"javax.net.ssl.SSLException: java....

    传智播客java开发入门预热班教案

    "传智播客java开发入门预热班教案"是一个专门为初学者设计的学习资源,旨在帮助他们打下坚实的Java编程基础。传智播客是一家知名的教育机构,其课程质量得到了业界的认可。 首先,我们要理解Java的基础概念。Java是...

    apache-tomcat-4.1.39-LE-jdk14.tar.gz

    Apache Tomcat是一款开源的Java Servlet容器,主要用于运行Java Web应用程序,包括JSP和Servlet。这里的"apache-tomcat-4.1.39-LE-jdk14.tar.gz"是Tomcat的一个特定版本,适用于Linux操作系统。这个版本号4.1.39表明...

    传智播客struts2.1视频教程_介绍struts2及struts2开发环境的搭建

    通过这个视频教程,你将能够深入理解Struts2的基本原理和用法,学会如何利用Struts2构建一个简单的Web应用。同时,掌握Struts2的开发环境搭建,有助于你在实际项目中快速上手。传智播客的教程以通俗易懂的方式讲解,...

    2018传智播客最新Linux+Redis源码资料

    本套资料是2018年传智播客发布的最新Linux和Redis相关的学习资源,旨在帮助用户深入理解和实践这两种技术。以下将对其中涉及的关键知识点进行详细解读。 首先,我们来看JDK的安装。在Linux环境下安装JDK1.8,通常会...

    传智播客2015年JAVA基础班视频教程(全套)

    Java编程语言作为一款广泛应用的面向对象的编程语言,其学习资源丰富多样,其中"传智播客2015年JAVA基础班视频教程(全套)"便是为初学者提供的一套系统化的学习材料。这套教程出自传智播客,一个在IT教育领域具有较...

    Web Service学习小结——基于JDK自带JAX-WS实现的web service

    Web服务是一种基于标准协议(如SOAP、REST等)在不同系统间交换数据的方式,它促进了应用程序之间的互操作性。在本篇文章中,我们将探讨如何利用Java SDK中的JAX-WS(Java API for XML Web Services)来创建和消费...

    jdk-6u20-windows-i586(官方下载地址)

    "jdk-6u20-windows-i586" 是一个特定版本的JDK,面向Windows操作系统32位(i586)平台。这个版本号"6u20"表示JDK 6的更新20,发布于2011年,当时是Java 6的重要更新之一。 JDK 6引入了许多新特性、增强和性能优化,...

Global site tag (gtag.js) - Google Analytics