Manual Instruction Document

Web Service

JAX-WS & JAX-RS

Author: Liu Xiang

Date: 2018/01/12

1. Summary....................................................................................................................... 1

2. JAX-WS.......................................................................................................................... 1

2.1 The common interface..................................................................................... 1

2.2 The functions.................................................................................................. 1

2.3 To call common JAX-WS.................................................................................... 4

2.4 To call private JAX-WS which released by ourself................................................. 7

2.5 Other common JAX-WS.................................................................................. 10

3. JAX-RS......................................................................................................................... 12

3.1 The common interface................................................................................... 12

3.2 The functions................................................................................................ 12

3.3 To call common JAX-RS................................................................................... 15

3.4 To call private JAX-RS which released by ourself................................................. 18

3.5 Other common JAX-RS................................................................................... 18

1. Summary

There are twotypes of Web Service.

JAX-WS, java apifor xml-based webservice.

JAX-RS, java apifor RESTful webservice.

2. JAX-WS

2.1 Thecommon
interface

Jar name

WsClient.jar

Interface

package com.cn;

 

publicinterface WsClient {

public String getResult(StringapplyKey, Stringtype,
String...message);

}

Parameters

Type

Name

Description

String

applyKey

User's Key, user's verification

String

type

The provided Web Service type name

String...

message

The input parameters

 

Return

Type

Description

String

The Web Service calling result

2.2The functions

2.2.1 Validations

2.2.1.2 CheckapplyKey

ToDo

2.2.1.2 Checktype

Check resource/resource.properties which key = support.type to verify if theincoming
type is support or not.

2.2.2 Prepare Web ServiceRequest

Use the SOAP 1.2 templates in "/com/cn/resource/request/template/"to prepare the request message.

For example:

2.2.3 Get Web Service Response

To call the related WSDL(Web Services DescriptionLanguage) URL, get the response.

For example:

2.2.4 Parse the response

Use the related key word to get result node.

For example:

2.3 Tocall common
JAX-WS

2.3.1 Validations

Pass.

2.3.2 To call the interface

Use below code to call 2.1 common method, to get"苏州"weather.

WsClientwsClient =new WsClientImpl();

System.out.println(wsClient.getResult("","weather","苏州",""));

2.3.3 Send the request SOAP 1.2request

<?xmlversion="1.0"encoding="utf-8"?>

<soap12:Envelopexmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:xsd="http://www.w3.org/2001/XMLSchema"xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">

<soap12:Body>

<getWeatherxmlns="http://WebXml.com.cn/">

<theCityCode>苏州</theCityCode>

<theUserID></theUserID>

</getWeather>

</soap12:Body>

</soap12:Envelope>

2.3.4 Get the response

<?xmlversion="1.0"encoding="utf-8"?>

<soap:Envelopexmlns:soap="http://www.w3.org/2003/05/soap-envelope"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:xsd="http://www.w3.org/2001/XMLSchema">

<soap:Body>

<getWeatherResponsexmlns="http://WebXml.com.cn/">

<getWeatherResult>

<string>江苏苏州</string>

<string>苏州</string>

</string>

<string>2018/01/1210:26:03</string>

级;湿度:31%</string>

<string>紫外线强度:中等。空气质量:中。</string>

、PA+防晒护肤品。健臻·血糖指数:易波动,血糖易波动,注意监测。感冒指数:较易发,天凉温差大,适当增减衣服。穿衣指数:冷,建议着棉衣加羊毛衫等冬季服装。洗车指数:较适宜,无雨且风力较小,易保持清洁度。空气污染指数:中,易感人群应适当减少室外活动。</string>

日晴</string>

<string>-3℃/5℃</string>

级</string>

<string>0.gif</string>

<string>0.gif</string>

日晴转多云</string>

<string>-1℃/7℃</string>

<string>东南风3-4级</string>

<string>0.gif</string>

<string>1.gif</string>

日多云</string>

℃/11℃</string>

<string>东南风3-4级</string>

<string>1.gif</string>

<string>1.gif</string>

日阴</string>

℃/15℃</string>

