`
txf2004
  • 浏览: 7034064 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

快速实践JAX-WS 2.0

阅读更多

本文根据SUN官方网站Enterprise Java Technologies Tech Tips栏目上的一篇文章改写的,所有过程均调试通过。

一.前言

SOA思想的核心在于"S",凡是从服务的角度去看待系统功能,并且构建和实现应用,都可以认为是SOA的某种实现形式。下面一段要说的是:SOA技术的核心在于"O"--只有做到Service-Orientation的技术,才能真正称为SOA技术。

怎样才能算作Service-Orientation?我们再以OO进行类比:VB之所以被称为基于对象(Object-Based)而不是面向对象(Object-Oriented)的语言,是因为VB的运行时结构不具有VMT等基本构造,语法上也不支持私有成员,继承等基础特性,两者结合,就造成无法支持封装,继承,多态等面向对象的关键技术。一句话,VB不是围绕对象这个核心概念设计的语言。对于SOA技术,它也可以从这个角度划分两个层次:一个是SOA运行时相关结构标准,例如SOAPWSDL,WS-*等,相当于OO中的对象内部结构,VMT构造等。另外一个则是语言和工具层面的支持,例如基于元数据的服务描述,支持Web Service的类库,Proxy生成工具等,相当于OO语言中提供的基本OO语法,类库,编绎器等。这两个层次共同构成SOA体系结构中的要素,让人们能够围绕服务这个核心概念进行系统开发和应用。因此,一种技术架构,平台或产品要称作SOA,应当同时具备这一两方面的特征。

所以,下面将要讨论的JAX-WS技术,从上面的观点来看,也就是SOA技术的第二个层次,即语言和工具层面的支持--Java,例如基于元数据的服务描述,支持Web Service的类库,Proxy生成工具等.

Java API for XML Web ServicesJAX-WS2.0,Java EE 5平台的一个重要的部分。作为Java API for XML-baseed RPC 1.1JAX-RPC)的后续版本,在JAX-RPC 1.1,开发人员需要写一个接口类Service Endpoint Interface(SEI),JAX-WS 2.0,开发人员一上来就可以直接写自己的实现类. 通过使用annotations,自动生成SEI和其他一些文件.这样有助于开发人员专注于自己想开发的部分,而不必要地分散精力去维护其他的一些附属文件.

.快速实践JAX-WS2.0

下面通过一个两个数相加的简单例子来看看,JAX-WS 2.0 API的应用过程.程序是一个独立的客户端传给服务端两个整数,经过服务端处理后,将结果返回到客户端并打印出来.

. 环境配置.

1. JDK 5.0 or higher

下载: http://java.sun.com/javase/downloads/index.jsp

2. Java EE 5.0 App Server.

这个例子是基于Java EE 5的一个开源实现项目GlassFishhttps://glassfish.dev.java.net/public/downloadsindex.html

本例子所需的基本代码的压缩包可以通过这个链接下载。里面包括了这个例子需要的代码,构建脚本和一个build文件。

环境变量的配置:

· GLASSFISH_HOME.这个应该指向你安装GlassFish的目录(比如,我系统上的是:J:\Sun\AppServer)

· ANT_HOME.这个应该指向ant所安装的目录。在你下载GlassFish bundleAnt已经被包含在里面了。(对于Windows系统,它是在lib\ant子目录)。不过你也可以从Apache Ant Project page.下载Ant。对于这个例子需要Apache ant <chsdate w:st="on" year="1899" month="12" day="30" islunardate="False" isrocdate="False">1.6.5</chsdate>

· JAVA_HOME.这个应该指向你系统上安装的JDK 5.0or higher)的目录。

同时,把antbin目录添加到Path环境变量中去(J:\apache-ant-<chsdate w:st="on" year="1899" month="12" day="30" islunardate="False" isrocdate="False">1.6.5</chsdate>\bin),当然了JDKbin目录也加进去了。

然后下载例子的代码包并且解压。根文件夹是jaxws-techtip

<shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"><stroke joinstyle="miter"></stroke><formulas><f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f></formulas><path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></path><lock aspectratio="t" v:ext="edit"></lock></shapetype><shape id="_x0000_i1025" style="WIDTH: 372.75pt; HEIGHT: 149.25pt" alt="" type="#_x0000_t75"><imagedata o:href="http://p.blog.csdn.net/images/p_blog_csdn_net/lin_bei/7f749278697c454db5eae4e22e778fbe.png" src="file:///C:%5CDOCUME~1%5CGAOLIN~1%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image001.png"></imagedata></shape>

endpoint\ 目录下有一个文件Calculator.java

client\ 目录下有一个文件JAXWSClient.java

.编写构建服务端

随着第一步环境配置的完全,现在该开始构建一个web服务了。在这个例子里,web服务是从一个Java类来开发的。为了构建这个web服务:

1写一个端点实现类(endpoint implementation class)

2编绎这个端点实现类。

3有选择的产生对web服务的运行必须具备的那些可移植的制品。

4web服务打包成一个WAR文件并且在App Server中部署它。

1 编写实现类.

进到endpoint\目录下,可以看到里面有一个文件Calculator.java.它是一个端点实现类,具备有对两个整数进行相加的简单服务。

JAX-WS 2.0大量地依赖注释(annotations)的使用,它是A Metadata Facility for the Java Programming Language (JSR 175)描述的规范和Web Services Metadata for the Java Platform (JSR 181)描述的规范。

packageendpoint;

importjavax.jws.WebService;
importjavax.jws.WebMethod;

@WebService(
name
="Calculator",
serviceName
="CalculatorService",
targetNamespace
="http://techtip.com/jaxws/sample"
)
publicclassCalculator...{
publicCalculator()...{}

@WebMethod(operationName
="add",action="urn:Add")
publicintadd(inti,intj)...{
intk=i+j;
System.out.println(i
+"+"+j+"="+k);

returnk;
}

}

研究上面的实现类Calculator,注意到类里的两个注释的使用@WebService@WebMethod。一个正确的端点实现类必须包含有一个@WebService注释。这个注释标注这个类将作为一个web服务对外开放。@WebServicename属性表明了web服务描述语言(WSDL)里的端口类型(portType)(在这个例子里是”Calculator”)。而serviceName="CalculatorService"对应的是一个WSDL里的服务元素(service)targetNamespace属性为WSDL说明了XML的命名空间。所有的这些属性都是可选的。对于这些属性的默认值是什么,请参考Web Services Metadata for the Java Platform规范,JSR 181

再来看看另外一个重要的注释@WebMethod,被它注释过的方法说明将它以一个
web服务的方法暴露出来,被其他应用来调用。@WebMethod注释里的operationName
声明了WSDL里的一个元素WSDL operation(在这个例子里,”add”,另外一
个属性action =("urn:Add"),它为WSDL还有一些从这个web服务操作(web service operation)
成的元素声明了一个命名空间。这两个属性都是可选的。如果你没有列出来的
话,WSDL操作(operation)的值将会默认为方法名,还有action值也会默认为
服务的targetNamespace
2 编绎实现类

写完了上面的实现类之后,你需要编绎它。点击 开始->程序->Sun Microsystems>“Start Default Server”启动应用服务器或者通过在DOS窗口下敲下面的命令来启动它:<GF_install_dir>\bin\asadmin start-domain domain1,其中GF_install_dir是你安装GlassFish的目录,也就是说先到<GF_install_dir>\bin目录下,然后用命令asadmin start-domain domain1来启动应用服务器。现在将目录转到jaxws-techtip文件夹下,运行下面的ant命令,也就是执行第一个任务complie:

ant compile

执行这个命令就相当于执行以下的javac命令(都是在同一行)

javac -classpath $GLASSFISH_HOME/lib/javaee.jar -d

./build/classes/service/ endpoint/Calculator.java

3 web服务的执行产生可移植的制品

这一步是可选的。如果在这个web服务的部署期间,他们没有和一个可配置的服务单元绑定,GlassFish的部署工具能够自动地产生这些制品。然而对于刚刚接触JAX-WS来说,对于弄清楚整个编程模式来说,通过手动产生地会话会更有帮助,即运行下面的命令:

ant generate-runtime-artifacts

这个任务将会在jaxws-techtip目录下生成build/generated目录,并且运行了下面的wsgen命令(都是在同一行):

$GLASSFISH_HOME/bin/wsgen -cp ./build/classes/service -keep -d ./build/classes/service –r ./build/generated -wsdl endpoint.Calculator

一个WSDL文件(CalculatorService.wsdl)build/generated目录下生成了,还在同个目录下生成了另外一个schema文件(CalculatorService_schema1.xsd),它为CalculatorService.wsdl定义了schema

JavaBean技术组件(JavaBeans)在编组(marshaling,java->XML)的方法调用,响应,还有service-specific异常中起了很大的作用。这些类将会在web服务在一个应用服务器中运行的时候被使用。JavaBean类在jaxws-techtip目录下的 /build/classes/service/endpoint/jaxws目录被生成了,这些类是:

Add.java

Add.class

AddResponse.java

AddResponse.class

4 打包并部署WAR文件

接下来你需要做的工作就是对服务进行打包和部署。为了做这个,你需要在一个部署描述符中详细说明这个服务。Web服务可以绑定成servlet的形式或者无状态的session bean形式打包成Web Archive (WAR)文件。在这个例子里把它绑定为一个servlet

为了把这个服务打包成一个WAR文件,定位到jaxws-techtip文件夹,并且在DOS窗口上运行下面的命令:

ant pkg-war

对于这个war文件的结构,我们可以到build.xml文件里看看pkg-war目标:

<shape id="_x0000_i1046" style="WIDTH: 8.25pt; HEIGHT: 12pt" alt="" type="#_x0000_t75"><imagedata o:href="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" src="file:///C:%5CDOCUME~1%5CGAOLIN~1%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image003.gif"></imagedata></shape><targetname="pkg-war"depends="init-common">
<shape id="_x0000_i1047" style="WIDTH: 8.25pt; HEIGHT: 12pt" alt="" type="#_x0000_t75"><imagedata o:href="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" src="file:///C:%5CDOCUME~1%5CGAOLIN~1%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image003.gif"></imagedata></shape>
<mkdirdir="${assemble.dir}"/>
<shape id="_x0000_i1048" style="WIDTH: 8.25pt; HEIGHT: 12pt" alt="" type="#_x0000_t75"><imagedata o:href="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" src="file:///C:%5CDOCUME~1%5CGAOLIN~1%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image003.gif"></imagedata></shape>
<echomessage="mybuildclassesdiris:${build.classes.dir}"level="verbose"/>
<shape id="_x0000_i1049" style="WIDTH: 8.25pt; HEIGHT: 12pt" alt="" type="#_x0000_t75"><imagedata o:href="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" src="file:///C:%5CDOCUME~1%5CGAOLIN~1%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image003.gif"></imagedata></shape>
<mkdirdir="${build.classes.dir}/tmp"/>
<shape id="_x0000_i1050" style="WIDTH: 8.25pt; HEIGHT: 12pt" alt="" type="#_x0000_t75"><imagedata o:href="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" src="file:///C:%5CDOCUME~1%5CGAOLIN~1%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image003.gif"></imagedata></shape>
<mkdirdir="${build.classes.dir}/tmp/WEB-INF"/>
<shape id="_x0000_i1051" style="WIDTH: 8.25pt; HEIGHT: 12pt" alt="" type="#_x0000_t75"><imagedata o:href="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" src="file:///C:%5CDOCUME~1%5CGAOLIN~1%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image003.gif"></imagedata></shape>
<mkdirdir="${build.classes.dir}/tmp/WEB-INF/classes"/>
<shape id="_x0000_i1052" style="WIDTH: 8.25pt; HEIGHT: 12pt" alt="" type="#_x0000_t75"><imagedata o:href="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" src="file:///C:%5CDOCUME~1%5CGAOLIN~1%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image003.gif"></imagedata></shape>
<mkdirdir="${build.classes.dir}/tmp/WEB-INF/wsdl"/>
<shape id="_x0000_i1053" style="WIDTH: 8.25pt; HEIGHT: 12pt" alt="" type="#_x0000_t75"><imagedata o:href="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" src="file:///C:%5CDOCUME~1%5CGAOLIN~1%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image003.gif"></imagedata></shape>
<copyfile="${web.xml}"
<shape id="_x0000_i1054" style="WIDTH: 8.25pt; HEIGHT: 12pt" alt="" type="#_x0000_t75"><imagedata o:href="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" src="file:///C:%5CDOCUME~1%5CGAOLIN~1%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image003.gif"></imagedata></shape>tofile
="${build.classes.dir}/tmp/WEB-INF/web.xml"failonerror="false"/>
<shape id="_x0000_i1055" style="WIDTH: 8.25pt; HEIGHT: 12pt" alt="" type="#_x0000_t75"><imagedata o:href="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" src="file:///C:%5CDOCUME~1%5CGAOLIN~1%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image003.gif"></imagedata></shape>
<copytodir="${build.classes.dir}/tmp/WEB-INF/classes">
<shape id="_x0000_i1056" style="WIDTH: 8.25pt; HEIGHT: 12pt" alt="" type="#_x0000_t75"><imagedata o:href="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" src="file:///C:%5CDOCUME~1%5CGAOLIN~1%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image003.gif"></imagedata></shape>
<filesetdir="${build.classes.dir}/service">
<shape id="_x0000_i1057" style="WIDTH: 8.25pt; HEIGHT: 12pt" alt="" type="#_x0000_t75"><imagedata o:href="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" src="file:///C:%5CDOCUME~1%5CGAOLIN~1%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image003.gif"></imagedata></shape>
<includename="**/*.class"/>
<shape id="_x0000_i1058" style="WIDTH: 8.25pt; HEIGHT: 12pt" alt="" type="#_x0000_t75"><imagedata o:href="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" src="file:///C:%5CDOCUME~1%5CGAOLIN~1%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image003.gif"></imagedata></shape>
<includename="**/${handler.name}"/>
<shape id="_x0000_i1059" style="WIDTH: 8.25pt; HEIGHT: 12pt" alt="" type="#_x0000_t75"><imagedata o:href="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" src="file:///C:%5CDOCUME~1%5CGAOLIN~1%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image003.gif"></imagedata></shape>
</fileset>
<shape id="_x0000_i1060" style="WIDTH: 8.25pt; HEIGHT: 12pt" alt="" type="#_x0000_t75"><imagedata o:href="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" src="file:///C:%5CDOCUME~1%5CGAOLIN~1%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image003.gif"></imagedata></shape>
</copy>
<shape id="_x0000_i1061" style="WIDTH: 8.25pt; HEIGHT: 12pt" alt="" type="#_x0000_t75"><imagedata o:href="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" src="file:///C:%5CDOCUME~1%5CGAOLIN~1%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image003.gif"></imagedata></shape>
<copytodir="${build.classes.dir}/tmp/WEB-INF/wsdl">
<shape id="_x0000_i1062" style="WIDTH: 8.25pt; HEIGHT: 12pt" alt="" type="#_x0000_t75"><imagedata o:href="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" src="file:///C:%5CDOCUME~1%5CGAOLIN~1%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image003.gif"></imagedata></shape>
<filesetdir="${build.generated.dir}">
<shape id="_x0000_i1063" style="WIDTH: 8.25pt; HEIGHT: 12pt" alt="" type="#_x0000_t75"><imagedata o:href="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" src="file:///C:%5CDOCUME~1%5CGAOLIN~1%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image003.gif"></imagedata></shape>
<includename="**/*.*"/>
<shape id="_x0000_i1064" style="WIDTH: 8.25pt; HEIGHT: 12pt" alt="" type="#_x0000_t75"><imagedata o:href="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" src="file:///C:%5CDOCUME~1%5CGAOLIN~1%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image003.gif"></imagedata></shape>
</fileset>
<shape id="_x0000_i1065" style="WIDTH: 8.25pt; HEIGHT: 12pt" alt="" type="#_x0000_t75"><imagedata o:href="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" src="file:///C:%5CDOCUME~1%5CGAOLIN~1%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image003.gif"></imagedata></shape>
</copy>
<shape id="_x0000_i1066" style="WIDTH: 8.25pt; HEIGHT: 12pt" alt="" type="#_x0000_t75"><imagedata o:href="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" src="file:///C:%5CDOCUME~1%5CGAOLIN~1%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image003.gif"></imagedata></shape>
<echomessage="Creatingwarfile${assemble.dir}/${appname}-web.war"level

分享到:
评论

相关推荐

    JAX-WS自学笔记

    【正文】 JAX-WS(Java API for XML-Based Web Services)是Java平台上的一个标准,用于构建和消费Web服务。它是JAX-RPC的继承者,提供了更现代、基于...通过理解和实践JAX-WS,你可以更好地掌握Java中的Web服务技术。

    jax-ws用户指南 pdf版

    - **JAX-WS 2.0 中的 MTOM**:详细描述了 MTOM 在 JAX-WS 2.0 版本中的实现方式。 - **swaRef**:介绍了 swaRef 的概念及其在 JAX-WS 中的使用。 ##### SOAP 1.2 - **简介**:概述了 SOAP 1.2 的特点及其与 JAX-WS ...

    java实验_JAX-Ws

    在提供的文档"设计与开发 JAX-WS 2.0 Web 服务.doc"中,可能详细阐述了以上步骤,并提供了实际操作的指导和示例。而"jaxws.zip"可能包含了实验代码、示例项目或者额外的参考资料,供你实践和学习。 通过这个实验,...

    jax-ws:有关JAX-WS 2.0的研究项目

    3. **WS-I兼容性** - JAX-WS 2.0致力于提高与Web服务互操作性规范(WS-I)的兼容性,如Basic Profile 1.1,确保服务遵循业界认可的最佳实践。 4. **协议绑定** - 支持多种传输协议(如HTTP、HTTPS)以及消息编码...

    MyEclipse基于JAX-WS开发Webservice+WebserviceClient客户端调用.zip

    JAX-WS是取代了早期的JAX-RPC,它以更现代的方式处理Web服务,支持WSDL(Web服务描述语言)2.0,SOAP(简单对象访问协议)1.2,并且与Java EE紧密集成。开发者可以使用JAX-WS轻松地创建符合标准的Web服务,同时提供...

    oreilly.java.web services

    Java EE的JSR-311(JAX-RS 1.1)和JSR-339(JAX-RS 2.0)也引入了安全相关的API,如OAuth2和JWT(JSON Web Tokens)。 7. **测试与调试**:开发Web服务后,需要进行测试以确保其功能正确。JUnit、Mockito等工具可以...

    fabric3-binding-ws-metro-1.9.6.zip

    而Metro是Java Web服务堆栈的一个关键部分,它实现了JSR 224(JAX-WS 2.2)标准,用于构建、部署和管理基于SOAP的Web服务。 【描述】"gradle-android-plugin.zip" 描述的是Gradle Android插件,这是一个强大的构建...

    webservice学习

    3. **书籍**:《Java Web Services Up and Running》和《RESTful Java with JAX-RS 2.0》等书籍深入讲解了Web服务的开发和实践。 通过以上介绍,我们了解到Web服务是连接不同系统的重要桥梁,无论是在企业级应用...

    jaxws-api-2.1_jaxb-api-2.1.jar

    【标题】"jaxws-api-2.1_jaxb-api-2.1.jar"涉及到的主要是Java中的Web服务技术,主要包括JAX-WS(Java API for XML Web ...开发者可以利用这些资源来学习和实践如何在Java环境中使用JAX-WS和JAXB来开发和运行Web服务。

    Developing Web Services with Apache Axis2

    - **简洁明了**:书中避免了冗长抽象的概念介绍,而是直接进入实践操作,确保读者能够专注于实际开发过程中的具体步骤。 #### 图表辅助理解 - **图表展示**:书中包含了大量图表来帮助解释处理流程和高级概念,这...

    Java Web服务:构建与运行(第2版)第6-7章源代码

    第6章可能重点讲解了如何使用Java API for XML Processing (JAX-WS)来创建和消费SOAP Web服务。JAX-WS是Java平台上的一个标准API,用于构建面向服务的架构(SOA)。开发者可以使用它来创建服务端点(SEIs,Service ...

    webservice全部demo(2

    6. **JAX-WS(Java API for XML Web Services)**:在Java世界中,JAX-WS是用于创建和消费SOAP Web服务的标准API,它简化了Web服务的开发过程。 7. **JAX-RS(Java API for RESTful Web Services)**:与JAX-WS对应...

    动态调用WebService例子 文档

    2. **JAX-WS与JAX-RS**:在Java世界中,JAX-WS(Java API for XML Web Services)用于创建和消费SOAP Web服务,而JAX-RS(Java API for RESTful Web Services)则用于处理RESTful Web服务。动态调用时,开发者可以...

    camel2.2.0 手册

    - Apache CXF:一套智能 Web 服务套件(JAX-WS)。 - Apache MINA:网络框架。 ### 快速入门 为了快速上手 Apache Camel,用户可以通过阅读手册第二章的简单示例开始。对于希望更深入学习的读者,建议跳过快速入门...

    深入浅出WebService

    CXF实现了JAX-WS 2.0规范,支持与Spring的集成,以及多种传输协议、数据格式和数据绑定。其基于Interceptor的架构便于扩展。 **使用CXF创建WebService** 使用CXF,开发者可以轻松创建WebService服务端。CXF简化了...

    Java EE 6 Development with NetBeans 7(书和代码)

    总之,《Java EE 6 Development with NetBeans 7》是一本全面介绍Java EE 6开发的实用指南,它不仅讲解了核心技术和最佳实践,还提供了丰富的示例代码,帮助读者快速上手并精通使用NetBeans 7开发企业级应用。...

    cxf-https spring5.0

    CXF 3.2版本引入了更多的功能和性能优化,例如对JAX-RS 2.0和JAX-WS 2.2的支持,以及增强的错误处理机制。 3. **Maven**:Maven是Java项目管理工具,它通过使用一个项目对象模型(POM)来管理项目的构建、报告和...

    weblogic下webservice 开发

    - **WebLogic 支持的标准**:列出了 WebLogic Server 支持的一系列标准和技术规范,包括 SOAP、SAAJ、WSDL、JAX-RPC、Web 服务安全(WS-Security)、UDDI、JAX-R 等。 - **BEA 实现的 Web 服务规范**:具体说明了 ...

    j2ee java ee 6 documentation api docs

    7. **WS-JAX-WS (Web Services)**:Java EE 6提供了基于JAX-WS的Web服务支持,允许开发和部署SOAP服务。`@WebService`和`@WebMethod`注解用于标注服务和方法。 8. **JMS (Java Message Service)**:Java EE 6包含...

Global site tag (gtag.js) - Google Analytics