最近,我一直在关注一些热门的RedHat技术,在其中很多有趣的部分中,我找到了SwitchYard 。 过去,对于所有人都围绕SOA和面向服务的体系结构不屑一顾,这对我来说一直很奇怪,作为Java EE开发人员。
过去,我一直在用自己的手来构建面向组件的应用程序。 主要是受Java EE标准中可用功能的驱动,以使其“可移植”且易于使用。 回顾过去,它已非常适合许多客户和应用程序。 随着对高度集成的应用程序的需求不断增长,这些应用程序已经使用了遍布各地的现有服务和流程(部门,中央甚至是云服务),这种方法开始变得越来越过时。 这种感觉并非来自技术角度,而是来自周围的所有需求。 牢记这一点,是一系列方法和简短教程的起点,这些教程旨在展示一些更多样化的构建(Java EE)应用程序的方法,这些方法可以更好地适应当今的需求和环境。
什么是SwitchYard?
它是使用面向服务架构的设计原理和最佳实践的,用于集成应用程序的基于组件的开发框架。 如果您期望使用一种功能完善的BPMN / SOA流行词套件,那么您会有点不满意。 这是供开发人员使用的,应该使其使用起来相当直接。 它已经存在了一段时间,从最新的2.0.0.Alpha1开始,它与WildFly 8兼容。足以让我兴奋的理由。
将SwitchYard安装到最新的WildFly 8.1.0.Final中
从项目网站下载switchyard-2.0.0.Alpha1-wildfly软件包和WildFly 8.1.0.Final 。 通过将WildFly 8解压缩到您选择的文件夹中(例如D:\ wildfly-8.1.0.Final \)来安装它。 现在,将SwitchYard捆绑包解压缩到WildFly文件夹中。 根据使用的zip实用程序,可能会提示您是否应该替换现有文件。 对所有要解压缩的文件回答是/全部。
这是一个Alpha版本,因此由于SWITCHYARD-2158的缘故,您必须对配置进行一些调整。 打开“ JBOSS_HOME / standalone / configuration / standalone.xml”,然后搜索“ org.switchyard.component.camel”。 原子 .deploy.CamelRSSComponent,然后将包从“原子”更改为“ rss”。 现在,继续使用“ JBOSS_HOME / bin / standalone.sh / .bat”启动服务器。
如果一切正常,您应该会看到以下消息:
09:18:25,857 INFO [org.jboss.as] (Controller Boot Thread) JBAS015874: WildFly 8.1.0.Final "Kenny" started in 3712ms - Started 210 of 259 services (81 services are lazy, passive or on-demand)
构建和部署Bean服务快速入门
如果您想动手,可以轻松从发行版的“ JBOSS_HOME / quickstarts /”目录中的打包应用程序开始。 一个简单的例子就是bean服务示例。 它利用了SwitchYard的核心组件之一Bean Component 。 它允许Java类(或bean)提供和使用服务。 因此,您可以通过简单地注释Java类来实现服务,或者通过将引用直接注入Java类来使用服务。
而且,由于Bean组件是标准的CDI扩展,因此无需学习新的编程模型即可使用它。 它只是一个标准的CDI Bean,带有更多注释。
对于现有的Java EE应用程序,这意味着您可以将应用程序中现有的基于CDI的bean作为服务公开给外界,或者通过添加更多注释来使用bean中的服务。
首先是第一件事。 我们需要在项目pom.xml中进行一些调整以使此工作有效。 转到构建部分,并将“ jboss-as-maven-plugin”替换为最新版本的:
<groupId>org.wildfly.plugins</groupId>
<artifactId>wildfly-maven-plugin</artifactId>
<version>1.0.2.Final</version>
现在运行“ mvn软件包”以下载所有依赖项并执行测试。 它应该可以正常工作并声明:
Tests run: 6, Failures: 0, Errors: 0, Skipped: 0
让我们通过发出“ mvn -Pdeploy install”将其部署到WildFly实例。 最后,WildFly控制台使您知道成功执行的情况:
10:19:44,636 INFO [org.jboss.as.server] (management-handler-thread - 1) JBAS018559: Deployed "switchyard-bean-service.jar" (runtime-name : "switchyard-bean-service.jar")
应用快速测试
一个非常快速的测试是执行mvn exec:java,它将执行BeanClient类并向已部署的服务触发SOAP请求。 输出应为:
SOAP Reply:
<soap:envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope"><env:header xmlns:env="http://www.w3.org/2003/05/soap-envelope"></env:header><soap:body><ord ers:submitorderresponse="" xmlns:orders="urn:switchyard-quickstart:bean-service:1.0
"><orderack><orderid>PO-19838-XYZ</orderid><accepted>true</accepted><status>Orde
r Accepted [intercepted]</status></orderack></ord></soap:body></soap:envelope>
今天就是这样。 接下来的部分将更详细地研究示例应用程序,并安装工具,并向您介绍其他各种组件。 如果等不及了,请查看:
- SwitchYard文档 ,其中包含大量有用的内容。
- 一些很棒的视频,并在我们新的SwitchYard视频系列中了解有关SwitchYard的全部知识。
- 其他Quickstart应用程序。
翻译自: https://www.javacodegeeks.com/2014/08/getting-started-with-switchyard-2-0-0-alpha1-on-wildfly-8-1-0-final.html