`
glacier3
  • 浏览: 377400 次
  • 性别: 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学习笔记.doc

    Web Service学习笔记

    web service学习笔记

    web service的概述,包括定义,基本架构,使用的主要技术以及常用框架的简单介绍

    web service学习笔记1

    * 目前两种主要的技术类型 * 1、soap-based web service * 2、restful-based web service * * soap-

    Eclipse插件开发指南

    [Web Service学习笔记]第 1 篇 SOAP的HelloWord实例 ******************************************************* 作者:陈刚,程序员,广西省桂林人,广西师范大学数学系 97 届毕业。 blog:...

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

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

    web service入门学习笔记

    web service入门学习笔记,包含运行实例代码

    axis开发web_service程序_学习笔记

    axis开发web_service程序_学习笔记,学习axis开发,学习笔记

    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

    Axis 开发Web Service(学习笔记)

    网上无意中找到的... 介绍Axis 开发WEB SERVICE,挺不错的.

    SAP 中文学习笔记

    SAP 中文学习笔记SAP NW AS as web service Server and Client .pdf

    JBoss ESB 学习笔记

    自己辛苦整理的网上的JBoss ESB学习笔记 ,非常详细,代码操作都有截图; 希望大家多支持! 学习笔记PDF的目录如下: 1——搭建ESB开发环境 2 2——第一个ESB代码...16——第十五个ESB代码Web Service Consumer 1 151

    net学习笔记及其他代码应用

    2.使用VS.NET中的Add Web Reference菜单选项 23..net Remoting 的工作原理是什么? 答:服务器端向客户端发送一个进程编号,一个程序域编号,以确定对象的位置。 24.在C#中,string str = null 与 string str = ...

    第一天MySQL的自我系统学习笔记

    第一天MySQL的自我系统学习笔记

    spring培训学习笔记

    从服务上讲(With a service abstraction),它将程序代码从J2EE环境解耦到普通的java对象(自然,这些代码可以脱离J2EE而在多种环境中运行)。它还在很多功能上提供了除EJB之外的选择――比如为所有的POJO提供声明式...

    黑马程序员_Webservice公开课源码和笔记

    学习本次公开课你将收获和体会到什么: 学习完本次公开课,你将深入理解Web Service,快速上手企业开发。 主要讲解内容如下: Web Service是什么? Web service的优势和前景 Web Service和Web服务器的区别? 在什么...

    JavaEE5学习笔记09-将EJB发布成WebService总结

    JavaEE5学习笔记09-将EJB发布成WebService总结。

    webservive学习笔记

    Web Service的定义,原理,应用,源码

Global site tag (gtag.js) - Google Analytics