<string>东南风3-4级</string>

<string>2.gif</string>

<string>2.gif</string>

日小雨</string>

℃/16℃</string>

<string>西北风3-4级</string>

<string>7.gif</string>

<string>7.gif</string>

</getWeatherResult>

</getWeatherResponse>

</soap:Body>

</soap:Envelope>

2.3.5 Parse the response

江苏苏州

苏州

2004

2018/01/12 10:26:03

级;湿度:31%

紫外线强度:中等。空气质量:中。

、PA+防晒护肤品。健臻·血糖指数:易波动,血糖易波动,注意监测。感冒指数:较易发,天凉温差大,适当增减衣服。穿衣指数:冷,建议着棉衣加羊毛衫等冬季服装。洗车指数:较适宜,无雨且风力较小,易保持清洁度。空气污染指数:中,易感人群应适当减少室外活动。

日晴

-3℃/5℃

0.gif

0.gif

日晴转多云

-1℃/7℃

东南风3-4级

0.gif

1.gif

日多云

3℃/11℃

东南风3-4级

1.gif

1.gif

日阴

9℃/15℃

东南风3-4级

2.gif

2.gif

日小雨

7℃/16℃

西北风3-4级

7.gif

7.gif

2.4 Tocall private
JAX-WS which released by ourself

2.4.1 Validations

Pass.

2.4.2 Release private JAX-WS

2.4.2.1 New project HelloFriend

1. New java projectHelloFriend, New class MyService.java

package service;

publicclass MyService {

public String getGreeting(Stringname)

{

return"您好 "+name;

}

}

2. New META-INF folder and services.xml

services.xml

Service name is "myService", useRPC method

<servicename="myService">

<description>

WebService例子

</description>

<parametername="ServiceClass">

service.MyService

</parameter>

<operationname="getGreeting">

<messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>

</operation>

</service>

3. Export the project to jar

jar cvf ws.aar .

2.4.2.2 Use axis2 to releaseit to tomcat

1. Move 2.4.1.1 step 3 jar \apache-tomcat-9.0.2\webapps\axis2\WEB-INF\services

2. Startup tomcat

3. Visit the private wsdl

2.4.3 To call the interface

WsClientwsClient =new
WsClientImpl();

System.out.println(wsClient.getResult("","myservice","刘大人"));

2.4.4 Send the request SOAP 1.2request

<?xmlversion="1.0"encoding="utf-8"?>

<soap12:Envelopexmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:xsd="http://www.w3.org/2001/XMLSchema"xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">

<soap12:Body>

<getGreetingxmlns="http://service">

<name>刘大人</name>

</getGreeting>

</soap12:Body>

</soap12:Envelope>

2.4.5 Get the response

<?xmlversion="1.0"encoding="utf-8"?>

<soapenv:Envelopexmlns:soapenv="http://www.w3.org/2003/05/soap-envelope">

<soapenv:Header/>

<soapenv:Body>

<ns:getGreetingResponsexmlns:ns="http://service">

<ns:return>您好刘大人</ns:return>

</ns:getGreetingResponse>

</soapenv:Body>

</soapenv:Envelope>

2.4.6 Parse the response

您好刘大人

2.5 Othercommon
JAX-WS

2.5.1 Attribution of mobilephones

WsClientwsClient =new
WsClientImpl();

wsClient.getResult("","mobile","18662638888","");

==>

18662638888:江苏苏州江苏联通GSM卡

2.5.2 Flight inquiries

WsClientwsClient =new
WsClientImpl();

wsClient.getResult("","airline","上海","北京","2018-01-12","");

==>

2.5.3 Chinese/Englishtranslations

WsClientwsClient =new
WsClientImpl();

wsClient.getResult("","englishswpchinese","airline","");

==>

airline

'e?lain

adj. (飞机)航线的;n. (飞机的)航线,航空公司

65562.mp3

However short the journey is, you always get something to eat on thisairline.

不管航程多麽短,这一班机上都有些吃的.

That was the worst airline disaster in history.

那是历史上最严重的空难。

The timetable is obtainable post-free from the airline office.

