WebService
基础
什么叫
Web service
它是一套标准,它定义了应用程序如何在
Web
上实现互操作性。你可以用任何你喜欢的语言,在任何你喜欢的平台上写
Web service
,只要我们可以通过
Web service
标准对这些服务进行查询和访问。
Ws
的相关名词解释:
JAX-WS
:
Java API for XML Web Services.
SOAP
:simple object access protocal
。
Web Service
的操作调用是通过SOAP
处理的.
In JAX-WS, a web service operation invocation is represented by an XML-based protocol such as SOAP.
The SOAP specification defines the envelope structure, encoding rules, and conventions for representing web service invocations and responses. These calls and responses are transmitted as SOAP messages (XML files) over HTTP.
WSDL
:web service description language.WSDL specifies an XML format for describing a service as a set of endpoints operating on messages.
SAAJ
:java
提供的包装SOAP
消息的API
。包名:javax.xml.soap
JAX-WS
中java
方法的参数类型和返回类型并不是所有都被支持。所以就要用到JAXB
JAXB
:JavaTM
Architecture for XML Binding
:
provides a fast and convenient way to bind between XML schemas and Java representations
。
Apache CXF
Apache CXF
一个开源的
Service
框架,它实现了
JCP
与
Web Service
中一些重要标准。
CXF
简化了构造,集成,面向服务架构
(SOA)
业务组件与技术的灵活复用。在
CXF
中,
Service
使用
WSDL
标准定义并能够使用各种不同的消息格式
(
或
binding)
和网络协议
(transports)
包括
SOAP
、
XML
(通过
HTTP
或
JMS
)进行访问。
CXF
同样支持多种
model
如:
JAX-WS
,
JBI
,
SCA
和
CORBA service
。
CXF
设计成可灵活部署到各种容器中包括
Spring-based
,
JBI
,
SCA
,
Servlet
和
J2EE
容器。
官方网站
http://cxf.apache.org
一些重要的类解释
1. @XmlType
将一个类或者枚举类型转换为
xml
元素类型。
2.
@
XmlAccessorType
(XmlAccessType.
FIELD
)
:设置
java
fields
或者
java bean
属性的序列化
方式
3.
@
XmlElement
(nillable =
false
, name =
"entry"
)
:通过给定的名字,将一个
java property
映射为
xml
元素。
Nillabl
:
e
将元素声明自定义为
nillable
。
如果
nillable()
为
true
,那么
JavaBean
属性被映射到
XML
模式
nillable
元素声明。
4. XmlAdapter<ValueType,BoundType>
:
java
类型的转换规则。
修改
Java
类型以适应自定义编组。
对于
SOAP
不支持的类型,需要使用到该类,如
map
类型参数:
BoundType
- JAXB
不知道如何处理的一些类型。编写一个适配器,以便允许通过
ValueType
将此类型用作内存表示形式。
ValueType
- JAXB
无需其他操作便知道如何处理的类型。
方法:
public
abstract
ValueType marshal(BoundType v)
编组过程中,
JAXB
绑定框架调用
XmlAdapter.marshal(..)
将
bound
类型修改为
value
类型,然后将
value
类型编组为
XML
表示形式。
public
abstract
BoundType unmarshal(ValueType v)
解组过程中,
JAXB
绑定框架首先将
XML
表示形式解组为
value
类型,然后调用
XmlAdapter.unmarshal(..)
将
value
类型修改为
bound
类型。
5. @XmlJavaTypeAdapter
:使用一个实现了
XmlAdapter
的类来定义编组过程。
编写基于
CXF
的
ws
程序过程:
1.
创建
Maven
工程
a)
导入依赖关系
<dependencies>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-core</artifactId>
<version>${cxf.version}</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-simple</artifactId>
<version>${cxf.version}</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxws</artifactId>
<version>${cxf.version}</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-databinding-aegis</artifactId>
<version>${cxf.version}</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-transports-local</artifactId>
<version>${cxf.version}</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-transports-http</artifactId>
<version>${cxf.version}</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-transports-http-jetty</artifactId>
<version>${cxf.version}</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-transports-jms</artifactId>
<version>${cxf.version}</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-management</artifactId>
<version>${cxf.version}</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-common-utilities</artifactId>
<version>${cxf.version}</version>
</dependency>
<dependency>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty</artifactId>
<version>6.1.6</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.2</version>
<scope>test</scope>
</dependency>
</dependencies>
b) 把JDK版本设置为5.0
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.0.2</version>
<configuration>
<source>1.5</source>
<target>1.5</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
2.
编写
ws
服务接口。
3.
编写服务实现类。
4.
创建启动程序。
5.
编写客户端测试代码。
服务器端和客户端代码:
服务器端代码
:
Endpoint.publish
(
address
, implementor);
客户端代码:
JaxWsProxyFactoryBean factoryBean =
new
JaxWsProxyFactoryBean();
factoryBean.setServiceClass(WSServer.
class
);
factoryBean.setAddress(endpointAddress);
wsservice
= (WSServer) factoryBean.create();
活色生香第二辑-66种生活
分享到:
相关推荐
Web Service 即 web 服务,它是一种跨编程语言和跨操作系统平台的远程调用技术。 Java 中共有三种 Web Service 规范: - JAX-WS(JAX-RPC): 基于 xml 数据 - JAXM&SAAJ - JAX-RS:基于 xml 或 json 数据
Web Service是一种基于可编程的Web应用程序,它允许不同系统之间的交互和数据交换,不受平台和编程语言限制。Web Service的核心技术是用于构建Service-Oriented Architecture(SOA)应用。目前,Web Service主要分为...
WebService学习笔记 Web Service 是一种软件系统,为了支持跨网络的机器间相互操作交互而设计。它通常被定义为一组模块化的 API,它们可以通过网络进行调用,来执行远程系统的请求服务。在传统的程序编码中,存在...
里面只有这样几句话:“交易消息(包括请求和应答)是以XML格式表达的,包括两个部分:Message Header(消息头)与Service Content(交易业务内容)。” “接口协议使用HTTP协议,落地方为发起方提供访问的URL,发起方...
**Axis开发Web Service学习笔记** 在信息技术领域,Web服务是一种基于开放标准的互联网通信协议,允许不同的应用程序之间进行互操作。而Axis是Apache软件基金会的一个开源项目,它提供了一个强大的工具集,用于创建...
Web Service入门学习笔记 Web Service是一种基于互联网的、平台无关的通信协议,它允许不同系统间的应用程序通过网络互相调用,实现数据交换和服务共享。在本文中,我们将深入探讨Web Service的基本概念,以及如何...
综上所述,尚硅谷的Web Service学习笔记涵盖了XML Schema、HTTP协议基础以及Web Service的核心概念和应用,为深入理解和实践Web Service提供了基础知识。要了解更多关于Web Service的详细内容,可以通过指定的学习...
【Web Service学习笔记——XFrie框架详解】 Web Service是一种通过网络进行通信的服务,它允许不同的应用程序之间进行数据交换,跨越了操作系统和编程语言的障碍。XFrie是一个轻量级、高性能的Java Web Service框架...
Java/JavaEE 学习笔记 作者在杰普学习时的学习笔记,是J2ee初学者必备手册,是大家学习J2EE开发的很好的参考笔记。 Java/JavaEE 学习笔记 内容目录: Unix 学习笔记..........7 ...Web Service学习笔记.....388
内容目录 .......................1 Java/JavaEE.....1 2008年11月1日...............1 Unix 学习笔记7 一、Unix前言............7 二、Unix基础知识....7 三、Unix常用命令....8 ...Web Service学习笔记.....388
这篇学习笔记将主要围绕JSP展开,探讨其基本概念、语法以及如何在实际开发中运用。 JSP(JavaServer Pages)是一种动态网页技术,它允许开发者在HTML或XML文档中嵌入Java代码,从而实现服务器端的动态内容生成。JSP...
### WebService 学习笔记详解 #### 一、实验环境搭建与配置 在开始Web Service的学习之前,首先需要搭建一个适合开发的环境。本实验基于以下配置: - 操作系统:Windows 2000 (Win2k) - JDK版本:1.6 - Java EE...
在本学习笔记中,主要介绍了使用Apache Axis2框架来开发和测试Web Service的过程。Apache Axis2是Apache SOAP栈的一个实现,提供了简单且高效的Web Service开发工具。 首先,开发者需要在Eclipse集成开发环境中搭建...
- Servlet接收到请求后,调用`service()`方法处理请求。 - 处理完成后,服务器可能会保持Servlet实例以处理后续请求,直到应用程序停止或Servlet被显式卸载。 4. **Servlet生命周期** - 实例化:首次请求Servlet...
以上是关于 JavaWeb 学习笔记中提到的主要知识点,包括 Web 应用的基本概念、目录结构、配置文件详解以及 Tomcat 的虚拟目录和虚拟主机配置方法。希望这些内容能帮助初学者更好地理解 JavaWeb 开发的核心要素和技术...