不需要Web应用服务器Java实现WebServices

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

庐江网站建设公司创新互联建站,庐江网站设计制作,有大型网站制作公司丰富经验。已为庐江超过千家提供企业网站建设服务。企业网站搭建\外贸网站建设要多少钱,请找那个售后服务好的庐江做网站的公司定做!

  1. 首先在进行webservice 一定要下载Axis安装包。
  2. 将某某文件配置到%TOMCAT_HOME%\webapps\axis\WEB-INF。
  3. 然后在web.xml 加上。

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

百度百科中写道:

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

Web Service是一个应用组件,它逻辑性的为其他应用程序提供数据与服务.各应用程序通过网络协议和规定的一些标准数据格式(Http,XML,Soap)来访问Web Service,通过Web Service内部执行得到所需结果.Web Service可以执行从简单的请求到复杂商务处理的任何功能。一旦部署以后,其他Web Service应用程序可以发现并调用它部署的服务。

在构建和使用Web Service时,主要用到以下几个关键的技术和规则:

  1.XML:描述数据的标准方法.

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

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

  4.UDDI(Universal Description, Discovery and Integration):通用描述、发现与集成,它是一种独立于平台的,基于XML语言的用于在互联网上描述商务的协议。 实际上,WebService的主要目标是跨平台的可互操作性。为了达到这一目标,WebService完全基于XML(可扩展标记语言)、XSD(XMLSchema)等独立于平台、独立于软件供应商的标准,是创建可互操作的、分布式应用程序的新平台。

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

长项二:应用程序集成。

长项三:B2B的集成。

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

 
 
 
  1. import java.io.BufferedReader;       
  2. import java.io.IOException;       
  3. import java.io.InputStreamReader;       
  4. import java.io.OutputStreamWriter;       
  5. import java.io.UnsupportedEncodingException;       
  6. import java.net.MalformedURLException;       
  7. import java.net.URL;       
  8. import java.net.URLConnection;       
  9.       
  10. public class HttpPostTest {       
  11.     void testPost(String urlStr) {       
  12.         try {       
  13.             URL url = new URL(urlStr);       
  14.             URLConnection con = url.openConnection();       
  15.             con.setDoOutput(true);       
  16.             con.setRequestProperty("Pragma:", "no-cache");       
  17.             con.setRequestProperty("Cache-Control", "no-cache");       
  18.             con.setRequestProperty("Content-Type", "text/xml");       
  19.                    
  20.             OutputStreamWriter out = new OutputStreamWriter(con.getOutputStream());           
  21.             String xmlInfo = getXmlInfo();       
  22.             out.write(new String(xmlInfo));       
  23.             out.flush();       
  24.             out.close();       
  25.             BufferedReader br = new BufferedReader(new InputStreamReader(con.getInputStream()));       
  26.             String line = "";       
  27.             StringBuffer buf = new StringBuffer();       
  28.             for (line = br.readLine(); line != null; line = br.readLine()) {       
  29.                 buf.append(new String(line.getBytes(),"UTF-8"));       
  30.             }       
  31.             System.out.println(buf.toString());       
  32.         } catch (MalformedURLException e) {       
  33.             e.printStackTrace();       
  34.         } catch (IOException e) {       
  35.             e.printStackTrace();       
  36.         }       
  37.     }       
  38.       
  39.     private String getXmlInfo() {       
  40.         // 通过wsdl文件可以查看接口xml格式数据,构造调用接口xml数据       
  41.         String xml = ""      
  42.                     + ""      
  43.                     +    ""      
  44.                     +        ""      
  45.                     +            "政务域名"      
  46.                     +            "北京西坝河北里"      
  47.                     +            "3"      
  48.                     +            "10"      
  49.                     +            "22"      
  50.                     +            "朝阳区"      
  51.                     +            "139-0111-1111"      
  52.                     +            "iteyePl"      
  53.                     +            "hwak"      
  54.                     +        ""      
  55.                     +    ""      
  56.                     + ""      
  57.                     + "";       
  58.         return xml;       
  59.     }       
  60.       
  61.     public static void main(String[] args) throws UnsupportedEncodingException {       
  62.         String url = "http://localhost:9999/dataService/services/Job";       
  63.         new HttpPostTest().testPost(url);       
  64.     }       
  65. }
  

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

分享题目:不需要Web应用服务器Java实现WebServices
文章起源:http://www.stwzsj.com/qtweb/news19/12569.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联