jax-ws cxf_Apache CXF – JAX-WS –简单教程

jax-ws cxf

许多Java开发人员都认为Web Service实现的任务艰巨-好吧,没有人能真正责怪他们,尤其是在企业应用程序开发的多年中,这给开发和设计带来了很多复杂性。 对于某些人来说,了解它是构建完整的企业应用程序的下一步-Web服务-是实现面向服务的设计的关键方案之一-几乎每个可用的平台都支持该方案,当然包括Java / J2EE。

在本教程中,我将展示如何使用Apache CXF通过JAX-WS和Apache CXF API创建Web服务,以从远程应用程序调用特定服务。

  1. 构建Web服务应用程序:服务器端–我们需要构建应用程序以及Web服务实现代码。 这将是一个通用的WAR(Web存档),将包含实际的实现
  2. 构建Web服务应用程序:客户端–当然,我们需要为外部客户端提供一种让他们访问服务的方式–我们将创建一个存根并将其分发给客户端,以供他们使用服务。

仅供参考:我正在使用Maven简化库定义。

首先我们创建存根

它包含用于访问服务的接口和实体(Pojos)。 在设计服务时–通常,您通常先创建类接口(引用),然后将其放在另一个JAR文件中以进行重新分发。

第二让我们建立服务。

我们将从部署到应用程序服务器的Web存档托管服务。

POM。 xml –我们将使用Spring CDI和CXF –可能会加载所需的所有库。

我们在服务器上包含存根,因为它将作为实现的参考:

现在,我们创建服务实现:

cxf-servlet(或beans.xml)–在这里我们将调用工厂,该工厂将在加载上下文时发布WSDL。

web.xml –由于我们使用的是框架,因此我们需要确保Web服务请求将通过CXF。 CXF的优点是它完成了所有必要的绑定,编组,解组以及注入进/出拦截器。

构建和部署WAR! –部署战争后,查看上下文页面。 您应该看到这样的内容:

如果您设法查看上述URL,则说明您已经成功公开了服务,现在可以由外部客户端调用

第三,我们创建客户端应用程序。

现在,我们创建一个独立的Java应用程序来调用该服务–我们将再次使用Spring上下文加载客户端Bean,并且需要包含存根,以便我们可以引用实现。

beans.xml –创建xml并调用代理工厂bean在运行时创建实例

创建客户端–我们现在将调用bean并使用引用来调用方法。

–测试您的服务!

您现在应该可以调用服务实现了!

在此处下载示例

通过这个简单的示例,它确实有力地证明了现在创建Web Service只是轻而易举–我们利用Apache CXF作为服务框架来简化开发,并利用Springs强大的CDI来照顾其余的一切。

参考: Apache CXF – JAX-WS –我们的JCG合作伙伴 Alvin Reyes的简单教程 , 网址为Alvin“ Jay” Reyes博客。

翻译自: https://www.javacodegeeks.com/2013/05/apache-cxf-jax-ws-simple-tutorial.html

jax-ws cxf

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/349243.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

oracle instance client 下载,安装Oracle Instance Client

不想再装客户端了,个太大了。1、去下载你想要的Instance Clent版本,解压;2、把以前备份的sqlnet.oratnsnames.ora放在解压后的目录;3、配置环境变量变量名:TNS_ADMIN变量值:X:\XXXXXXXX\instantclient_10_24、用记事本保存为XX.re…

写屏障是什么_面试官为什么问内存模型总离不开final关键字,该如何应对?

Java 语言的每个关键字都设计的很巧妙,金雕玉琢,只有深度钻研其中,才知其中懊悔,本文带领大家一起深入理解 Java 内存模型之 final。加我微信好友的不要着急,手机没电了,等我借个充电器之后,再一…

非静态方法可以访问Java中的静态变量/方法吗?

“非静态方法可以访问静态变量或调用静态方法”是Java中有关静态修饰符的常见问题之一,答案是, 是的 ,非静态方法可以访问静态变量或调用静态方法。 Java中的方法。 这没有问题,因为有静态成员,即静态变量和静态方法都…

php中$_post怎么用,php – 如何在$_POST []中使用变量

我需要遍历一堆动态生成的字段,但这不起作用:$population_density $_POST[$current_location_id];我有一个页面列表,其人口在一页上;我需要这样做,这样你就可以立刻更新它们.所以我使字段名称动态地对应于location_id.提交帖子时,我需要像这样迭代它们,但似乎你不能…

python输入字母终止_将用户输入限制为字母

