自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

不需要Web應(yīng)用服務(wù)器Java實(shí)現(xiàn)WebServices

開(kāi)發(fā) 后端
Web Services是由企業(yè)發(fā)布的完成其特定商務(wù)需求的在線應(yīng)用服務(wù),其他公司或應(yīng)用軟件能夠通過(guò)Internet來(lái)訪問(wèn)并使用這項(xiàng)在線服務(wù)。它是一種構(gòu)建應(yīng)用程序的普遍模型,可以在任何支持網(wǎng)絡(luò)通信的操作系統(tǒng)中實(shí)施運(yùn)行;它是一種新的web應(yīng)用程序分支,是自包含、自描述、模塊化的應(yīng)用,可以發(fā)布、定位、通過(guò)web調(diào)用。

近日來(lái),在社區(qū)內(nèi)瀏覽了一部分關(guān)于Java來(lái)實(shí)現(xiàn)WebServives的帖子,發(fā)現(xiàn)其中90%以上都有這樣一步操作:

  1. 首先在進(jìn)行webservice 一定要下載Axis安裝包。
  2. 將某某文件配置到%TOMCAT_HOME%\webapps\axis\WEB-INF。
  3. 然后在web.xml 加上。

實(shí)際上這種做法本身沒(méi)有錯(cuò),但是卻扼殺了WebServices的諸多優(yōu)點(diǎn)。那么讓我們從頭了解一下什么是WebServices吧。

百度百科中寫(xiě)道:

Web Services是由企業(yè)發(fā)布的完成其特定商務(wù)需求的在線應(yīng)用服務(wù),其他公司或應(yīng)用軟件能夠通過(guò)Internet來(lái)訪問(wèn)并使用這項(xiàng)在線服務(wù)。它是一種構(gòu)建應(yīng)用程序的普遍模型,可以在任何支持網(wǎng)絡(luò)通信的操作系統(tǒng)中實(shí)施運(yùn)行;它是一種新的web應(yīng)用程序分支,是自包含、自描述、模塊化的應(yīng)用,可以發(fā)布、定位、通過(guò)web調(diào)用。

Web Service是一個(gè)應(yīng)用組件,它邏輯性的為其他應(yīng)用程序提供數(shù)據(jù)與服務(wù).各應(yīng)用程序通過(guò)網(wǎng)絡(luò)協(xié)議和規(guī)定的一些標(biāo)準(zhǔn)數(shù)據(jù)格式(Http,XML,Soap)來(lái)訪問(wèn)Web Service,通過(guò)Web Service內(nèi)部執(zhí)行得到所需結(jié)果.Web Service可以執(zhí)行從簡(jiǎn)單的請(qǐng)求到復(fù)雜商務(wù)處理的任何功能。一旦部署以后,其他Web Service應(yīng)用程序可以發(fā)現(xiàn)并調(diào)用它部署的服務(wù)。

在構(gòu)建和使用Web Service時(shí),主要用到以下幾個(gè)關(guān)鍵的技術(shù)和規(guī)則:

  1.XML:描述數(shù)據(jù)的標(biāo)準(zhǔn)方法.

  2.SOAP:表示信息交換的協(xié)議.

  3.WSDL:Web服務(wù)描述語(yǔ)言.

  4.UDDI(Universal Description, Discovery and Integration):通用描述、發(fā)現(xiàn)與集成,它是一種獨(dú)立于平臺(tái)的,基于XML語(yǔ)言的用于在互聯(lián)網(wǎng)上描述商務(wù)的協(xié)議。 實(shí)際上,WebService的主要目標(biāo)是跨平臺(tái)的可互操作性。為了達(dá)到這一目標(biāo),WebService完全基于XML(可擴(kuò)展標(biāo)記語(yǔ)言)、XSD(XMLSchema)等獨(dú)立于平臺(tái)、獨(dú)立于軟件供應(yīng)商的標(biāo)準(zhǔn),是創(chuàng)建可互操作的、分布式應(yīng)用程序的新平臺(tái)。

長(zhǎng)項(xiàng)一:跨防火墻的通信。

長(zhǎng)項(xiàng)二:應(yīng)用程序集成。

長(zhǎng)項(xiàng)三:B2B的集成。