航班时刻表可以向航空公司免费索取。

WsClientwsClient =new
WsClientImpl();

wsClient.getResult("","englishswpchinese","苏州","");

==>

苏州

Suzhou (city)

soochow pladj.

Suchou

Soochow

对不起,打扰了,请问坐火车去苏州该乘什么车?

Excuse me, how can I go to suzhou by train?

一个孕妇把他从苏州河救了起来。

A pregnant lady rescued him from the Suzhou River.

这是从这里去苏州的直达列车吗?

Be this a through carriage for Suzhou from here?

3. JAX-RS

3.1The common
interface

Jar name

RsClient.jar

Interface

package com.cn;

 

import java.util.Map;

 

public interface RsClient {

      public <K, V> String getResult(String applyKey, String httpType, String type, Map<K,V>  parameters, String... message);

}

Parameters

Type

Name

Description

String

applyKey

User's Key, user's verification

String

httpType

Http calling type, GET/POST/PUT/DELETE

String

type

The provided Web Service type name

Map<K,V>

parameters

httpType is POST, the related parameters

String…

message

The input parameters

 

Return

Type

Description

String

The RESTful Web Service calling result

3.2The functions

3.2.1 Validations

3.2.1.2 CheckapplyKey

ToDo

3.2.1.2 Checktype

Check resource/resource.properties which key = support.type to verify if theincoming
type is support or not.

3.2.1.3 Check HTTPtype

Only support GET/POST/PUT/DELETE now.

3.2.2 Prepare RESTful WebService URL

Use the configured method and path to getthe correct URL.

For example

3.2.3 Get RESTful Web ServiceResponse

To call the related URL, get the response.

For example

3.2.4 Parse the response

Use the configured result key word to parseand format the result.

For example

3.3 Tocall common
JAX-RS

3.3.1 Validations

Pass.

3.3.2 Prepare RESTful WebService URL

Use the configured method and path to getthe correct URL.

For example

1. Get the base context path
http://www.weather.com.cn/data/sk/

2. Use the method to get the pathInfogetWeatherPathInfo

Get city code for苏州

3. If no "weather.path.info.method",use "weather.path.info.url" directly;

4.Get pathInfo suffix.

5. Get the final URL: http://www.weather.com.cn/data/sk/101190401.html

3.3.3 Get RESTful Web ServiceResponse

To call the related URL, get the response.

For example

{

"weatherinfo":{

"city":"苏州",

"cityid":"101190401",

"temp":"17",

"WD":"东南风",

"WS":"2级",

"SD":"44%",

"WSE":"2",

"time":"17:05",

"isRadar":"0",

"Radar":"",

"njd":"暂无实况",

"qy":"1017",

"rain":"0"

}

}

3.3.4 Parse the response

城市:苏州

温度:17

风向:东南风

风速:2级

湿度:44%

发布时间:17:05

3.4 Tocall private
JAX-RS which released by ourself

TODO.

3.5 Othercommon JAX-RS

3.5.1 PM 2.5

RsClientImplrsClient =new
RsClientImpl();

rsClient.getResult("","GET","pm2.5",null,"苏州");

==>

3.5.2 O3

RsClientImplrsClient =new
RsClientImpl();

rsClient.getResult("","GET","o3",null,"苏州");

==>

代码链接

