`
glacier3
  • 浏览: 385120 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Web Service学习笔记

阅读更多

 

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 Service 即 web 服务,它是一种跨编程语言和跨操作系统平台的远程调用技术。 Java 中共有三种 Web Service 规范: - JAX-WS(JAX-RPC): 基于 xml 数据 - JAXM&SAAJ - JAX-RS:基于 xml 或 json 数据

    web service学习笔记1

    Web Service是一种基于可编程的Web应用程序,它允许不同系统之间的交互和数据交换,不受平台和编程语言限制。Web Service的核心技术是用于构建Service-Oriented Architecture(SOA)应用。目前,Web Service主要分为...

    Web Service学习笔记.doc

    WebService学习笔记 Web Service 是一种软件系统,为了支持跨网络的机器间相互操作交互而设计。它通常被定义为一组模块化的 API,它们可以通过网络进行调用,来执行远程系统的请求服务。在传统的程序编码中,存在...

    [Web Service学习笔记]第1篇 SOAP的HelloWord实例

    里面只有这样几句话:“交易消息(包括请求和应答)是以XML格式表达的,包括两个部分:Message Header(消息头)与Service Content(交易业务内容)。” “接口协议使用HTTP协议,落地方为发起方提供访问的URL,发起方...

    Axis 开发Web Service(学习笔记)

    **Axis开发Web Service学习笔记** 在信息技术领域,Web服务是一种基于开放标准的互联网通信协议,允许不同的应用程序之间进行互操作。而Axis是Apache软件基金会的一个开源项目,它提供了一个强大的工具集,用于创建...

    web service入门学习笔记

    Web Service入门学习笔记 Web Service是一种基于互联网的、平台无关的通信协议,它允许不同系统间的应用程序通过网络互相调用,实现数据交换和服务共享。在本文中,我们将深入探讨Web Service的基本概念,以及如何...

    尚硅谷Webservice学习笔记

    综上所述,尚硅谷的Web Service学习笔记涵盖了XML Schema、HTTP协议基础以及Web Service的核心概念和应用,为深入理解和实践Web Service提供了基础知识。要了解更多关于Web Service的详细内容,可以通过指定的学习...

    webservice学习笔记 -- XFrie

    【Web Service学习笔记——XFrie框架详解】 Web Service是一种通过网络进行通信的服务,它允许不同的应用程序之间进行数据交换,跨越了操作系统和编程语言的障碍。XFrie是一个轻量级、高性能的Java Web Service框架...

    Java/JavaEE 学习笔记

    Java/JavaEE 学习笔记 作者在杰普学习时的学习笔记,是J2ee初学者必备手册,是大家学习J2EE开发的很好的参考笔记。 Java/JavaEE 学习笔记 内容目录: Unix 学习笔记..........7 ...Web Service学习笔记.....388

    J2EE学习笔记(J2ee初学者必备手册)

    内容目录 .......................1 Java/JavaEE.....1 2008年11月1日...............1 Unix 学习笔记7 一、Unix前言............7 二、Unix基础知识....7 三、Unix常用命令....8 ...Web Service学习笔记.....388

    Java web基础学习笔记

    这篇学习笔记将主要围绕JSP展开,探讨其基本概念、语法以及如何在实际开发中运用。 JSP(JavaServer Pages)是一种动态网页技术,它允许开发者在HTML或XML文档中嵌入Java代码,从而实现服务器端的动态内容生成。JSP...

    webservice学习笔记

    ### WebService 学习笔记详解 #### 一、实验环境搭建与配置 在开始Web Service的学习之前,首先需要搭建一个适合开发的环境。本实验基于以下配置: - 操作系统:Windows 2000 (Win2k) - JDK版本:1.6 - Java EE...

    webservice学习笔记doc文档

    在本学习笔记中,主要介绍了使用Apache Axis2框架来开发和测试Web Service的过程。Apache Axis2是Apache SOAP栈的一个实现,提供了简单且高效的Web Service开发工具。 首先,开发者需要在Eclipse集成开发环境中搭建...

    Java web中servlet学习笔记 核心

    - Servlet接收到请求后,调用`service()`方法处理请求。 - 处理完成后,服务器可能会保持Servlet实例以处理后续请求,直到应用程序停止或Servlet被显式卸载。 4. **Servlet生命周期** - 实例化:首次请求Servlet...

    javaweb 学习笔记

    以上是关于 JavaWeb 学习笔记中提到的主要知识点,包括 Web 应用的基本概念、目录结构、配置文件详解以及 Tomcat 的虚拟目录和虚拟主机配置方法。希望这些内容能帮助初学者更好地理解 JavaWeb 开发的核心要素和技术...

Global site tag (gtag.js) - Google Analytics