webservice技术--服务器端

1.webservice实现单点登录具体逻辑为

①软通web端作为客户端,请求wi社区后台,进行登录请求

②wi社区后台验证t,核实无误后,走登录逻辑,直接进入欢迎页

③如果有错误,封装错误xml,返回给软通web端

2.wi社区后台实际上是要添加webservice服务端的代码

3.wi社区实际上也会写作为客户端的代码

这是由于我在自测的时候,需要模拟软通web端的客户端进行request的xml格式数据的请求,所以,实际自测的逻辑为:通过软通提供的接口测试工具生成请求xml—在wi社区后台项目的test类中发送这些xml请求—wi社区后台作为服务器进行相应的逻辑响应

4.作为服务器端首先需要编译一个最原始的初类

这个初始类其实就是一个入口,代码可以不写,只要有一个方法就可以了,生成服务器端代码后,可以重写这部分的代码,我的初始类的代码如下

  1. package com.ht.ilcom.webservice;
  2. public class HtWebService {
  3. public void execute(String requestXML){
  4. }
  5. }

编译命令:

javac HtWebService.java

5.生成wsdl命令

%AXIS2_HOME%\bin\java2wsdl -cp . -cn com.ht.ilcom.webservice.HtWebService -of HtWebService.wsdl

(根据自己的目录改吧)

6.实际上我们需要通过一个wsdl生成服务器端的代码

①webservice服务器端代码最早是手工写的,需要对这方面的技术非常的了解,并且很容易出错。而现在因为有许多的框架技术,所以我们可以通过上面生成的wsdl文件,然后选择一门框架技术,直接生成webservice技术的代码,省去了学习底层webservice技术的时间,直接写自己的业务逻辑就可以了。(这是时好时坏呢,呵呵)

②因为我们这里使用的是axis2的技术,Apache官方提供了几种框架技术

axis2生成服务端代码有4中方式,包括Deploying POJOs、Building the service using AXIOM、Generating the service using ADB、Generating the service using XMLBeans、Generating the service using JiBX

这里使用的是ADB因为中国码友说好,时间有限,我们大多数时候要选择相信。

命令如下

%AXIS2_HOME%\bin\wsdl2java -uri resources\META-INF\HtWebService.wsdl -p com.ht.ilcom.webservice.adb -d adb -s -ss -sd -ssi -o build\service

bulid文件夹下的service就是我们刚刚生成的代码了

我们的逻辑要写入HtWebServiceSkeleton.java这个类中

注:写完逻辑后,在执行9的ant构建命令

7.这里补充说一下webservice的一些基础配置

①首先jdk是肯定要有的,最低版本1.5,并且配置好环境变量

②下载axis2项目,解压到目标文件

③你也可以下载axis2.war 放到你的项目引擎(如tomcat的webapp下)解压出项目

④设置axis2的环境变量AXIS2_HOME,这部很重要,很多命令都是基于这个的,不要忽略此步骤

⑤完成这几步后,我们才应该执行刚才的逻辑 初类–编译为class文件—通过java2wsdl生成wsdl文件—然后通过wsdl2java生成webservice服务器端的代码

8.生成代码后,需要写入自己的逻辑了

①写自己的逻辑,需要注意你所引用的所有类(要么是jar要么是项目中原来有的service),如果是jar中的东西,我们可以把用到的jar包拷贝到axis2的项目中的lib中,因为下一步使用ant的时候,会自己扫描lib中用到的jar包

②如果需要用到项目中别的service的方法,最好在webservice包中单独写一份。

9.我们需要通过ant构建一个aar文件

①首先理解这个原理

*首先是Java的编译和运行机制,从.java编译为.class的过程中,javac会默认按照编译所在操作系统的默认编码读取源代码,并编译成内部为UTF-8编码的.class,而在java虚拟机执行的过程中,会按照程序运行所在操作系统的默认编码,将UTF-8编码再次进行转换。通过这种两次转换的方式,Java实现了对多语言的支持。***

②解决方法

  1. <javac encoding="utf-8" destdir="${compile.dir}" debug="on">
  2. .......
  3. </javac>

在ant的build.xml中使用到javac的地方加上这么一句encoding="utf-8"就可以了

③执行命令成功以后,我们得到目录build/service/build/lib中的HtWebServiceService.aar 文件,是最终文件

我们只需将HtWebServiceService.aar文件拷贝到项目的services文件夹中,如图

最后一步,修改service.list文件,如下图

验证

查看服务列表

http://localhost:8080/axis2/services/listServices

查看wsdl文件

http://localhost:8080/axis2/services/StockQuoteService?wsdl

查看xsd文件

http://localhost:8080/axis2/services/StockQuoteService?xsd

###其他记录###

①新建的表member_info、ec_info、order_info、client_ctid

②实际上,我没有用到初类,因为软通那边给我了一个他们生成好的wsdl文件,所需要的方法已经声明完成,我直接使用这个wsdl,通过wsdl2java生成了服务器的代码。

来自为知笔记(Wiz)

时间: 2024-09-30 05:28:31

webservice技术--服务器端的相关文章

webservice技术介绍

