- 浏览: 605724 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (263)
- 默认类别 (0)
- STRUTS HIBERNATE (2)
- STRUTS SPRING HIBERNATE (18)
- SOA/WEB service (8)
- PORTAL (3)
- 想法和设计思想 (17)
- SMARTEAM 二次开发 (0)
- ACTIVEBPEL (0)
- ERP (0)
- EAI (0)
- 甲醇汽油 (0)
- webwork freemarker spring hibernate (1)
- 工作流技术研究 (1)
- ROR (5)
- 搜索引擎 (7)
- 3.非技术区 (0)
- 1.网站首页原创Java技术区(对首页文章的要求: 原创、高质量、经过认真思考并精心写作。BlogJava管理团队会对首页的文章进行管理。) (2)
- 2.Java新手区 (2)
- 4.其他技术区 (0)
- ESB (1)
- Petals ESB (6)
- 手机开发 (1)
- docker dedecms (1)
最新评论
-
w630636065:
楼主,期待后续!!!!!!!!
生成文本聚类java实现 (2) -
zilong513:
十分感谢楼主,期待后续。
生成文本聚类java实现 (2) -
qqgoodluck:
可否介绍一下您的选型依据,包括Petal ESB与MULE等E ...
Petals ESB 简介 -
jackiee_cn:
写的比较清楚,学习了
Petals ESB 集群实战 -
忙两夜:
你好,能发一下源代码吗
抓取口碑网店铺资料
本篇文章将讲述如何通过axis取得.net发布的Web services,并处理返回含有DataSet的处理结果,展现在页面上。
涉及到的知识有:
AXIS
SAXBuilder
xml
步骤如下:
1)、生成client stub文件。
必备条件axis开源包。JDK
A)、比如AXIS包放在你的C盘,则需要在环境变量当中设定的东东有:
AXIS_HOME=C:\AXIS
AXIS_CLASSPATH=.;%AXIS_HOME%\lib\axis.jar;%AXIS_HOME%\lib\axis-ant.jar;%AXIS_HOME%\lib\commons-discovery-0.2.jar;%AXIS_HOME%\lib\commons-logging-1.0.4.jar;%AXIS_HOME%\lib\jaxrpc.jar;%AXIS_HOME%\lib\saaj.jar;%AXIS_HOME%\lib\wsdl4j-1.5.1.jar;%AXIS_HOME%\lib\log4j-1.2.8.jar;%AXIS_HOME%\lib\activation.jar;%AXIS_HOME%\lib\mail.jar
然后加入到PATH当中:.;% AXIS_CLASSPATH% (加入就可以了)
注意:很多人因为以上的配置不对,导致对AXIS学习的信心下降,其实,仔细一点就会发现在CLASSPATH当中找一找有没有版本区别。也就是每一个JAR包是不是真的存在就可以了。(哈哈,我曾为之付出了两天的时间娞!)
B)、进入DOS模式,转到D盘,执行如下代码:
java org.apache.axis.wsdl.WSDL2Java -p <名称,最好是包名> http://10.2.10.80/FocService/FocService.asmx?wsdl,看到了吧。对.net发布为asmx的文件后面加入?wsdl就可以解决了。
然后就会在这个<名称,最好是包名>下就会有一堆的JAVA文件,一般的话会有:
xxxx.java
xxxxLocator.java
xxxxSoap.java
xxxxSoapStub.java
其次还有以下划线_xxxx????.java的文件都是序列化的对象,也就是返回的结果对应元素。可以暂时不理它。下面就以作者生成的示例做一个引用webservice的操作。作者得到的文件如下:
SearchFlightInfo.java
SearchFlightInfoLocator.java
SearchFlightInfoSoap.java
SearchFlightInfoSoapStub.java
-----------------------------------------------------------------------
_GetFlightInfoResponse_GetFlightInfoResult.java
_GetstrFlightInfo.java
_GetstrFlightInfoResponse.java
C)、引用方法:
基本思想是从得到web services后取得他的主体信息(返回的数据信息),然后生成XML文件,然后再把XML文件转换成一个JAVA序列化对象就可以了。
如下是序列化对象的代码。
- try {
- /**
- * 取得前台的参数 1、航班日期 2、航班号
- */
- String planDate = request.getParameter("day");
- String flyNo = request.getParameter("hanbanno");
- /**
- * 按照最新版本制作,最新位置在:http://10.2.10.62/OPCFltWS/SearchFlightInfo.asmx
- */
- SearchFlightInfo service = new SearchFlightInfoLocator();
- SearchFlightInfoSoap client = service.getSearchFlightInfoSoap();
- _GetFlightInfoResponse_GetFlightInfoResult FOCInfo=client.getFlightInfo(planDate, flyNo);
- String ErrorInfo = client.getstrFlightInfo(planDate, flyNo);//错误警告信息
- MessageElement[] FOCElement = FOCInfo.get_any();//取得xml信息
- List FOCElementHead = FOCElement[0].getChildren();//消息头,DataSet对象
- List FOCElementBody = FOCElement[1].getChildren();//消息体信息,DataSet对象
- if (FOCElementBody.size() <= 0){
- //无返回记录,则无输出
- return mapping.findForward("NoRecord");
- }
- String nn = FOCElementBody.get(0).toString();//消息体的字符串形式
- String path = request.getRealPath("");
- CommonTools.saveXMLString(nn,path+"\\FOC\\heweiya1.xml");//保存为XML形式,其中FOC目录做为固定目录
- /**
- * 使用DOM4J来解析这个序列化的对象
- */
- //String path = request.getRealPath("");
- Vector OutFoc = CommonTools.LoadXML(path + "\\FOC\\heweiya1.xml");
- request.setAttribute("OutFoc", OutFoc);
- if (request.getParameter("as") != null) {
- return mapping.findForward("Foc1");
- }
- return mapping.findForward("Foc");
- } catch (Exception e) {
- /**
- * 服务有异常,或者服务没有启动!
- */
- request.setAttribute("UserMsg", "Public.FocError");
- return mapping.findForward("Fail");
- }
- package com.travelsky.kams.front.foc.webservices;
- public class FocBean implements java.io.Serializable{
- private String acown;//航班1
- private String fltid;//航班2
- private String datop;//查询日期
- private String std;
- private String sta;
- private String etd;//
- private String eta;//
- private String atd;
- private String toff;//滑出时间
- private String tdwn;//滑到位时间
- private String ata;//飞行状态
- private String actyp;//机型
- private String depstn;//起始机场
- private String arrstn;//到达机场
- private String plnid;//机号
- /** default constructor */
- public FocBean() {
- }
- public String getAcown() {
- return this.acown;
- }
- public void setAcown(String acown) {
- this.acown = acown;
- }
- public String getDatop() {
- return this.datop;
- }
- public void setDatop(String datop) {
- this.datop = datop;
- }
- public String getFltid() {
- return this.fltid;
- }
- public void setFltid(String fltid) {
- this.fltid = fltid;
- }
- public String getStd() {
- return this.std;
- }
- public void setStd(String std) {
- this.std = std;
- }
- public String getSta() {
- return this.sta;
- }
- public void setSta(String sta) {
- this.sta = sta;
- }
- public String getEtd() {
- return this.etd;
- }
- public void setEtd(String etd) {
- this.etd = etd;
- }
- public String getEta() {
- return this.eta;
- }
- public void setEta(String eta) {
- this.eta = eta;
- }
- public String getAtd() {
- return this.atd;
- }
- public void setAtd(String atd) {
- this.atd = atd;
- }
- public String getToff() {
- return this.toff;
- }
- public void setToff(String toff) {
- this.toff = toff;
- }
- public String getTdwn() {
- return this.tdwn;
- }
- public void setTdwn(String tdwn) {
- this.tdwn = tdwn;
- }
- public String getAta() {
- return this.ata;
- }
- public void setAta(String ata) {
- this.ata = ata;
- }
- public String getActyp() {
- return this.actyp;
- }
- public void setActyp(String actyp) {
- this.actyp = actyp;
- }
- public String getDepstn() {
- return this.depstn;
- }
- public void setDepstn(String depstn) {
- this.depstn = depstn;
- }
- public String getArrstn() {
- return this.arrstn;
- }
- public void setArrstn(String arrstn) {
- this.arrstn = arrstn;
- }
- public String getPlnid() {
- return this.plnid;
- }
- public void setPlnid(String plnid) {
- this.plnid = plnid;
- }
- }
如下是解析XML文件变换成一个序列化的对象的JAVA代码:(其中Vecto就相关于安全的LIST了)
- /**
- * 读取XML文件所有信息
- */
- public static Vector LoadXML(String path) throws Exception {
- Vector xmlVector = null;
- FileInputStream fi = null;
- try {
- fi = new FileInputStream(path);
- xmlVector = new Vector();
- SAXBuilder sb = new SAXBuilder();
- Document doc = sb.build(fi);
- Element root = doc.getRootElement(); // 得到根元素
- List focs = root.getChildren(); // 得到根元素所有子元素的集合
- Element foc = null;
- FocBean xml = null;
- /**
- * 从1开始,因为0为错误警告信息
- */
- for (int i = 1; i < focs.size(); i++) {
- xml = new FocBean();
- foc = (Element) focs.get(i); // 得到第一本书元素
- /* xml.setAta(foc.getChild("ATA").getText());
- xml.setAtd(foc.getChild("ATD").getText());
- xml.setEta(foc.getChild("ETA").getText());
- xml.setEtd(foc.getChild("ETD").getText());
- xml.setFltid(foc.getChild("FLTID").getText());
- xml.setSta(foc.getChild("STA").getText());
- xml.setStd(foc.getChild("STD").getText());
- xml.setTdwn(foc.getChild("TDWN").getText());
- xml.setToff(foc.getChild("TOFF").getText());*/
- /**
- * 如下是最新版本的取得实体对象的方法
- * modify by heweiya 2006-12-14
- */
- xml.setAta(foc.getChild("ATA").getText());
- xml.setAtd(foc.getChild("ATD").getText());
- xml.setEta(foc.getChild("ETA").getText());
- xml.setEtd(foc.getChild("ETD").getText());
- xml.setFltid(foc.getChild("FLTID").getText());
- xml.setSta(foc.getChild("STA").getText());
- xml.setStd(foc.getChild("STD").getText());
- xml.setTdwn(foc.getChild("TDWN").getText());
- xml.setToff(foc.getChild("TOFF").getText());
- xml.setAcown(foc.getChild("ACOWN").getText());
- xml.setActyp(foc.getChild("ACTYP").getText());
- xml.setArrstn(foc.getChild("ARRSTN").getText());
- xml.setDatop(foc.getChild("DATOP").getText());
- xml.setDepstn(foc.getChild("DEPSTN").getText());
- xml.setPlnid(foc.getChild("Plnid").getText());
- xmlVector.add(xml);
- }
- } catch (Exception e) {
- System.err.println(e + "error");
- } finally {
- try {
- fi.close();
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- return xmlVector;
- }
还有一个代码如下:
- // 把String 保存为文件
- 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 fileOut = new FileWriter(file);
- fileOut.write(XMLString);
- fileOut.close();
- }
- }
以上所述是作者调试通过。使用STRUTS做为前台,然后输出就可以了。本文章只讨论技术问题,示例当中的代码
只做为研究学习使用,并无它意。
另外个人意见:我在外包公司工作,很累。几乎没有学习新东西的时间,希望有远大志向的人或者想追赶技术潮流的人不要应聘这类公司。
评论
发表评论
-
Petals ESB 开发之一 代理Web Service
2014-01-13 16:13 1713今天要做的工作有如下三个: ... -
Petals ESB 安装部署
2014-01-12 13:37 1662本文档主要有三个内容。 1)P ... -
Petals ESB 简介
2014-01-12 11:43 2196Petal ESB 是一个 ... -
IBM MQ轶事-误删scratch和active日志怎么办?
2011-11-30 11:39 16371,误删scratch下面的文件后,会造成通道不通。STA ... -
错误: 必须限制口令文件读取访问 解决方法
2011-04-22 16:22 6155我在使用activeMQ时,加入有权限的RMI时,发生 ... -
SOAP方式发送XML调用Web Services
2009-12-22 15:22 4821客户有一个需求,发布了一个Web Services,其 ... -
请求远程服务传参和过大参数的函数
2009-10-10 12:26 1302两个Code,第一个函数是普通请求,Like:http ...
相关推荐
5. wsdl4j-1.5.1.jar - 用于解析和处理WSDL(Web Services Description Language)文件。 接下来,我们看一个简单的示例,展示如何调用.NET WebService的`GetSafeMode`方法并传递参数及接收返回值: ```java @...
`src`目录则存放源代码,而`WebServices`可能是专门存放Web服务相关代码的目录。 总的来说,"AXIS 天气预报 QQ在线查询"项目涉及了通过AXIS调用Web服务,使用WSDL2JAVA工具生成客户端代码,以及处理特定类型(如...
从给定的文件信息中,...以上知识点不仅覆盖了JAVA .net面试中可能遇到的基本概念和技术细节,也涉及了高级主题如虚拟机、XML配置以及Web服务的深度理解,对于准备面试的候选人来说,全面掌握这些知识点将大有裨益。
- **Disco**:http://webservice.webxml.com.cn/WebServices/WeatherWS.asmx?disco - **WSDL**:http://webservice.webxml.com.cn/WebServices/WeatherWS.asmx?wsdl ##### 3.1 使用限制 为了平衡资源使用和服务...
- **IIS配置**:学习如何配置Internet Information Services (IIS) 服务器以托管C# Web应用。 - **持续集成和持续部署(CI/CD)**:使用Jenkins、Azure DevOps或其他工具实现自动化构建和部署。 9. **最新技术趋势*...
3. XML Web Services:PetShop4.0还涉及XML Web Services的使用,允许不同平台的应用程序之间共享数据和服务。通过Web服务,PetShop4.0可以与其他系统集成,实现更复杂的功能。 四、PetShop4.0的学习价值 1. 开发...
ADO.NET通过DataSet、DataTable、DataAdapter等对象提供了一种与数据库交互的方式,允许开发者进行数据查询、更新和事务处理。Pet Shop项目展示了如何利用ADO.NET与SQL Server或其他支持的数据库系统进行通信,执行...
在ASP.NET 2.0中,可以使用System.Web.Services命名空间下的 SyndicationService 类创建RSS feed,包括标题、描述、链接等信息。同时,提供RSS订阅按钮,用户点击后可以订阅博客文章或新闻。 **XML** XML...
ADO.NET提供了一套接口和类库,使得开发者可以方便地连接到各种数据库,执行SQL语句,以及填充DataSet或DataReader对象来处理查询结果。 此外,ASP.NET还包含了状态管理机制,如View State和Session,用于在多个...
IIS(Internet Information Services)是Windows操作系统中的一个Web服务器组件,开发者需要学会如何安装和配置IIS来运行和测试ASP.NET应用程序。Visual Studio 2005(VS2005)是一个强大的开发环境,可以用来创建、...
5. .NET Framework 是一个全面的开发平台,包括 Common Language Runtime (CLR)、Base Class Library (BCL)、各种编程语言(如VB.NET、C#、C++ CLI等)、XML Web Services、Web Forms、Windows Forms、数据处理和XML...
4. IIS(Internet Information Services)是微软提供的Web服务器,支持多种Web应用和服务。 5. Session对象用于在用户会话期间存储和检索特定用户的变量,提供跨页面的数据持久性。 6. web.config文件用于配置ASP...
- **GDS (Granite Data Services)**:基于Java平台,支持AMF3。 - **WebORB**:支持.NET, Java, PHP, Ruby等多种平台,同时支持AMF0和AMF3。 - **FluorineFX**:本案例选用的.NET平台的开源项目,支持AMF0, AMF3, ...
其中,CGI是最早的Web服务器扩展接口,ISAPI是专为Internet Information Services (IIS) 设计的,PHP是一种开源的脚本语言,常用于Web开发,而JSP则是Java平台上的服务器端脚本技术。 【数据库技术】如Oracle、SQL ...
Windows Services 24 The Role of C# in the .NET Enterprise Architecture 24 Summary 26 Chapter 2: C# Basics 29 Before We Start 30 Our First C# Program 30 The Code 30 Compiling and Running the Program 31...
在.NET Framework中,Web Service通过SOAP协议和WSDL(Web Services Description Language)进行通信,实现了跨平台的数据交换。 3. **C#、Java和C++的比较** C#、Java和C++都是面向对象的编程语言,但各有特点。...
CDK是由Amazon Web Services(AWS)开发的一组软件开发工具,用于定义云应用程序的基础设施代码。CDK允许开发者使用他们熟悉的编程语言(如Python、Java、TypeScript等)来构建、部署和管理AWS资源。通过CDK,开发者...
10. **部署与发布**:完成开发后,需要将应用程序部署到IIS(Internet Information Services)或其他Web服务器上。理解部署过程,包括配置文件设置、数据库连接字符串、文件权限等,是确保系统正常运行的重要步骤。 ...