回到標(biāo)題我所說(shuō)的,WebServices真的一定必須要什么Jar包嗎?需要插件么?實(shí)際上webservice實(shí)現(xiàn)有多種方式比如最常用的有axis框架,xfire框架,通過(guò)該框架可以發(fā)布wsdl接口,也可以實(shí)現(xiàn)webservice客戶端,目前eclipse都有集成的插件,可以根據(jù)wsdl文件生成webservice客戶端調(diào)用接口,但是這樣部署的時(shí)候必須依賴框架的jar包,有時(shí)候可能因?yàn)榄h(huán)境等等原因,我們僅僅需要wsdl中的某一個(gè)接口,這時(shí)候可以通過(guò)http接口或socket接口直接發(fā)生xml數(shù)據(jù),來(lái)調(diào)用服務(wù)端webservice服務(wù),其實(shí)webservice底層還是發(fā)送xml數(shù)據(jù),只是框架封裝了對(duì)xml數(shù)據(jù)進(jìn)行序列化與反序列化操作,下面以兩個(gè)簡(jiǎn)單的例子說(shuō)明http方式和socket方式。第一個(gè)例子:http實(shí)現(xiàn)webservice接口調(diào)用例子:

  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.         // 通過(guò)wsdl文件可以查看接口xml格式數(shù)據(jù),構(gòu)造調(diào)用接口xml數(shù)據(jù)        
  41.         String xml = "<SOAP-ENV:Envelope xmlns:SOAP-ENV=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:SOAP-ENC=\"http://schemas.xmlsoap.org/soap/encoding/\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">"       
  42.                     + "<SOAP-ENV:Body>"       
  43.                     +    "<m:getItemDetailSingle xmlns:m=\"http:xxxxxxxxxxxxxxxxxx/\">"       
  44.                     +        "<itemMo>"       
  45.                     +            "<category>政務(wù)域名</category>"       
  46.                     +            "<city>北京西壩河北里</city>"       
  47.                     +            "<flag>3</flag>"       
  48.                     +            "<itemId>10</itemId>"       
  49.                     +            "<itemIndex>22</itemIndex>"       
  50.                     +            "<keyword>朝陽(yáng)區(qū)</keyword>"       
  51.                     +            "<mobile>139-0111-1111</mobile>"       
  52.                     +            "<password>iteyePl</password>"       
  53.                     +            "<userName>hwak</userName>"       
  54.                     +        "</itemMo>"       
  55.                     +    "</m:getItemDetailSingle>"       
  56.                     + "</SOAP-ENV:Body>"       
  57.                     + "</SOAP-ENV:Envelope>";        
  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. }</PRE>   

以上兩個(gè)例子我們可以看出,Java來(lái)實(shí)現(xiàn)WebServices的時(shí)候Web應(yīng)用服務(wù)器不是必須的,希望各位同學(xué)能夠因地制宜好好的利用WebServices所提供的各種優(yōu)勢(shì),我們要不僅會(huì)做,還要善于做!

原文鏈接:http://hwak.iteye.com/blog/1222660

編輯推薦:

  1. Java和JSP編程中常見(jiàn)問(wèn)題分析
  2. Watij:面向Web的自動(dòng)化測(cè)試工具
  3. 用JSP控制Cookie的讀和寫(xiě)操作
  4. jsp & java 連接ibm DB2如何正確實(shí)現(xiàn)?
  5. jsp MySQL 中的中文問(wèn)題的實(shí)際解決
責(zé)任編輯:林師授 來(lái)源: hwak的博客
相關(guān)推薦

2009-01-10 19:32:36

2009-01-16 14:37:57

TomcatWeb服務(wù)器應(yīng)用服務(wù)器

2012-02-23 10:02:08

Web服務(wù)器應(yīng)用服務(wù)器

2017-10-17 09:15:06

Web服務(wù)器區(qū)別

2018-03-20 14:24:10

Web服務(wù)器HTTP

2009-06-18 10:03:57

EquinoxOSGi應(yīng)用服務(wù)器

2012-02-02 10:24:08

JavaResin

2018-12-12 08:40:11

服務(wù)器TomcatJava

2019-04-24 15:13:16

Web服務(wù)器應(yīng)用服務(wù)器Web容器

2019-07-17 15:05:35

應(yīng)用服務(wù)器Tomcat監(jiān)控

2009-02-27 14:25:00

Weblogic應(yīng)用服務(wù)器服務(wù)器管理

2009-06-16 15:35:20

JBoss應(yīng)用服務(wù)器

2021-05-28 05:18:08

PHP語(yǔ)言roadrunnner

2012-03-27 10:31:41

JavaResin

2019-10-23 10:14:24

TomcatJettyGlassFish

2014-05-30 11:29:36

Java服務(wù)器

2012-06-13 01:51:05

ResinJava

2017-08-08 14:33:36

無(wú)服務(wù)計(jì)算服務(wù)器

2014-08-08 16:35:37

應(yīng)用服務(wù)器
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)