- 浏览: 1504673 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (798)
- struts2 (42)
- servlet (20)
- quartz (4)
- jquery & ajax (24)
- tomcat (5)
- javascript (15)
- struts1 (8)
- 搜索关键字及链接 (3)
- fckeditor (3)
- Apache (5)
- spring (22)
- linux (3)
- 企业应用 (8)
- 综合应用 (13)
- 服务器 (2)
- 数据库 (85)
- 性能调优 (21)
- 网络应用 (15)
- 缓存技术 (8)
- 设计模式 (39)
- 面试题 (7)
- 程序人生&前辈程序员 (29)
- java基础 (59)
- hibernate (75)
- log4j (4)
- http (11)
- 架构设计 (28)
- 网页设计 (12)
- java邮件 (4)
- 相关工具 (11)
- ognl (7)
- 工作笔记 (18)
- 知识面扩展 (12)
- oracle异常 (1)
- 正则表达式 (2)
- java异常 (5)
- 项目实践&管理 (1)
- 专业术语 (11)
- 网站参考 (1)
- 论坛话题 (2)
- web应用 (11)
- cxf&webservice (22)
- freemarker (3)
- 开源项目 (9)
- eos (1)
- ibatis (6)
- 自定义标签 (3)
- jsp (3)
- 内部非公开文档(注意:保存为草稿) (0)
- 国内外知名企业 (2)
- 网店 (3)
- 分页 (1)
- 消费者习惯 (2)
- 每日关注 (1)
- 商业信息 (18)
- 关注商业网站 (1)
- 生活常识 (3)
- 新闻 (2)
- xml&JSON (5)
- solaris (1)
- apache.common (3)
- BLOB/CLOB (1)
- lucene (2)
- JMS (14)
- 社会进程 (8)
- SSH扩展 (2)
- 消费心理 (1)
- 珠三角 (1)
- 设计文档 (1)
- XWork&webwork (1)
- 软件工程 (3)
- 数据库及链接 (1)
- RMI (2)
- 国内外知名企业&人物 (1)
最新评论
-
司c马:
简介易懂、
OutputStream和InputStream的区别 -
在世界的中心呼喚愛:
解决我的问题
Java获取客户端的真实IP地址 -
bo_hai:
都是些基本的概念呀!
SSO -
tian_4238:
哥们,你也是搞水利这块的吧。
巧用SQLQuery中的addScalar -
loveEVERYday:
java.util.Date、java.sql.Date、java.sql.Time、java.sql.Timestamp小结
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--> 点击右上角的WSDL Page小图标(本代码中)--> 右边单元中WSDL URL Browse下的文本框中输入“http://localhost:7070/HelloWorldService?wsdl”-->Go!-->展开左边单元节点,点击sayHello-->点击右单元arg0后面的add,输入参数“tom”-->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-->preferences-->myeclipse enterprise workbench-->internet tools-->TCP/IP Monitor,设置监听器,别忘了点击start启动监听。
(2)window-->show view-->other-->myeclipse common-->TCP/IP Monitor,显示TCP/IP Monitor视窗。
(3)更改上述wsdl文档并另存到e盘,更改的是访问地址,改为监听地址。
(4)删除前述WS explorer信息,重新访问,不过得手动输入URL:file:e:/xxx.wsdl-->Go!(file表示文件协议,不能省略;后续内容参照步骤4)此时就可以看到TCP/IP Monitor视图里的请求响应信息了。</xxx>
发表评论
-
J2EE关于ApacheAxis2的Webservice消息
2011-09-19 20:18 1603到目前为止,web service ... -
Axis Web Service开发之旅 (十) --异步调用WebService
2011-09-19 19:52 2974http://blog.csdn.net/crazystone ... -
《精通JAVA核心技术》-21.6 web服务开发
2011-07-18 10:06 1228详细的描述了使用axis开发web服务。 -
联通接口.doc
2011-07-14 09:44 1165联通接口.doc -
联通接口
2011-07-14 09:34 1联通接口 -
传智播客-web service(8)-利用xfire开发WS应用
2011-07-03 11:45 1979xfire概述 xfire是下一代j ... -
传智播客-web service(7)-序列化与反序列化、文件上传与下载
2011-07-03 11:44 2579序列化与反序列化 WS中 ... -
传智播客-web service(6)-即时发布与定制发布、wsdl文档与java对象
2011-07-03 11:42 2102即时发布与定制发布 ... -
传智播客-web service(5)-利用axis开发WS应用
2011-07-03 11:41 1696Axis 1、再说soap。 前文 ... -
传智播客-web service(3)-web service与SOA、web service与ejb
2011-07-03 11:39 1696Web Service与SOA web servic ... -
传智播客-web service(1)-B/S、C/S与远程调用
2011-07-03 11:38 2022web service是徐培成老师 ... -
传智播客-web service(2)-ESB、SOAP和WSDL
2011-07-03 11:36 1735ESBESB,Enterprise Service Bus ... -
Web服务搜索与执行引擎(七)——重温WSDL与SOAP
2011-06-29 14:50 1807接下来的几篇文章是让 ... -
调用天气预报Web Service客户端
2011-06-29 10:27 3566(结合JAVA的WebService支持.pdf进行理解) ... -
官方例子及相关文章
2011-06-28 17:26 1278http://www.stevencharlesrobinso ... -
Jaxb 通过bean与xml交互
2011-06-28 16:05 2027package test; import java.io.F ... -
使用 JAXB 框架定制 Web 服务行为
2011-06-28 15:38 1920http://www.ibm.com/developerwor ... -
webservice_张孝祥
2011-06-22 14:13 5webservice_张孝祥.rar -
常用Web Service汇总(天气预报、时刻表等)
2011-06-21 11:51 1334下面总结了一些常用的Web Service,是平时乱逛时收 ... -
webservice---HelloWorld
2010-11-18 15:42 1302服务器端: 1、下载附件中的HelloWorld.rar,在 ...
相关推荐
【传智播客--IDEA快速使用入门视频(上)】是针对初学者设计的一系列教程,旨在帮助用户迅速掌握JetBrains的IntelliJ IDEA这一强大的集成开发环境(IDE)。这个上半部分的教程由20个短视频组成,总计约1小时,涵盖了...
### 传智播客java_web视频教程笔记知识点详解 #### Eclipse工具使用技巧 **1. Java代码的位置设置** - **工作空间(Workspace)选择:** 首先选择一个文件夹作为工作空间来存放程序(代码)。为了避免路径问题,...
《深入解析bcprov-jdk15on与bcprov-ext-jdk15on:Java加密库的秘密武器》 在Java开发中,加密技术是至关重要的,它保障了数据的安全传输和存储。bcprov-jdk15on和bcprov-ext-jdk15on是Bouncy Castle项目提供的两个...
在Java开发过程中,有时会遇到一个异常:“java.lang.RuntimeException: Could not generate DH keypair”。这个异常通常是由于Java加密库的问题导致的,特别是在进行安全通信,如使用SSL/TLS协议时,系统尝试生成...
根据提供的文件信息,我们可以推断出这是一本关于Java编程语言的基础入门教程,由传智播客出版。虽然具体的PDF内容未给出,但从标题、描述和部分可见内容来看,本书主要面向初学者,旨在帮助他们掌握Java编程的基本...
jdk-8u60-windows-i586 jdk-8u60-windows-i586 jdk-8u60-windows-i586 jdk-8u60-windows-i586 jdk-8u60-windows-i586
- **Web安全**:在开发支持HTTPS的Web服务器或客户端时,bcprov可以用于处理SSL/TLS连接,提供安全的数据传输。 - **数据加密**:对于需要保护敏感信息的应用,bcprov提供了多种加密算法供选择,确保数据的安全存储...
"bcprov-ext-jdk15on-154.jar" 和 "bcprov-jdk15on-154.jar" 是两个非常重要的工具jar包,它们属于Bouncy Castle加密库,专门用于解决Java中的加密和安全问题,尤其是当系统遇到"javax.net.ssl.SSLException: java....
【Android实战培训PPT】是传智播客提供的高级软件人才实作培训资源,专注于3G应用开发,特别是Android平台的学习。这份培训资料涵盖了从基础知识到实战技能的多个方面,对于想深入理解并掌握Android开发的学员来说是...
"传智播客java开发入门预热班教案"是一个专门为初学者设计的学习资源,旨在帮助他们打下坚实的Java编程基础。传智播客是一家知名的教育机构,其课程质量得到了业界的认可。 首先,我们要理解Java的基础概念。Java是...
通过这个视频教程,你将能够深入理解Struts2的基本原理和用法,学会如何利用Struts2构建一个简单的Web应用。同时,掌握Struts2的开发环境搭建,有助于你在实际项目中快速上手。传智播客的教程以通俗易懂的方式讲解,...
在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中...
本套资料是2018年传智播客发布的最新Linux和Redis相关的学习资源,旨在帮助用户深入理解和实践这两种技术。以下将对其中涉及的关键知识点进行详细解读。 首先,我们来看JDK的安装。在Linux环境下安装JDK1.8,通常会...
Java编程语言作为一款广泛应用的面向对象的编程语言,其学习资源丰富多样,其中"传智播客2015年JAVA基础班视频教程(全套)"便是为初学者提供的一套系统化的学习材料。这套教程出自传智播客,一个在IT教育领域具有较...
Web服务是一种基于标准协议(如SOAP、REST等)在不同系统间交换数据的方式,它促进了应用程序之间的互操作性。在本篇文章中,我们将探讨如何利用Java SDK中的JAX-WS(Java API for XML Web Services)来创建和消费...
总结,JDK1.8(jdk-8u171)是Java开发的重要里程碑,它的新特性极大地改善了开发者的工作流程,并提高了代码的可读性和性能。通过国内镜像高速下载,可以更高效地获取安装包。安装后,开发者可以利用JDK提供的丰富...
在Java Web开发中,基础工具的熟练使用至关重要,Eclipse作为一款流行的集成开发环境(IDE),其高效的操作技巧是每个开发者必须掌握的。在Lesson 1中,主要介绍了Eclipse的基本使用和一些快捷键,以及JDK5的新特性...
通过这些知识点的学习,初学者可以系统地掌握JavaSE的基本技能,为进一步学习JavaEE(企业级应用开发)或Android移动开发奠定基础。"传智播客毕向东JavaSE课件"不仅提供了理论知识,还可能包含丰富的实战案例和习题...