当前位置:首页 > 青鸟知识 > java

不需求完成WebServices

来源:长沙电脑培训学校 发布日期:2016-05-21
摘要:近日来,在社区内阅读了一部门关于Java来完成WebServives的帖子,发现此中90%以上都有多么一步支配

近日来,在社区内阅读了一部门关于Java来完成WebServives的帖子,发现此中90%以上都有多么一步支配:

起首在中止webservice 必然要下载Axis安装包。

将某某文件设置配备摆设到%TOMCAT_HOME%webappsaxisWEB-INF。

然后在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 Des cription, 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接口挪用例子:

import java.io.BufferedReader;        

import java.io.IOException;        

import java.io.InputStreamReader;        

import java.io.OutputStreamWriter;        

import java.io.UnsupportedEncodingException;        

import java.net.MalformedURLException;        

import java.net.URL;        

import java.net.URLConnection;        

     

public class HttpPostTest {        

   void testPost(String urlStr) {        

       try {        

           URL url = new URL(urlStr);        

           URLConnection con = url.openConnection();        

           con.setDoOutput(true);        

           con.setRequestProperty( Pragma: , no-cache );        

           con.setRequestProperty( Cache-Control , no-cache );        

           con.setRequestProperty( Content-Type , text/xml );        

                   

           OutputStreamWriter out = new OutputStreamWriter(con.getOutputStream());            

           String xmlInfo = getXmlInfo();        

           out.write(new String(xmlInfo));        

           out.flush();        

           out.close();        

           BufferedReader br = new BufferedReader(new InputStreamReader(con.getInputStream()));        

           String line = ;        

           StringBuffer buf = new StringBuffer();        

           for (line = br.readLine(); line != null; line = br.readLine()) {        

               buf.append(new String(line.getBytes(), UTF-8 ));        

           }        

           System.out.println(buf.toString());        

       } catch (MalformedURLException e) {        

           e.printStackTrace();        

       } catch (IOException e) {        

           e.printStackTrace();        

       }        

   }        

     

   private String getXmlInfo() {        

       // 经由过程wsdl文件能够检查接口xml格局数据,机关挪用接口xml数据      

       String xml = SOAP-ENV:Envelope xmlns:SOAP-ENV= //schemas.xmlsoap.org/soap/envelope/ xmlns:SOAP-ENC= //schemas.xmlsoap.org/soap/encoding/ xmlns:xsi= //www.w3.org/2001/XMLSchema-instance xmlns:xsd= //www.w3.org/2001/XMLSchema      

                   + SOAP-ENV:Body      

                   +     m:getItemDetailSingle xmlns: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      

                   + /SOAP-ENV:Body      

                   + /SOAP-ENV:Envelope ;        

       return xml;        

   }        

     

   public static void main(String[] args) throws UnsupportedEncodingException {        

       String url = //localhost:9999/dataService/services/Job ;        

       new HttpPostTest().testPost(url);        

   }        

} /PRE  

以上两个例子我们能够看出,Java来完成WebServices的时辰Web应用办事器不是必需的,但愿列位同窗能够或许见机行事好好的支配WebServices所供应的各类上风,我们要不但会做,还要善于做!


拒绝套路 试听有礼

数据已加密保证您的信息安全