名扬数据:不需要Web应用服务器Java实现WebServices

Java来实现WebServic时候Web应用服务器不是必需的希望各位同学能够因地制宜好好的利用WebServic所提供的各种优势,以上两个例子我可以看出。要不仅会做,还要善于做!

社区内浏览了一部分关于Java来实现WebServ帖子,近日来。发现其中90%以上都有这样一步操作:

首先在进行webservic一定要下载Axi装置包。

将某某文件配置到%TOMCA T_HOME%\webapps\axis\WEB-INF

然后在web.xml加上。

但是却扼杀了WebServic诸多优点。那么让我从头了解一下什么是WebServic吧。实际上这种做法自身没有错。

百度百科中写道:

自包含、自描述、模块化的应用,可以发布、定位、通过web调用。WebServic由企业发布的完成其特定商务需求的线应用服务,其他公司或应用软件能够通过Internet来访问并使用这项在线服务。一种构建应用顺序的普遍模型,可以在任何支持网络通信的操作系统中实施运行;一种新的web应用顺序分支。

其他WebServic应用顺序可以发现并调用它安排的服务。WebServic一个应用组件,逻辑性的为其他应用顺序提供数据与服务.各应用顺序通过网络协议和规定的一些规范数据格式(HttpXMLSoap来访问WebService,通过WebServic内部执行得到所需结果.WebServic可以执行从简单的请求到复杂商务处置的任何功能。一旦布置以后。

主要用到以下几个关键的技术和规则构建和使用WebServic时.:

1.XML:描述数据的规范方法.

2.SOA P:表示信息交换的协议.

3.WSDL:Web服务描述语言.

一种独立于平台的基于XML语言的用于在互联网上描述商务的协议。实际上,WebServic主要目标是跨平台的可互操作性。为了达到这一目标,WebServic完全基于XML可扩展标志语言)XSDXMLSchema等独立于平台、独立于软件供应商的规范,创建可互操作的分布式应用程序的新平台。4.UDDIUniversDescription,DiscoveriandIntegrat:通用描述、发现与集成。

长项一:跨防火墙的通信。

长项二:应用顺序集成。

长项三:B2B集成。

xfire框架,回到标题我所说的WebServic真的一定必需要什么Jar包吗?需要插件么?实际上webservic实现有多种方式比如最常用的有axi框架。通过该框架可以发布wsdl接口,也可以实现webservic客户端,目前eclips都有集成的插件,可以根据wsdl文件生成webservic客户端调用接口,但是这样安排的时候必需依赖框架的jar包,有时候可能因为环境等等原因,仅仅需要wsdl中的某一个接口,这时候可以通过http接口或socket接口直接发生xml数据,来调用服务端webservic服务,其实webservic底层还是发送xml数据,只是框架封装了对xml数据进行序列化与反序列化操作,下面以两个简单的例子说明http方式和socket方式。第一个例子:http实现webservic接口调用例子:

importjava.io.BufferedReader;       

importjava.io.IOException;       

importjava.io.InputStreamReader;       

importjava.io.OutputStreamWriter;       

importjava.io.UnsupportedEncodingException;       

importjava.net.MalformedURLException;       

importjava.net.URL;       

importjava.net.URLConnection;       

      

publicclassHttpPostTest{       

   voidtestPostStringurlStr{       

       try{       

           URLurl=newURLurlStr;       

           URLConnectcon=url.openConnect;       

           con.setDoOutputtrue;       

"no-cache";                  con.setRequestProperti"Pragma:".

"no-cache";                  con.setRequestProperti"Cache-Control".

"text/xml";                  con.setRequestProperti"Content-Type".

                   

           OutputStreamWritout=newOutputStreamWritcon.getOutputStream;           

           StringxmlInfo=getXmlInfo;       

           out.writnewStringxmlInfo;       

           out.flush;       

           out.clos;       

           BufferedReadbr=newBufferedReadnewInputStreamReadcon.getInputStream;       

           Stringline="";       

           StringBuffbuf=newStringBuff;       

           forline=br.readLin;line!=null;line=br.readLin{       

"UTF-8";                      buf.appendnewStringline.getByt.

           }       

           System.out.printlnbuf.toStr;       

       }catchMalformedURLExcepte{       

           e.printStackTrac;       

       }catchIOExceptione{       

           e.printStackTrac;       

       }       

   }       

      

   privatStringgetXmlInfo{       

构造调用接口xml数据              //通过wsdl文件可以检查接口xml格式数据。

       Stringxml="<SOA P-ENV:Envelopxmlns:SOA P-ENV=\"http://schemas.xmlsoap.org/soap/envelope/\"xmlns:SOA P-ENC=\"http://schemas.xmlsoap.org/soap/encoding/\"xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">"      

                   +"<SOA P-ENV:Body>"      

                   +   "<m:getItemDetailSinglxmlns:m=\"http:xxxxxxxxxxxxxxxxxx/\">"      

                   +       "<itemMo>"      

                   +           "<category>政务域名</category>"      

                   +           "<city>北京西坝河北里</city>"      

                   +           "<flag>3</flag>"      

                   +           "<itemId>10</itemId>"      

                   +           "<itemIndex>22</itemIndex>"      

                   +           "<keyword>向阳区</keyword>"      

                   +           "<mobile>139-0111-1111</mobile>"      

                   +           "<password>iteyePl</password>"      

                   +           "<userName>hwak</userName>"      

                   +       "</itemMo>"      

                   +   "</m:getItemDetailSingle>"      

                   +"</SOA P-ENV:Body>"      

                   +"</SOA P-ENV:Envelope>";       

       returnxml;       

   }       

      

   publicstaticvoidmainString[]argthrowUnsupportedEncodingExcept{       

       Stringurl="http://localhost:9999/dataService/services/Job";       

       newHttpPostTest.testPosturl;       

   }       

}</PRE>