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>