WebService与RESTful WebService的更多相关文章

  1. SOAP Webservice和RESTful Webservice

    http://blog.sina.com.cn/s/blog_493a845501012566.html REST是一种架构风格,其核心是面向资源,REST专门针对网络应用设计和开发方式,以降低开发的 ...

  2. Restful是什么,SOAP Webservice和RESTful Webservice

    首先,应该怀着这样一种心态来学习Restful——Restful你可以将其理解一种软件架构风格,并且诠释了Http协议的设计初衷,所以不要把他理解的那么神秘,Restful风格有好处,当然也是有坏处的 ...

  3. Web Service进阶(七)浅谈SOAP Webservice和RESTful Webservice

    浅谈SOAP Webservice和RESTful Webservice REST是一种架构风格,其核心是面向资源,REST专门针对网络应用设计和开发方式,以降低开发的复杂性,提高系统的可伸缩性.RE ...

  4. "SOAP WebService " 和 "RESTful WebService" 的定义分别是什么???

    一个个来,要知道区别,首先得知道各自的意义及用途web service采用Xml传输结构化的数据,轻量级跨平台而soap则是一种基于http的应用层通讯协议,同样采用xml编码,只不过soap又更进了 ...

  5. 转载-- http接口、api接口、RPC接口、RMI、webservice、Restful等概念

     http接口.api接口.RPC接口.RMI.webservice.Restful等概念 收藏 Linux一叶 https://my.oschina.net/heavenly/blog/499661 ...

  6. webservice和restful的区别

    REST是一种架构风格,其核心是面向资源,REST专门针对网络应用设计和开发方式,以降低开发的复杂性,提高系统的可伸缩性.REST提出设计概念和准则为: 1.网络上的所有事物都可以被抽象为资源(res ...

  7. 使用CXF与Spring集成实现RESTFul WebService

    以下引用与网络中!!!     一种软件架构风格,设计风格而不是标准,只是提供了一组设计原则和约束条件.它主要用于客户端和服务器交互类的软件.基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存 ...

  8. RESTful WebService入门

    RESTful WebService入门   RESTful WebService是比基于SOAP消息的WebService简单的多的一种轻量级Web服务,RESTful WebService是没有状 ...

  9. RESTful Webservice

    1,REST和RESTFUL是什么? REST ( REpresentational State Transfer ),State Transfer 为 "状态传输" 或 &quo ...

随机推荐

  1. python函数 传参的多种方式 解读

    1.函数的参数在哪里定义 在python中定义函数的时候,函数名后面的括号里就是用来定义参数的,如果有多个参数的话,那么参数之间直接用逗号, 隔开 案列: 2.带参数的函数调用: 函数定义了参数,那么 ...

  2. ubuntu的一些常用命令及疑难杂症

    记录ubuntu下各种注意事项及常用命令 1,发热:因为硬件厂商对linux类系统的支持不足,驱动不会自动安装,所以要自己装... http://www.linuxidc.com/Linux/2015 ...

  3. mvc5总结(1)

    1.Global.asax 全局的启动项,初始化相关配置 2.路由,按照默认规定请求就行,没必要扩展太多 3.区域路由,当我们想命名相同的controller和action时,结合命名空间使用 pub ...

  4. 阿里云:游戏行业DDoS攻击解决方案

    转自:http://www.gamelook.com.cn/2018/01/319420 根据全球游戏和全球移动互联网行业第三方分析机构Newzoo的数据显示:2017年上半年,中国以275亿美元的游 ...

  5. lightgbm的sklearn接口和原生接口参数详细说明及调参指点

    class lightgbm.LGBMClassifier(boosting_type='gbdt', num_leaves=31, max_depth=-1, learning_rate=0.1, ...

  6. javascript-保留2位小数函数方法

    function zero(num){ var str=num.toString(); if(str.indexOf(".")==-1){ return num+'.00'; }e ...

  7. 05 Linux系统下的用户以及用户权限管理(权限管理介绍、用户管理、常见命令介绍)

    这一节我们介绍Linux的用户以及权限管理的前半段,包括:1.权限管理介绍: 2.用户管理: 3.常见命令 权限管理介绍 权限管理: 为了访问计算机资源,我们需要对其进行授权才能访问,根据什么东西来进 ...

  8. Hadoop的RPC工作原理

    RPC远程过程调用: Hadoop的远程过程调用(Remote Procedure Call,RPC)是Hadoop中核心通信机制,RPC主要通过所有Hadoop的组件元数据交换,如MapReduce ...

  9. php创建临时表

    $sql= "create temporary table yc_linshi ( img varchar(100) not null, openid varchar(50) not nul ...

  10. SQL Server 2016:内存列存储索引

    作者 Jonathan Allen,译者 谢丽 SQL Server 2016的一项新特性是可以在“内存优化表(Memory Optimized Table)”上添加“列存储索引(Columnstor ...