- 浏览: 74435 次
- 性别:
- 来自: 黑龙江
文章分类
最新评论
-
Ethan楚翔:
jdk1.7运行报错,大家用1.6以下版本
Spring AOP 简单demo -
springaop_springmvc:
apache lucene开源框架demo使用实例教程源代码下 ...
Lucene与DB结合示例 -
fl_zxf:
在看,3Q
Lucene与DB结合示例 -
jushi1988:
哎.米休 写道在action的第一行会报空指针异常 求解啊你看 ...
Lucene与DB结合示例 -
哎.米休:
在action的第一行会报空指针异常 求解啊
Lucene与DB结合示例
前段日子看到了一个提供WEB服务的网站-www.webxml.com.cn.它提供各种适用的Web服务。如天气预报、火车时刻表。
于是就通过它提供的接口,实验了一下,看看它提供的那些接口有什么效果。但是因为是免费用户,所以每次访问的次数有限制,所以只是测试一下。
但是你需要从WSDL文档中生成客户端支持代码,可以使用axis的wsdl2java:
%AXIS2_HOME%\bin\wsdl2java -uri http://webservice.webxml.com.cn/WebServices/WeatherWS.asmx?wsdl -p client -s -o stub
其中-url参数指定了wsdl文件的路径,可以是本地路径,也可以是网络路径。-p参数指定了生成的Java类的包名,-o参数指定了生成的一系列文件保存的根目录。
在执行完上面的命令后,读者就会发现在当前目录下多了个stub目录,在."stub"src"client目录可以找到一个SimpleServiceStub.java文件,该文件复杂调用WebService,
可以在程序中直接使用这个类。
我用了好几个服务,火车,天气,城市代码等。
先贴我的pojo,pojo需要和它提供的入口的属性一致,代码如下:
Train.java
package com.jushi.pojo; public class Train { private String trainStation; private String arriveTime; private String startTime; private String km; private String firstStation; private String lastStation; private String trainCode; private String startStation; private String arriveStation; private String useDate; public String getTrainStation() { return trainStation; } public void setTrainStation(String trainStation) { this.trainStation = trainStation; } public String getArriveTime() { return arriveTime; } public void setArriveTime(String arriveTime) { this.arriveTime = arriveTime; } public String getStartTime() { return startTime; } public void setStartTime(String startTime) { this.startTime = startTime; } public String getKm() { return km; } public void setKm(String km) { this.km = km; } public String getFirstStation() { return firstStation; } public void setFirstStation(String firstStation) { this.firstStation = firstStation; } public String getLastStation() { return lastStation; } public void setLastStation(String lastStation) { this.lastStation = lastStation; } public String getTrainCode() { return trainCode; } public void setTrainCode(String trainCode) { this.trainCode = trainCode; } public String getStartStation() { return startStation; } public void setStartStation(String startStation) { this.startStation = startStation; } public String getArriveStation() { return arriveStation; } public void setArriveStation(String arriveStation) { this.arriveStation = arriveStation; } public String getUseDate() { return useDate; } public void setUseDate(String useDate) { this.useDate = useDate; } }
City.java
接下来就是业务了。我们需要将它返回的数据集处理成我们需要的结果,所以用到了jdom。 代码如下: TrainInfo.javapackage com.jushi.pojo;
public class City {
private String cityId;
private String cityName;
public String getCityId() {
return cityId;
}
public void setCityId(String cityId) {
this.cityId = cityId;
}
public String getCityName() {
return cityName;
}
public void setCityName(String cityName) {
this.cityName = cityName;
}
}
package com.jushi.service; import java.io.File; import java.io.FileInputStream; import java.io.FileWriter; import java.io.IOException; import java.util.ArrayList; import java.util.List; import org.apache.axis.message.MessageElement; import org.jdom.Document; import org.jdom.Element; import org.jdom.input.SAXBuilder; import cn.com.WebXml.GetDetailInfoByTrainCodeResponseGetDetailInfoByTrainCodeResult; import cn.com.WebXml.GetStationAndTimeByStationNameResponseGetStationAndTimeByStationNameResult; import cn.com.WebXml.TrainTimeWebServiceLocator; import cn.com.WebXml.TrainTimeWebServiceSoap; import com.jushi.pojo.Train; public class TrainInfo { //通过车次得到列车信息 public ArrayList getInfo(String traincode){ ArrayList trainlist = null; try{ java.net.URLEncoder.encode("参数","UTF-8"); TrainTimeWebServiceLocator service = new TrainTimeWebServiceLocator(); TrainTimeWebServiceSoap client = service.getTrainTimeWebServiceSoap(); GetDetailInfoByTrainCodeResponseGetDetailInfoByTrainCodeResult traininfo = client.getDetailInfoByTrainCode(traincode, "");//后面的是我新注册的userID: eb01f699583d44d4bdee0ed47c0397d5 MessageElement[] msg = traininfo.get_any(); List elementHead = msg[0].getChildren();//消息头,DataSet对象 List elementBody = msg[1].getChildren();//消息体信息,DataSet对象 if(elementBody.size()<=0){ return null; } String str = elementBody.get(0).toString();//消息体的字符串形式 saveXMLString(str,"train.xml"); trainlist = loadXML("train.xml"); }catch(Exception e){ e.printStackTrace(); } return trainlist; } public static void saveXMLString(String xmlString,String filename) throws IOException{ File file = new File(filename); if(file.exists()){ file.delete(); } file.createNewFile(); if(file.canWrite()){ FileWriter out = new FileWriter(file); out.write(xmlString); out.close(); } } //车次查询读取xml文件 public static ArrayList loadXML(String filepath) throws IOException{ ArrayList<Train> list = null; FileInputStream fis = null; try{ fis = new FileInputStream(filepath); list = new ArrayList<Train>(); SAXBuilder builder = new SAXBuilder(); Document doc = builder.build(fis); Element root = doc.getRootElement(); List doclist = root.getChildren(); Element info = null; Train train = null; for(int i=0; i<doclist.size(); i++){ train = new Train(); info = (Element) doclist.get(i); train.setArriveTime(info.getChild("ArriveTime").getText().equals("http://www.webxml.com.cn")?"没有数据":info.getChild("ArriveTime").getText()); train.setKm(info.getChild("KM").getText().equals("")?"没有数据":info.getChild("KM").getText()); train.setStartTime(info.getChild("StartTime").getText().equals("")?"没有数据":info.getChild("StartTime").getText()); train.setTrainStation(info.getChild("TrainStation").getText().equals("免费用户24小时内访问超过规定数量")?"没有数据":info.getChild("TrainStation").getText()); list.add(train); } }catch(Exception e){ e.printStackTrace(); } return list; } //始发站和终点站查询 public static ArrayList loadXMLByStation(String filepath) throws IOException{ ArrayList<Train> list = null; FileInputStream fis = null; try{ fis = new FileInputStream(filepath); list = new ArrayList<Train>(); SAXBuilder builder = new SAXBuilder(); Document doc = builder.build(fis); Element root = doc.getRootElement(); List doclist = root.getChildren(); Element info = null; Train train = null; for(int i=0; i<doclist.size(); i++){ train = new Train(); info = (Element) doclist.get(i); train.setArriveTime(info.getChild("ArriveTime").getText()); train.setKm(info.getChild("KM").getText()); train.setTrainCode(info.getChild("TrainCode").getText()); train.setFirstStation(info.getChild("FirstStation").getText().equals("数据没有被发现")?"没有数据":info.getChild("FirstStation").getText()); train.setLastStation(info.getChild("LastStation").getText().equals("http://www.webxml.com.cn")?"没有数据":info.getChild("LastStation").getText()); train.setStartStation(info.getChild("StartStation").getText()); train.setStartTime(info.getChild("StartTime").getText()); train.setArriveStation(info.getChild("ArriveStation").getText()); train.setUseDate(info.getChild("UseDate").getText()); list.add(train); } }catch(Exception e){ e.printStackTrace(); } return list; } public ArrayList getTrainByStation(String startStation, String arriveStation){ ArrayList trainlist = null; try{ TrainTimeWebServiceLocator service = new TrainTimeWebServiceLocator(); TrainTimeWebServiceSoap client = service.getTrainTimeWebServiceSoap(); GetStationAndTimeByStationNameResponseGetStationAndTimeByStationNameResult traininfo = client.getStationAndTimeByStationName(startStation, arriveStation,"");//userID: eb01f699583d44d4bdee0ed47c0397d5 MessageElement[] msg = traininfo.get_any(); List elementHead = msg[0].getChildren();//消息头,DataSet对象 List elementBody = msg[1].getChildren();//消息体信息,DataSet对象 if(elementBody.size()<=0){ return null; } String str = elementBody.get(0).toString();//消息体的字符串形式 saveXMLString(str,"train2.xml"); trainlist = loadXMLByStation("train2.xml"); }catch(Exception e){ e.printStackTrace(); } return trainlist; } public static void main(String as[]){ // ArrayList list = new TrainInfo().getInfo("K7003"); // for(int i=0; i<list.size(); i++){ // Train train = (Train) list.get(i); // System.out.println("车站:"+train.getTrainStation()); // System.out.println("开车时间:"+train.getStartTime()); // System.out.println("到站时间:"+train.getArriveTime()); // System.out.println("路程(KM):"+train.getKm()); // } ArrayList list2 = new TrainInfo().getTrainByStation("北京", "哈尔滨"); for(int i=0; i<list2.size(); i++){ Train train = (Train) list2.get(i); System.out.println("车次:"+train.getTrainCode()); System.out.println("始发站:"+train.getFirstStation()); System.out.println("终点站:"+train.getLastStation()); System.out.println("路程(KM):"+train.getKm()); System.out.println("发车站:"+train.getStartStation()); System.out.println("发车时间:"+train.getStartTime()); System.out.println("到达站:"+train.getArriveStation()); System.out.println("到达时间:"+train.getArriveTime()); System.out.println("历时:"+train.getUseDate()); } } }
再接下来,因为我要做一个页面提供给用户一个互动,所以一个jsp,当然还是servlet加jsp的经典配合。
index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%> <%@ page import="com.jushi.pojo.*" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <title>列车时刻查询</title> <head> <script type="text/javascript"> function query_code(){ if(document.form1.traincode.value == ''){ alert("请输入一个车次!!"); return; } var traincode = document.form1.traincode.value; document.form1.action = "TrainService?traincode="+traincode; document.form1.submit(); } function _showDivs(obj){ if(obj.value == '0'){ showstation.style.display="none"; showcode.style.display="block"; } else{ showstation.style.display="block"; showcode.style.display="none"; } } function query_station(){ if(document.form1.firststation.value == ''||document.form1.laststation.value == ''){ alert("请填写完整始发站和终点站!!"); return; } var firststation = document.form1.firststation.value; var laststation = document.form1.laststation.value; document.form1.action = "TrainService?firststation="+firststation+"&laststation="+laststation; document.form1.submit(); } </script> </head> <body> <% request.setCharacterEncoding("GBK"); ArrayList trainList = null,trainListStation=null; response.setCharacterEncoding("GBK"); if(request.getAttribute("trainlist")!=null){ trainList = (ArrayList) request.getAttribute("trainlist"); } if(request.getAttribute("trainlistStation")!=null){ trainListStation = (ArrayList) request.getAttribute("trainlistStation"); } %> <center> <h2>列车查询</h2> <select name="queryfor" id="queryfor" onchange="_showDivs(this)"> <option value="0" selected="selected">--按车次--</option> <option value="1" >--按始发终点站--</option> </select> <br/> <form name="form1"> <div id='showcode' name="showcode" style="display: block"> <table id="tab" align="center" border="1" style="border: thin;"> <tr> <td>请输入车次:<input type="text" name="traincode" id="traincode" size="20"/></td> <td> <button id="btok" name="btok" onclick="query_code()">查 询</button> </td> </tr> </table> </div> <div id="showstation" name="showstation" style="display: none"> <table id="tab" align="center" border="1" style="border: thin;"> <tr> <td>始发站:<input type="text" name="firststation" id="firststation" size="20"/> 终点站:<input type="text" name="laststation" id="laststation" size="20"/></td> <td> <button id="btok" name="btok" onclick="query_station()">查 询</button> </td> </tr> </table> </div> </form> <hr/> <table id="tab" align="center" border="1" bordercolor="green" style="border: thick;"> <%if(trainList!=null){ %> <tr> <td colspan="4" align="center" bgcolor="#FFF000">【 列车时刻表 】</td> </tr> <tr> <td colspan="4" align="center"><font color=red>查询结果 (从上至下为:始发站-终点站) 如下:</font></td> </tr> <% for(int i=0; i<trainList.size(); i++){ Train train = (Train) trainList.get(i); %> <tr> <td bgcolor="#FFCCFF" align="center"> 车站</td> <td bgcolor="#FFCCFF" align="center"> 开车时间</td> <td bgcolor="#FFCCFF" align="center"> 到站时间</td> <td bgcolor="#FFCCFF" align="center"> 路程(KM)</td> </tr> <tr> <td align="center"><%=train.getTrainStation().equals("")?"--":train.getTrainStation() %></td> <td align="center"><%=train.getStartTime().equals("")?"--":train.getStartTime() %></td> <td align="center"><%=train.getArriveTime().equals("")?"--":train.getArriveTime() %></td> <td align="center"><%=train.getKm().equals("")?"--":train.getKm() %></td> </tr> <%}} %> <% if(trainListStation!=null){ %> <tr> <td colspan="9" align="center" bgcolor="#FFF000">【 列车时刻表 】</td> </tr> <% for(int i=0; i<trainListStation.size(); i++){ Train train = (Train) trainListStation.get(i); %> <tr> <td bgcolor="#FFCCCC" align="center"> 车次</td> <td bgcolor="#FFCCCC" align="center"> 始发站</td> <td bgcolor="#FFCCCC" align="center"> 终点站</td> <td bgcolor="#FFCCCC" align="center"> 路程(KM)</td> <td bgcolor="#FFCCCC" align="center"> 发车站</td> <td bgcolor="#FFCCCC" align="center"> 发车时间</td> <td bgcolor="#FFCCCC" align="center"> 到达站</td> <td bgcolor="#FFCCCC" align="center"> 到达时间</td> <td bgcolor="#FFCCCC" align="center"> 历时</td> </tr> <tr> <td align="center"><%=train.getTrainCode().equals("")?"--":train.getTrainCode() %></td> <td align="center"><%=train.getFirstStation().equals("")?"--":train.getFirstStation() %></td> <td align="center"><%=train.getLastStation().equals("")?"--":train.getLastStation() %></td> <td align="center"><%=train.getKm().equals("")?"--":train.getKm() %></td> <td align="center"><%=train.getStartStation().equals("")?"--":train.getStartStation() %></td> <td align="center"><%=train.getStartTime().equals("")?"--":train.getStartTime() %></td> <td align="center"><%=train.getArriveStation().equals("")?"--":train.getArriveStation() %></td> <td align="center"><%=train.getArriveTime().equals("")?"--":train.getArriveTime() %></td> <td align="center"><%=train.getUseDate().equals("")?"--":train.getUseDate() %></td> </tr> <%}} %> </table> </center> </body> </html> <% request.removeAttribute("trainlist"); request.removeAttribute("trainlistStation"); %>
TrainService.java
package com.jushi.service; import java.io.IOException; import java.io.PrintWriter; import java.util.ArrayList; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class TrainService extends HttpServlet { private TrainInfo trainMain = new TrainInfo(); public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request,response); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html; charset=GBK"); PrintWriter out = response.getWriter(); String traincode = request.getParameter("traincode"); String firststation="",laststation=""; if(!request.getParameter("firststation").equals("")&&!request.getParameter("laststation").equals("")){ firststation = request.getParameter("firststation"); firststation = new String(firststation.getBytes("ISO-8859-1"),"GBK"); laststation = request.getParameter("laststation"); laststation = new String(laststation.getBytes("ISO-8859-1"),"GBK"); ArrayList trainlist = trainMain.getTrainByStation(firststation, laststation); request.setAttribute("trainlistStation", trainlist); } else{ ArrayList trainlist = trainMain.getInfo(traincode); request.setAttribute("trainlist", trainlist); } request.getRequestDispatcher("index.jsp").forward(request, response); } }
之后,写了测试类,可以让大家试试效果。个人觉得webservice的用途真的很大。在做项目时,需要访问客户提供的入口来得到我们需要的数据。那么它确实是个有效的工具。
Test.java
package com.jushi.test; import java.awt.Font; import java.awt.GridLayout; import java.io.File; import java.io.FileInputStream; import java.io.FileWriter; import java.io.IOException; import java.util.ArrayList; import java.util.List; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JTextArea; import javax.xml.namespace.QName; import org.apache.axis.client.Call; import org.apache.axis.client.Service; import org.apache.axis.message.MessageElement; import org.apache.axis.types.Schema; import org.jdom.Document; import org.jdom.Element; import org.jdom.input.SAXBuilder; import com.jushi.pojo.City; public class Test { public static void main(String as[]){ try{ String theRegionCode = "3113";//此处为省市国家 ID 黑龙江省 new Test().getSupportCityAndCityName(theRegionCode); System.out.println("===============================【下面为相应代号的城市天气情况】================================="); new Test().getWeather("633"); //该ID为牡丹江代号 }catch(Exception e){ e.printStackTrace(); } } public void getSupportCityAndCityName(String id) throws Exception{ String endpoint = "http://www.webxml.com.cn/WebServices/WeatherWS.asmx"; Service service = new Service(); Call call = (Call)service.createCall(); call.setTargetEndpointAddress(new java.net.URL(endpoint)); call.setOperationName(new QName("http://WebXml.com.cn/","getSupportCityDataset")); call.addParameter(new QName("http://WebXml.com.cn/","theRegionCode"),org.apache.axis.encoding.XMLType.XSD_STRING,javax.xml.rpc.ParameterMode.IN); call.setReturnType(org.apache.axis.encoding.XMLType.XSD_SCHEMA); call.setUseSOAPAction(true); call.setSOAPActionURI("http://WebXml.com.cn/getSupportCityDataset"); Schema result = (Schema)call.invoke(new Object[]{id}); MessageElement[] msg = result.get_any(); List elementBody = msg[1].getChildren();//消息体信息,DataSet对象 String str = elementBody.get(0).toString();//消息体的字符串形式 saveXMLString(str,"supportcity.xml");//生成xml文件 ArrayList<City> list = loadXML("supportcity.xml");//读取xml文件 按节点依次读取数据 for (int i = 0; i < list.size(); i++) { City city = (City) list.get(i); System.out.println("城市代号:"+city.getCityId()); System.out.println("城市名称:"+city.getCityName()); } } public void getWeather(String cityID) throws Exception{ String endpoint = "http://www.webxml.com.cn/WebServices/WeatherWS.asmx"; Service service = new Service(); Call call = (Call)service.createCall(); call.setTargetEndpointAddress(new java.net.URL(endpoint)); call.setOperationName(new QName("http://WebXml.com.cn/","getWeather")); call.addParameter(new QName("http://WebXml.com.cn/","theCityCode"),org.apache.axis.encoding.XMLType.XSD_STRING,javax.xml.rpc.ParameterMode.IN); call.setReturnType(org.apache.axis.encoding.XMLType.XSD_SCHEMA); call.setUseSOAPAction(true); call.setSOAPActionURI("http://WebXml.com.cn/getWeather"); Schema result = (Schema) call.invoke(new Object[]{cityID}); MessageElement[] msg = (MessageElement[]) result.get_any();//返回为一维字符串数组 ArrayList<List> arr = new ArrayList<List>(); for(int i=0; i<msg.length; i++){ arr.add(msg[i].getChildren()); } StringBuffer sbb = new StringBuffer(); for(int i=0; i<arr.size(); i++){ String res = (String) arr.get(i).toString(); if(res.equals("[发现错误:免费用户24小时内访问超过规定数量。http://www.webxml.com.cn/]")){ res="服务器暂时无法连接..\n"; } sbb.append(res+"\n"); System.out.println(res); } String title = msg[0].getChildren(). toString(). equals("[发现错误:免费用户24小时内访问超过规定数量。http://www.webxml.com.cn/]")? "服务器连接失败":msg[0].getChildren().toString(); JFrame jf = new JFrame(); jf.setTitle(title+" --天气预报"); jf.setLocation(400,50); jf.setSize(700,800); jf.setLayout(new GridLayout(1,1)); JPanel panel = new JPanel(); JTextArea text = new JTextArea(); text.setFont(new Font("宋体",Font.PLAIN,13)); text.setText(sbb.toString()); panel.add(text); jf.add(panel); jf.setVisible(true); jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } public static void saveXMLString(String xmlString,String filename) throws IOException{ File file = new File(filename); if(file.exists()){ file.delete(); } file.createNewFile(); if(file.canWrite()){ FileWriter out = new FileWriter(file); out.write(xmlString); out.close(); } } public static ArrayList loadXML(String filepath) throws IOException{ ArrayList<City> list = null; FileInputStream fis = null; try{ fis = new FileInputStream(filepath); list = new ArrayList<City>(); SAXBuilder builder = new SAXBuilder(); Document doc = builder.build(fis); Element root = doc.getRootElement(); List doclist = root.getChildren(); Element info = null; City city = null; for(int i=0; i<doclist.size(); i++){ city = new City(); info = (Element) doclist.get(i); city.setCityId(info.getChild("CityID").getText()); city.setCityName(info.getChild("CityName").getText()); list.add(city); } }catch(Exception e){ e.printStackTrace(); } return list; } }
好了。简单的测试demo做完了,运行服务,测试。但是我是免费用户,所以在使用次数上webxml.com有限制。不过是使用它提供给我们的入口,真正在项目中需要你自己做了。
再附上源码。
发表评论
-
HttpClient浅尝-小试牛刀
2011-06-13 17:07 1561今天,突然想重新研究下HttpClient的应用, ... -
Java查找指定文件的简单应用
2011-04-08 09:24 2095前段时间,应项目中需要,弄了一个关于删除某个时间段的临时文件、 ... -
JFreeChart的一个简单例子
2010-03-19 16:51 3557很久以前看了点jfreechart相关的东西,就做了一个小例子 ... -
js 防止页面刷新
2010-03-18 11:02 13002var oLastBtn=0,bIsMenu=false i ... -
很强大的日历
2009-09-03 13:32 20068一个万年历 功能很全,带农历 https://token.l ... -
java技术集合
2009-06-18 12:30 1183java技术集合 -
留言内容转换通用Bean
2009-06-15 13:48 2123package com.web; import ...
相关推荐
"基于Webservice的信息查询系统" Webservice是一种基于Web的服务架构,允许不同的应用程序之间进行交互和集成。它可以实现跨越不同平台、语言和环境的系统集成,实现业务流程的自动化和优化。基于Webservice的信息...
【基于Webservice的应用小程序】 Webservice是一种基于互联网的、标准化的服务交互模式,它允许不同的系统之间进行数据交换和功能调用。在这个特定的项目中,"基于Webservice的应用小程序"是指一个利用Webservice...
很好的掌上应用系统,是基于webservice,对于学习基于webservice的应用系统很有帮助
"android基于webservice云端运用最新代码EasyEnglish"是一个示例项目,展示了如何在Android应用中集成Webservice技术,可能是为了提供英语学习相关的服务。这个项目的重点可能在于如何与云端进行有效且安全的通信,...
【标题】:“基于WebService数据交换的研究和实现” 【描述】:WebService是一种基于互联网的、用于应用程序之间进行交互和数据交换的技术。它通过使用标准的XML(可扩展标记语言)进行数据封装,允许不同平台和...
【基于Webservice的应用】 Webservice是一种基于互联网的、平台无关的、标准化的接口技术,它允许不同的系统之间进行数据交换和服务交互。这个标题暗示我们将探讨如何利用Webservice创建和使用应用程序,尤其是跨越...
在本文档中,我们学习了基于 Webservice 的数据访问技术,了解了 Webservice 工作原理、创建 Webservice 的步骤、Webservice 的优点和应用场景。Webservice 技术能够实现数据交换和共享,提高应用程序之间的交互性和...
【基于WebService的企业应用集成方案】 随着企业信息化的深入发展,企业内部各个独立的应用子系统间的协同和信息共享问题日益突出,形成了所谓的“信息孤岛”,成为企业信息化建设的一大障碍。企业应用集成(EAI)...
Java WebService应用实例是Java开发中的一个重要组成部分,它允许不同平台和语言的系统之间通过标准接口进行通信。在本实例中,我们主要关注如何在Java环境中实现和使用WebService,特别是结合Spring框架集成XFire...
### 基于SoftEngine开发 WebService应用 #### 概述 本文旨在为SoftEngine的开发者提供一套完整的基于SoftEngine开发WebService应用的指南。主要内容包括:WebService的技术规范介绍、SoftEngine与WebService之间的...
1. `<mx:WebService>`:专门用来调用基于SOAP协议的WebService,提供了一种直接调用WebService方法的方式。 2. `<mx:HTTPService>`:用于发送HTTP GET或POST请求,可以与RESTful服务进行交互。 3. `...
【基于WebService的C/S框架详解】 在信息技术领域,C/S(Client/Server)架构和WebService技术是两种重要的分布式系统设计模式。本篇文章将深入探讨基于WebService的C/S框架,包括其概念、工作原理以及实现方法。 ...
在IT领域,基于WebService的天气查询是一种常见的Web应用程序开发技术,它允许用户通过网络获取实时的天气信息。本篇将深入探讨这个主题,讲解如何使用C#语言和WebService来实现这一功能。 首先,WebService是一种...
【标题】"齐鲁软件设计大赛 基于webservice的掌上应用系统"涉及的核心知识点主要围绕Web服务(Web Service)技术以及如何将其应用于移动设备上构建应用系统。Web服务是一种通过互联网交换业务逻辑和数据的方式,它...
### 基于WebService的分布式工作流系统的关键知识点 #### 1. 工作流的概念与作用 工作流(Workflow)是指在业务过程中,文件、信息或者任务根据一定的规程在参与者之间传递的过程。通过将复杂的工作活动分解为一...
本文将重点研究WebService的核心技术和工作原理,并探讨基于WebService的SOA实现技术。 WebService的核心技术主要包括以下几个方面: 1. WSDL(Web Services Description Language):WSDL是一种基于XML的描述语言...
基于WebService多层架构MIS系统的应用研究,引入web service技术,并借鉴MIS系统分层开发思想,提出一种基于webservice多层架构MIS系统应用方案