一.WebService到底是什么? 一言以蔽之:WebService是一种跨编程语言和跨操作系统平台的远程调用技术.    所谓跨编程语言和跨操作平台,就是说服务端程序采用java编写,客户端程序则可以采用其他编程语言编写,反之亦然!跨操作系统平台则是指服务端程序和客户端程序可以在不同的操作系统上运行. 所谓远程调用,就是一台计算机a上的一个程序可以调用到另外一台计算机b上的一个对象的方法,譬如,银联提供给商场的pos刷卡系统,商场的POS机转账调用的转账方法的代码其实是跑在银行服务器上.再比

Python的Web编程[2] -&gt; WebService技术[0] -&gt; 利用 Python 调用 WebService 接口

WebService技术 / WebService Technology 1 关于webservice / Constants WebService是一种跨编程语言和跨操作系统平台的远程调用技术. WebService主要由以下三种技术构成,XML+XSD,SOAP和WSDL XML+XSD: WebService采用HTTP协议传输数据,采用XML格式封装数据(即XML中说明调用远程服务对象的哪个方法,传递的参数是什么,以及服务对象的返回结果是什么).XML是WebService平台中表示数据

WebService技术

1.什么是WebService,它解决了什么问题 WebService:它不是具体的某个框架或语言,它是一组规范,由第三方去实现这种规范(框架),类似J2EE规范(Servlet规范.Ejb规范).  框架:xfire.CXF等 A.不同平台下不用应用之间的数据调用与交互,比喻用C++写的crm系统,现在有java写的erp,crm的数据需要用到erp项目中的数据,这时可采用webservice解决 CRM(客                                        Web

WebService技术(二)

前言:学习笔记,以供参考 Apache CXF 是一个开源的 Services 框架,CXF 帮助您利用 Frontend 编程 API 来构建和开发 Services .可以与Spring进行快速无缝的整合.灵活的部署,可以运行在Tomcat,Jboss,Jetty(内置),IBMWS,BeaWL上面. 更多CXF介绍:http://www.ibm.com/developerworks/cn/education/java/j-cxf/ 1 cxf发布服务的类 用两个不同的类发布应用: a. S

利用Ajax+MSMQ(消息队列)+WebService实现服务器端向客户端的信息推送

需求: 每当数据库有数据更新时,推送到客户端 软需求: 1.服务器资源有限,要求资源占用尽可能小: 2.项目可控,不许调用第三方不可信不稳定的方法. 已有事例: 1.58到家采用的方法是TCP的长连接,对服务器压力较大: 2.redis等提供了订阅推送服务,开源,但是定制化对开发者其开发语言水平要求较高,笔者水平达不到 最终方案: 解释: ①②页面加载时第一次请求数据,返回数据,加载,调用ajax2 ③页面加载即发出请求,但是此时没有数据,于是就block,等待其他组件insert msg ④收

WebService到底是什么?WebService平台技术、WebService开发、适用场合

一.序言 大家或多或少都听过WebService(Web服务),有一段时间很多计算机期刊.书籍和网站都大肆的提及和宣传WebService技术,其中不乏很多吹嘘和做广告的成分.但是不得不承认的是WebService真的是一门新兴和有前途的技术,那么WebService到底是什么?何时应该用? 当前的应用程序开发逐步的呈现了两种迥然不同的倾向:一种是基于浏览器的瘦客户端应用程序,一种是基于浏览器的富客户端应用程序(RIA),当然后一种技术相对来说更加的时髦一些(如现在很流行的Html5技术),这里

C#远程调用技术WebService葵花宝典

一.课程介绍 直接开门见山吧,在学习之前阿笨想问大家一句,关于WebService远程过程调用技术(RPC) 你真的会了吗?不要跟老夫扯什么WebService技术已经过时,如果你的内心有在偷偷告诉你其实我是真的不会WebService的话,那么恭喜你,因为你在这茫茫的IT编程世界里找到了这本<C#远程调用技术WebService葵花宝典>!曾经有一位不知名的讲师说过这么一句名言: 一门RPC技术不会,那么千万万门RPC技术将都不会! 本次阿笨的分享课包含以下知识点. 1.C# WebServ

C#远程调用技术WebService修炼手册

一.课程介绍 一位伟大的讲师曾经说过一句话:事物存在即合理!意思就是说:任何存在的事物都有其存在的原因,存在的一切事物都可以找到其存在的理由,我们应当把焦点放在因果关联的本质上.所以在本次分享课开课之前,我们要"约法三章"不谈论以下几个比较"严肃"和"敏感"的话题:WebService已经过时了啦,学习它干什么用啊!为什么要用WebService,而不用基于当前流行的RestFul ASP.NET WebAPI ?  对于上面的问题阿笨的回答很简

WebService到底是什么?

一.序言 大家或多或少都听过WebService(Web服务),有一段时间很多计算机期刊.书籍和网站都大肆的提及和宣传WebService技术,其中不乏很多吹嘘和做广告的成分.但是不得不承认的是WebService真的是一门新兴和有前途的技术,那么WebService到底是什么?何时应该用? 当前的应用程序开发逐步的呈现了两种迥然不同的倾向:一种是基于浏览器的瘦客户端应用程序,一种是基于浏览器的富客户端应用程序(RIA),当然后一种技术相对来说更加的时髦一些(如现在很流行的Html5技术),这里