动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ Java教程 ]的信息

本月文章推荐
.对于初学者学习Java语言的建议.
.java指南之使用图形:使用图像.
.java 方法.
.获得消息:J2EE 1.4 中的消息.
.J2EE WEB层的曙光 -- JSF.
.累积开发.
.Java ME中一个通用的游戏信息框架.
.Velocity中的变量问题的解决方法.
.面向对象编程之:Java collectio.
.巧用JBuilderX代码美化工具.
.读取和处理XM的配置文件.
.Java中Static、this、super、fin.
.Java初学者备忘录.
.java的30个学习目标.
.世界robocode机器人的四大运动方.
.Struts源码研究-logic-Iterator标.
.hibernate杂记.
.Java实现利用搜索引擎收集网址的.
..NET真的战胜了J2EE吗?它能吗?.
.如何在Web应用中启动后台任务.

使用SOAP开发Java Web服务详解

发表日期:2008-1-5 |



  本文的预定读者首先要对j2ee有所了解,熟悉XML,tomcat等基本内容,本文主要是简单介绍一下web服务的基本内容,怎样在Java web开发中构建SOAP服务:
  
  一、SOAP(Simple Object Access Protocol)简单对象访问协议
  要了解SOAP,首先就需要了解分布式计算的由来,随着下一代的分布式计算体系web服务的出现,SOAP成为了创建和调用通过网络发布的应用程序的实际通信标准。SOAP类似传统的二进制协议IIOP(CORBA)和JRMP(RMI),但它不采用二进制数据表示法,而是采用使用XML的,基于文本的数据表示法。
  
  通过XML表示法,SOAP定义了一种小型有线连接协议和编码格式,以表示数据类型、编程语言和数据库,还可以使用各种Internet标准协议作为其消息传输工具,还可以提供表示RPC和文档驱动的消息交换等通信模型的约定。请注重,W3C正致力于SOAP的研究,http://www.w3c.org/2000/XP/Group/ ,并得到了主流供给商的积极响应,以便对于基于XML的协议相关的重要任务达成共识,并定义其要害要求和使用场景。
  
  SOAP1.2的基本规范定义了以下基本内容:
  
  1)用于将XML文档表示为结构化SOAP消息的语法和语义
  2)在SOAP消息中表示数据的编码标准
  3)用于交换SOAP消息的通信模型
  4)SOAP传输等底层协议的绑定
  SOAP消息主要包括了信封头,消息头,主体,附件几部分
  一个简单的SOAP消息表示:
  POST  /StudentInfo  HTTP/1.1
  Host:anthropology.cun.edu
  Content-Type: text/xml;charset="utf-8"
  Content-Length: 640
  SOAPAction: "GetStudentInfo"
  
  <SOAP-ENV:Envelop xmlns:SOAP-ENV="http://www.w3c.org/2001/06/soap-envelope"
  xmlns:xsi="http://www.w3c.org/2001/XMLSchema-instance"
  xmlns:xsd="http://www.w3c.org/2001/XMLSchema"
  SOAP-ENV:encodingStyle="http://www.w3c.org/2001/06/soap-encoding">
  <SOAP-ENV:Header>
  <person:mail xmlns:person="http://www.cun.edu/Header">xyz@cun.edu
  </SOAP-ENV:Header>
  
  <SOAP-ENV:Body>
  <m:GetStudentInfo  xmlns:m="http://www.cun.edu/jws.student.studentInfo">
  <student_name xsi:type='xsd:string'>
  Wang wen yin
  </student>
  </m:GetStudentInfo>
  </SOAP-ENV:Body>
  </SOAP-ENV:Envelop>
  
  以上是1.2版本命名空间,1.1的命名空间 SOAP ENVELOPE:http://schemas.xmlsoap.org/soap/envelop/ ,SOAP ENCODING: http://schemas.xmlsoap.org/soap/encoding/
  
  关于SOAP编码规范请参阅www.w3c.org/TR/xmlschema-2/ 定义的编码值,其他的一些规范可以上www.w3c.org 上具体查看。
  
  二、以下从实际例子来学习
  这里我使用的是Apache的一个子项目Axis的具体例子,便于深入了解soap的运行:
  
  1)下载Axis的相关内容http://ws.apache.org/axis/:
  
  2)建立一个实例程序(遵守j2ee的web程序规范),如(WebServiceTest目录)
  
  把axis中lib文件夹的内容拷到你的WebServiceTest/WEB-INF/lib下,同时上网下载xerces(下载地点:http://xml.apache.org/xerces-j/)解释器的包文件xerces.jar,也拷到WebServiceTest/WEB-INF/lib文件夹下,(若要配置log4j,请把属性文件log4j.properties拷到WebServiceTest/WEB-INF/classes文件夹下)
  
  3)修改应用程序WebServiceTest/WEB-INF中的web.xml文件:主要servlet设置如下
  <servlet>
  <servlet-name>TestServlet</servlet-name>
  <servlet-class>org.apache.axis.transport.http.AxisServlet</servlet-class>
  </servlet>
  <servlet-mapping>
  <servlet-name>TestServlet</servlet-name>
  <url-pattern>*.jws</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
  <servlet-name>TestServlet</servlet-name>
  <url-pattern>/servlet/TestServlet</url-pattern>
  </servlet-mapping>
  
  <servlet-mapping>
  <servlet-name>TestServlet</servlet-name>
  <url-pattern>/services/*</url-pattern>
  </servlet-mapping>
  
  <servlet>
  <servlet-name>AdminServlet</servlet-name>
  <servlet-class>
  org.apache.axis.transport.http.AdminServlet
  </servlet-class>
  <load-on-startup>100</load-on-startup>
  </servlet>
  
  <servlet-mapping>
  <servlet-name>AdminServlet</servlet-name>
  <url-pattern>/servlet/AdminServlet</url-pattern>
  </servlet-mapping>
  
  <mime-mapping>
  <extension>wsdl</extension>
  <mime-type>text/xml</mime-type>
  </mime-mapping>
  
  <mime-mapping>
  <extension>xsd</extension>
  <mime-type>text/xml</mime-type>
  </mime-mapping>
  
  你现在可以在网址里输入http://localhost/WebServiceTest/servlet/TestServlet 看到了吗?Axis是使用axis.jar包里的org.apache.axis.transport.http.AxisServlet对应用程序进行处理的,基本配置就讲到这里。
  
  三、接着我们来说Axis中的内核
  1)不使用Tomcat引擎运行Axis。
  
  先建立一个脚步文件,对环境变量classpath进行设置要把lib下的那些包文件的路径全都包括进去,运行:java org.apache.axis.transport.http.SimpleAxisServer <port>
  
  2)内部服务处理程序是org.apache.axis.providers.java.RPCProvider,标志出服务所需的方法,然后提供从SOAP请求消息组成部分的参数。
  
  3)Axis的应用程序端治理功能:
  
  java org.apache.axis.client.AdminClient 就会列出参数,可供你选择。我们的例子是:java org.apache.axis.client.AdminClient -l http://localhost/WebserviceTest/servlet/TestServlet list 就会显示出服务列表,返回的是xml文件
  4)wsdl2java应用程序可以把wsdl文件创建基于java的程序,如占位程序等
  java org.apache.axis.wsdl.WSDL2java <url>
  
  Axis的基本内容说到这里
  
  四、具体例子
  1)编写逻辑程序,简单如:SoapTest.java
  public class SoapTest{
  public String getStr(String name){
  return "Hello,"+name;
  }
  }
  2) 部署服务,编写wsdd文件SoapTest_deploy.wsdd:
  <deployment name="SimapleTest" xmlns="http://xml.apache.org/axis/wsdd/"
  xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"
  xmlns:xsd="http://www.w3.org/2000/10/XMLSchema"
  xmlns:xsi="http://www.w3.org/2000/10/XMLSchema-instance">
  <service name="SoapTest" provider="java:RPC">
  <parameter name="className" value="SoapTest"/>
  <parameter name="allowedMethods" value="getStr"/>
  </service>
  </deployment>
  其中className参数是你的想部署的类名(全名),allowedMethods是调用的服务的方法,假如有多个方法的话可以用空格分开(如: <parameter name="allowedMethods" value="getStr getMoney"/>),当用*的时候表示全部。
  
  好了现在预备部署了,确保环境路径classpath设置正确,运行:
  
  java org.apache.axis.client.AdminClient -l http://localhost/WebserviceTest/servlet/TestServlet SoapTest_deploy.wsdd
  
  (这里不懂的话,请参考以上的说明)
  
  ok,呵呵,至此,我们已经完成了一个web服务的部署:测试http://localhost/WebServiceTest/servlet/TestServlet 看里面是否多了一个选择SoapTest服务?
  
  假如不想要服务了那重新编写一个wsdd文件,内容改为:
  
  <deployment name="SimapleTest" xmlns="http://xml.apache.org/axis/wsdd/"
  xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"
  xmlns:xsd="http://www.w3.org/2000/10/XMLSchema"
  xmlns:xsi="http://www.w3.org/2000/10/XMLSchema-instance">
  <service name="SoapTest"/>
  </deployment>
  
  和上面一样,对比一下就ok了。
  
  五、客户端测试:
  客户端我们也可以使用java来进行测试,网上也有资料的,你可以去学习,很简单的。现在为了体现web服务的魅力,我用.NET平台来测试吧,客户端使用c#编写(先要安装.net framework sdk):
  
  1)通过wsdl生成web服务代理,在net平台下运行:
  
  wsdl /l:CS /protocol:SOAP /out:SoapTestClient.cs http://localhost/WebserviceTest/services/SoapTest?wsdl
  
  我们通过wsdl得到了一个cs文件SoapTestClient.cs(当前目录),你可以打开cs文件,研究一下里面的代码,那个getStr(string name)就是我们需要调用的方法,我们的客户端通过调用该方法就可以调用服务器端的方法,内部的转化wsdl.exe工具已经帮我们完成了,axis下的WSDL2Java
上一篇:Session和Application在线用户应用 人气:1696
下一篇:基于.NET架构的核心开发技术 人气:518
浏览全部Java的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-10-14 25175学生成绩管理系统 v2.88
2008-10-14 冰雪CMS v2.0 bulid 081013
2008-10-14 Modoer多功能点评系统 v1.1 Beta
2008-10-14 乐风CMS乐风影视版 v2008.10.13
2008-10-14 FeitecCMS 40T免费资源网整站源码
2008-10-14 Asoft签到管理系统 v3.0 Pack2
2008-10-14 金博人才招聘求职网黄金版 v4.2
2008-10-14 游戏推广无限制版本
2008-10-14 AmEav WebSite 业网站管理系统 英
2008-10-11 联系人分组工具 v1.1 中文破解版
2008-10-11 FaceMelter变脸 v2.0 汉化破解版
2008-10-11 PathTracker道路跟踪仪 v1.2 破解
2008-10-11 Rooms手机聊天室 v0.6.7 破解版
2008-10-11 RemoteDesktop远程桌面 v1.0 破解
2008-10-11 ProRemote远程调音台 v1.0.1 破解
2008-10-11 PicShare照片共享 v1.0.0 破解版
2008-10-11 Photogene照片编辑器 v1.5 汉化破
2008-10-11 WriteRoom共享文档 v1.0 破解版
  发表评论
姓 名: 验证码:
内 容:
站长工具:网站收录查询 | Google PR查询 | ALEXA排名查询 | CSS在线编辑器 | 广告代码 | js/vbs加密 | md5加密 | 进制转换 | UTF-8 转换工具 | Html转换js | Html转换asp | Html转换php | Html转换perl
实用工具:汉字翻译拼音 | 拼音字典 | 符号对照表 | 个税计算 | 实时汇率查询换算 | 经典小工具 | 汉字简繁转换 | 普通单位换算 | 公制单位换算 | 生辰老黄历 | 国内电话区号 | 国家代码与域名缩写 | 文字加密解密 | 健康查询 | 万年历 | 汉字横竖排版 | 手机号码查询 | 计算器 | ip搜索
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号
ホームページ制作 不動産検索システム 求人情報
防水工事·改修工事 フットサル大会 探偵
SEO対策 中国語教室 ホームページ作成