我是学python的技术作家。我想写一个验证姓名字段输入的程序,作为实践,将用户输入限制为字母。我在这里看到了一个类似的验证数字(年龄)字段的代码,并将其用于字母表,如下所示:import stringimport rer re.compile(r[…

which oracle linux,(总结)Linux下Oracle11gR2的ORA-00845错误解决方法

PS:前些时间一台演示环境的Oracle 11g for Linux不知什么原因,启动不起来,报错ORA-00845。搜索了下,这个问题是由于设置SGA的大小超过了操作系统/dev/shm的大小。当时解决了没空写总结,今天有点空,总结分享…

oracle编程基本语法,oracle编程基础语法

oracle数据开发编程结构: declare[定义变量]begin[逻辑代码]exception[捕获异常]end;实例:declarea number:1;b number:2;c number;beginc:(a*b)/(ab);dbms_output.put_line(c);exceptionwhen zero_divide thendbms_output.put_line(除数不能…

java8optional_关于Java 8的Optional的介绍

java8optional我最近发现了JDK 8中Optional类型的添加。 Optional类型是避免NullPointerException一种方法,因为从方法中获取Optional返回值的API使用者被“强制”执行“在线”检查,以消耗其实际返回值。 更多细节可以在Javadoc中看到。 可以在此博客文章…

python大文件排序_python实现按创建时间对文件排序

测试中,测试log是经常需要保存一段时间以便于后续查询,但是如果一段时间不删除,会导致硬盘空间变小而影响自动化测试,通常空间太小,自动化测试case就不能调用了,或者即使调用,可能会引起新测试的…

oracle存储过程深入,深入了解oracle存储过程的优缺点

定义:存储过程(Stored Procedure )是一组为了完成特定功能的SQL 语句集,经编译后存储在数据库中。用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象,任何一个设计良好的数据库应用程…

如何在Java 8中使用LocalDateTime格式化/解析日期-示例教程

Java项目中的常见任务之一是将日期格式化或解析为String,反之亦然。 解析日期表示您有一个表示日期的字符串,例如“ 2017-08-3”,并且要将其转换为表示Java中日期的对象,例如Java 8之前版本中的java.util.Date以及LocalDate或Loca…

如何获取当前刀具号_数控刀具的选用原则,如何使用数控刀具?一文全面介绍数控刀具...

数控刀具选用概述学习数控相关知识,最基础的是认识和了解刀具的材料以及选用原则,我们应当了解数控刀具的种类及特点、如何正确选择和使用数控加工刀具;学会根据被加工材料来合理选择数控刀具的材料和切削参数。选用原则:数控车床…

Java命令行界面(第27部分):cli-parser

CLI Parser最初托管在Google Code上,现在已存档在Google Code上 ,现在可以在GitHub上使用 。 归档的Google Code项目页面将CLI解析器描述为“使用非常简单,非常小的依赖项”,它使用注释“使非常简洁的主要方法不需要知道如何解析带…

linux系统中如何安装qwt,linux下Qt开发环境中qwt库的安装与使用

qwt的安装与使用安装好qt开发环境后,先去下载qwt库源代码。以我下载的qwt-6.0.1.zip为例,解压得到qwt-6.0.1。1.安装qwt-6.0.1执行下面的命令:1 cd qwt-6.0.12 qmake3 make4 make install这样就完成qwt-6.0.1的安装了,安装的路径是…

moxy json介绍_MOXy的对象图和动态JAXB

moxy json介绍JAXB(JSR-222)使您可以轻松地将域类的实例转换为XML。 EclipseLink MOXy实现提供了一个称为Dynamic JAXB的扩展,在其中,您可以使用诸如DynamicEntity之类的映射实例代替真实的类​​。 您可以使用采用属性名称的get和…

linux 查看服务器作业,linux – 如何在服务器负载较低时运行作业?

我有一个运行磁盘快照的命令(在EC2上,冻结XFS磁盘并运行EBS快照命令),该命令设置为作为cron作业定期运行.理想情况下,如果在任务计划运行时磁盘被大量使用,我希望能够将命令延迟一段时间.我担心使用nice / ionice可能没有正确的效果,因为我希望脚本在运行时以高优先级运行(即等…

wordcloud python3.6能用吗_Python3.6环境下安装wordcloud模块遇到的问题及解决办法

“error: Microsoft Visual C 14.0 is required…”问题解决今天在Python 3.6环境中,制作词云,需要安装wordcloud模块,在安装的过程中遇到了“error: Microsoft Visual C 14.0 is required…” 的问题,很是烦恼,最后找…

使用基本身份验证来保护Spring Boot REST API

这是我的Spring Boot Blog帖子系列的第三篇文章。 在第一篇文章中,我谈到了我使用Spring Boot创建RESTFul Services的经验。 然后我将样本扩展到 与Swagger文档集成 。 在这篇文章中,我将在安全方面扩展上述示例。 什么是API安全性 API安全性广泛&…

使用2.26内核的linux,介绍linux 2.6.9-42内核升级到linux 2.6.26-42的方法

介绍linux 2.6.9-42内核升级到linux 2.6.26-42的方法来源:互联网作者:佚名时间:2013-04-10 13:32这篇升级Linux内容的文章,是基于Red Hat的Linux版本,从linux 2.6.9-42内核升级到linux 2.6.26-42的方法,对于…

python xlwt xlrd 写入一行_自己总结python用xlrd\xlwt读写excel

1.首先安装xlrd\xlwt模块xlrd模块下载地址:https://pypi.python.org/pypi/xlrdxlwt模块下载地址:https://pypi.python.org/pypi/xlwtlinux 安装命令 python setup.py installwindos 安装命令 setup.py install2.使用方法大全基础方法推荐请看这里:http://blog.csdn.net/mr__fan…