`
chenlk823
  • 浏览: 37345 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

收集的地址

 
阅读更多
http://topic.csdn.net/u/20080506/16/6932ccbc-27ce-43a4-963a-e8e0a6e87f52.html
http://di201yao.iteye.com/blog/310292

本文的预定读者首先要对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
分享到:
评论

相关推荐

    114URL邮件地址收集王

    《114URL邮件地址收集王》是一款专门用于邮件地址采集的工具,它旨在帮助用户高效、快速地从网络上搜集邮件地址,以满足各种邮件营销或者信息传递的需求。邮件搜集与邮件采集是该软件的核心功能,下面我们将详细探讨...

    @邮件地址收集器

    然而,手动搜集电子邮件地址既耗时又繁琐,因此,自动化工具如"@邮件地址收集器"的出现,无疑为用户提供了极大的便利。 "@邮件地址收集器"是一款基于网络爬虫技术设计的工具,它能够高效地从互联网的各个角落搜集...

    邮箱地址搜集器

    《邮箱地址搜集器》强大的邮箱地址搜集功能可以帮您根据设定的种子数量和关键字内容,在互联网上搜集@163.com、@126.com、@QQ.com、@hotmail.com、@sina.com、@gmail.com、@sohu.com、@aliyun.com、@foxmail.com、@...

    ip数据库 IP地址数据是民间收集的

    收集了包括中国电信、中国移动、中国联通、长城宽带、聚友宽带等 ISP 的最新准确 IP 地址数据。包括 最全的网吧数据。希望能够通过大家的共同努力打造一个没有未知数据,没有错误数据的QQ IP。IP数据库每 5天更新一...

    邮箱捕手电子邮箱地址搜集器

    垃圾邮件不仅使接收邮件的用户烦恼,同样也很难为发送邮件的...该软件的最大特点是允许设置关键字,利用搜索引擎搜集与所设置的关键字直接相关的电子邮箱地址。最大程度地确保商家能够更有针对性地发送商业电子邮件。

    电子邮件地址搜集器

    电子邮件地址搜集器是一种工具,主要用于自动化地从网络上抓取并收集电子邮件地址。这个特定的程序利用了Winsock库来实现网络通信,Winsock是Windows操作系统中的一个核心组件,为应用程序提供TCP/IP协议的访问接口...

    中北大学操作系统云沙箱实验报告-使用Shell脚本实现局域网MAC地址收集和FTP服务监控

    实验报告“中北大学操作系统云沙箱实验报告-使用Shell脚本实现局域网MAC地址收集和FTP服务监控”详细介绍了如何通过Shell脚本在Linux操作系统中管理和监控局域网内的设备。实验主要分为三个部分:FTP服务器的部署、...

    快速收集邮箱地址快速收集邮箱地址

    在IT行业中,收集邮箱地址可能涉及到网络爬虫技术、数据挖掘和隐私保护等多个方面。"快速收集邮箱地址"这个主题通常是指通过自动化手段从互联网上抓取或提取电子邮件地址,以便进行市场营销、邮件群发或其他相关活动...

    基于地址转发表的交换式以太网拓扑发现方法

    - **数据收集**:首先,从各个交换机收集地址转发表数据。这些数据包含了MAC地址、对应的端口号等信息。 - **谓词逻辑转换**:将每个地址转发表中的记录转换为谓词逻辑公式。例如,“交换机X的端口P1上挂载了MAC地址...

    升级信息收集服务器设置操作指南.docx

    3. 设置信息收集地址:MSO信息收集的地址是服务器获取数据的入口。在这里,指定地址为`collect/info/`,注意末尾的斜线,这是URL路径的标准格式,用于指示服务器在哪个路径下查找和接收信息。 通过以上步骤,你将...

    droid免费邮箱地址收集器

    【标题】"Droid免费邮箱地址收集器"是一款专门用于搜索和收集互联网上免费邮箱地址的工具。它采用蜘蛛爬虫技术,能够根据用户输入的特定网站URL或在Google搜索引擎中设定的关键字来查找和抓取邮箱地址。这款软件的...

    vb.net 邮件地址收集(网络蜘蛛)

    【VB.NET邮件地址收集(网络蜘蛛)】 在VB.NET编程中,邮件地址收集通常涉及到网络爬虫技术,这是一种自动抓取互联网上信息的程序。在这个过程中,开发人员编写代码来模拟用户浏览网页的行为,逐页解析HTML源码,...

    论坛收集到的EMAIL地址共110000条

    标题中的“论坛收集到的EMAIL地址共110000条”表明这是一份包含大量电子邮件地址的数据集,可能来源于网络论坛的用户注册信息或者是公开的讨论区。这些电子邮件地址可能被用于市场营销、调查研究或者数据分析目的。...

    扫描内网ip地址 局域网mac地址扫描

    在局域网内,MAC地址用于设备之间的直接通信,如ARP(Address Resolution Protocol)协议就依赖MAC地址来实现IP地址与物理地址之间的转换。 "扫描内网ip,扫描内网mac地址,局域网mac地址"这一主题涉及到网络管理的...

    绝对热门,精心收集的邮件地址打包下载

    本资源是一个名为"绝对热门,精心收集的邮件地址打包下载"的压缩文件,其中包含了从2008年10月至12月期间收集并经过筛选和验证的成功邮件地址列表。这份列表共有6万6千个邮箱地址,这在商业领域具有很高的价值,因为...

    第六节 收集真实IP地址信息-01

    收集真实IP地址信息 在网络安全中,收集真实IP地址信息是非常重要的一步。因为在很多情况下,网站或应用程序会使用CDN(Content Delivery Network,内容分发网络)来加速用户访问和保护服务器免受攻击。但是,在...

    美国综合地址数据库

    《美国综合地址数据库详解》 美国综合地址数据库是面向学术研究的一个重要数据资源,它集成了海量的地理信息,为学者提供了丰富的研究素材。这个数据库不仅包含基础的地址信息,还可能涵盖了与地址相关的多种附加...

    邮件地址超多,从网上收集到的!

    邮件地址的收集与管理是网络营销、数据挖掘以及客户服务等多个领域中常见的任务。标题"邮件地址超多,从网上收集到的!"揭示了这个压缩包文件可能包含大量的电子邮件地址,这些地址可能是通过网络抓取或公开数据源获取...

    百度邮件地址采集软件

    在信息技术领域,邮件地址采集软件是一种工具,它能够自动化地在网络上搜集电子邮件地址,从而提高工作效率,节省人力。这里的“百度邮件地址采集软件”显然是一个专注于通过百度搜索引擎来发现邮件地址的工具。这类...

    内网MAC地址获取器,方便收集各主机特征码,方便修改IP地址-get Physical in Loacl net.zip

    3. **获取MAC地址的工具**:这个“内网MAC地址获取器”可能是一个小程序,可以扫描局域网内的所有设备,并收集它们的MAC地址。这样的工具对于网络管理员来说非常实用,可以帮助他们快速了解网络中的设备状态,识别未...

Global site tag (gtag.js) - Google Analytics