【程序编程相关:java程序员面试的悖论】
【推荐阅读:Root cause of Servle】1. 环境配置【扩展信息:Java参数传递的一些心得】
为了运行程序,我们首先必须配置好环境:共要下载四个软件包,它们都是开源免费的.其中,前两个是apache的,后两个是sun网站的,如下所示:n soap:http://apache.freelamp.com/ws/soap/version-2.3.1/n xerces:http://xml.apache.org/dist/xerces-j/ n javamail:http://java.sun.com/products/javamail/downloads/index.html n jaf:http://java.sun.com/products/javabeans/glasgow/jaf.html 下载后将它们分别解压缩.分别在这四个包的解压目录中找到:xerces.jar.soap.jar.mail.jar.activation.jar(jaf的),则是四个jar文件是我们所需要的.本机安装环境:windowsxp(sp2) + jdk1.4.2_06 + tomcat5.0.28 + soap2.3.1配置步骤:1.安装jdk与tomcat.过程比较简单,这里不再详述.2.将刚才所找到的四个jar文件复制到tomcat的“tomcat 5.0\common\lib”目录下,这个目录是tomcat的默认包目录,在这个目录中的所有包在tomcat启动时都会被自动加载.3.将\ jdk1.4.2\lib\路径下的tools.jar也复制到tomcat的“tomcat 5.0\common\lib”目录下.4.将soap解压目录的webapps目录下的soap.war文件,复制到tomcat的“tomcat 5.0\webapps”目录下,这个目录是tomcat的web应用所在目录.重新启动tomcat,tomcat会自动将其解压,并配置好路径.可以尝试在浏览器中输入“http://localhost:8080/soap/”, 看soap是否安装好.5.注意在编写程序时,需要将所得到的四个jar文件路径设置到所使用的java编程环境中,因为在程序中需要用到其中的类文件.具体步骤略.6.重启tomcat服务.这时tomcat会将“tomcat 5.0\common\lib”目录下新加入的包加载到内存中.到此,我们已经配置好了程序运行所需要的环境.2. 基于soap的xml文档网络传输soap规范主要定义了四个元素:soap信封规范,传输与协议绑定,编码规则与一个rpc协定.用于实现消息的网络传输.n soap信封规范,soap信封规范对计算机间传递的数据如何封装定义了具体的规则.这包括应用特定的数据,如要调用的方法名,方法参数与返回值;还包括谁将处理封装内容,失败时如何编码错误消息等信息.n 数据编码规则,为了交换数据,计算机必须在编码特定数据类型的规则上达成一致,soap也有自己的一套编码数据类型的约定.大部分约定都基于w3c xml schema规范.n rpc协定,soap能用于单向与双向等各种消息接发系统.soap为双向消息接发定义了一个简单的协定来进行远程过程调用与响应,这使得客户端应用可以指定远程方法名,获取任意多个参数并接受来自服务器的响应.n 传输与协议绑定,提供了更底层协议传输soap封套的一套通用机制.而以上四个部分统称为一个soap消息.我们先来看一篇xml文档是如何变成soap的.采用一个简单的购物订单文件po.xml .内容为:<?xml version="1.0" encoding="utf-8"?><purchaseorder xmlns="urn:oreilly-jaws-samples"> <shipto country="us"> <name>joe smith</name> <street>14 oak park</street> <city>bedford</city> <state>ma</state> <zip>01730</zip> </shipto> <items> <item partnum="872-aa"> <productname>candy canes</productname> <quantity>444</quantity> <price>1.68</price> <comment>i want candy!</comment> </item> </items></purchaseorder>其对应的soap消息为:post /servlettemp/httpreceive http/1.0host: localhostcontent-type: text/xml; charset=utf-8content-length: 939soapaction: "urn:oreilly-jaws-samples"
<?xml version=1.0 encoding=utf-8?><soap-env:envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xmlns:xsd="http://www.w3.org/2001/xmlschema"><soap-env:header><jaws:messageheader xmlns:jaws="urn:oreilly-jaws-samples" soap-env:mustunderstand="1" xmlns:soap-env="urn:oreilly-jaws-samples"><from>me</from><to>you</to><messageid>9999</messageid></jaws:messageheader></soap-env:header><soap-env:body><purchaseorder xmlns="urn:oreilly-jaws-samples"> <shipto country="us"> <name>joe smith</name> <street>14 oak park</street> <city>bedford</city> <state>ma</state> <zip>01730</zip> </shipto>... 下一页