payara 创建 集群_使用Payara Micro的Easy Java EE Microservices

payara 创建 集群

想知道如何开始使用Java EE Microservices? 使用Java EE API部署微服务只需要几个快速步骤。 许多人认为Java EE对于与微服务一起使用而言过于繁重,但事实并非如此……尤其是如果您仅利用服务所需的Java EE规范。 在这篇简短的文章中,我将演示如何使用Java EE快速开发微服务,然后将其部署到Payara Micro。

要下载示例项目,请转到GitHub: https : //github.com/juneau001/SimpleService

就本示例而言,我将使用NetBeans,但是任何Java IDE都足够。 首先,创建一个Maven Web应用程序并将其命名为SimpleService。 接下来,创建两个Java包:org.simpleservice和org.simpleservice.entity。 完成后,该项目应类似于下图:

现在,许多人认为微服务不应该连接到企业数据库,但是我将其留给那些有争议的人使用。 在此示例中,我将把该服务连接到中央Apache derby数据库以获取数据,因为我认为这在许多组织中都是非常可能的情况。 在这种情况下,我们将创建一个“建议的名称”数据库Web服务,该服务将查询即将到来的EE4J平台的建议名称的数据库表。 要创建基础结构,请连接到本地Apache Derby数据库并使用以下SQL创建它:

create table SUGGESTED_NAME (
id numeric primary key,
name varchar(150));insert into suggested_name values(1, 'Open EE');
insert into suggested_name values(2, 'Open JOE');
insert into suggested_name values(3, 'Cappucino');

接下来,打开SimpleService项目的Maven POM文件并添加以下依赖项:

<dependencies><dependency><groupId>javax.ws.rs</groupId><artifactId>javax.ws.rs-api</artifactId><version>2.1</version><scope>provided</scope></dependency><dependency><groupId>javax.persistence</groupId><artifactId>javax.persistence-api</artifactId><version>2.2</version><scope>provided</scope></dependency><dependency><groupId>javax.validation</groupId><artifactId>validation-api</artifactId><version>2.0.0.Final</version></dependency><dependency><groupId>javax.ejb</groupId><artifactId>javax.ejb-api</artifactId><version>3.2</version><type>jar</type></dependency><dependency><groupId>org.eclipse.persistence</groupId><artifactId>eclipselink</artifactId><version>2.5.2</version></dependency><dependency><groupId>org.eclipse.persistence</groupId><artifactId>org.eclipse.persistence.jpa.modelgen.processor</artifactId><version>2.5.2</version><scope>provided</scope></dependency><dependency><groupId>org.apache.derby</groupId><artifactId>derbyclient</artifactId><version>10.14.1.0</version></dependency></dependencies>

请注意,没有Java EE依赖性。 这是因为我仅利用了服务所需的那些依赖项。 每个依赖项是单独添加的。

接下来,创建一个包org.simpleservice.entity,并在其中创建一个名为SuggestedName的实体类。 为简便起见,我不会在这里介绍所有源代码,但是您可以在GitHub( https://github.com/juneau001/SimpleService )上查看源代码。

接下来,我们需要实现我们的JAX-RS Web服务类。 要为JAX-RS配置Java EE应用程序,让我们创建一个名为ApplicationConfig的类并将其放在org.simpleservice包中:

import java.util.Set;
import javax.ws.rs.core.Application;/**** @author Juneau*/
@javax.ws.rs.ApplicationPath("rest")
public class ApplicationConfig extends Application {@Overridepublic Set<Class<?>> getClasses() {Set<Class<?>> resources = new java.util.HashSet<>();resources.add(org.simpleservice.SuggestedNameService.class);return resources;}
}

接下来,我将自己创建JAX-RS Web服务类,并将其命名为SuggestedNameService。 这是SuggestedNameService类的源。 请注意,我已经注入了一个持久性单元。 我接下来会讲。

@Stateless@Path("suggestedNameService")public class SuggestedNameService {@PersistenceContext(unitName = "SimpleService_1.0PU")private EntityManager em;@GET@Path("{id}")@Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})public SuggestedName find(@PathParam("id") BigDecimal id) {SuggestedName suggestedName = null;try {suggestedName = (SuggestedName) em.createQuery("select object(o) from SuggesetedName o " +"where o.id = :id").setParameter("id", id).getSingleResult();} catch (NoResultException ex){System.out.println("Error: "  + ex);}return suggestedName;}@GET@Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})public List<SuggestedName> findAll() {List<SuggestedName> suggestedNames = null;try {suggestedNames = em.createQuery("select object(o) from SuggestedName o").getResultList();} catch (NoResultException ex){System.out.println("Error: "  + ex);}return suggestedNames;}protected EntityManager getEntityManager() {return em;}}

由于此服务将连接到数据库,因此我将为项目创建一个持久性单元。 右键单击项目,然后选择“新建”->“持久性”->“持久性单元”,可以在NetBeans中轻松完成此操作。 将持久性单元命名为SimpleService_1.0PU并使用EclipseLink作为提供者。 此时不要添加数据源。

创建完成后,打开持久性单元并添加连接信息。 在这种情况下,我将连接到接下来将定义的JTA数据源。 数据源名为DerbyDataSource,因此持久性单元(persistence.xml)的内容应如下所示:

<?xml version="1.0" encoding="UTF-8"?><persistence version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd"><persistence-unit name="AuthorService_1.0PU" transaction-type="JTA"><jta-data-source>java:global/DerbyDataSource</jta-data-source><exclude-unlisted-classes>false</exclude-unlisted-classes><properties/></persistence-unit></persistence>

为项目创建一个web.xml部署描述符。 如果在NetBeans中执行此操作,只需右键单击该项目并选择New-> Web->” Standard Deployment Descriptor(web.xml),然后单击Finish。 生成web.xml部署描述符后,将数据源添加到其中。

<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"version="3.1"><session-config><session-timeout>30</session-timeout></session-config><data-source><name>java:global/DerbyDataSource</name><class-name>org.apache.derby.jdbc.ClientDriver</class-name><server-name>localhost</server-name><port-number>1527</port-number><url>jdbc:derby://localhost:1527/acme</url><user>acmeuser</user><password>yourpassword</password> </data-source></web-app>

Java EE应用程序就是这样。 现在,您应该能够将项目编译为WAR文件,并部署到GlassFish,Payara或您选择的其他Java EE应用程序服务器。 在这种情况下,让我们部署到Payara Micro。

首先,请从以下网站下载最新的Payara Micro JAR文件:https://www.payara.fish/payara_micro

下载完成后,可以通过打开命令提示符并在本地Java运行时执行JAR来启动服务器,方法是键入:

java -jar payara-micro-4.1.2.174.jar

要部署我们创建的应用程序(微服务),只需在执行Payara Micro JAR时使用–deploy选项,并将其指向SimpleService WAR文件:

java -jar payara-micro-4.1.2.174.jar --deploy SimpleService-1.0.war

现在可以通过以下URL访问SimpleService微服务:http:// localhost:8080 / SimpleService-1.0 / rest / suggestedNameService

翻译自: https://www.javacodegeeks.com/2017/11/easy-java-ee-microservices-payara-micro.html

payara 创建 集群

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

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

相关文章

php导出页面居中设置,PHPExcel导出插入图片和居中问题

首先到网上先下载PHPExcel下载后解压得到这两个文件下载后引用该文件最后编写相关代码&#xff1a;首先是图片插入导出$objDrawing new PHPExcel_Worksheet_Drawing();$objDrawing->setName(‘Photo‘);$objDrawing->setDescription(‘Photo‘);$objDrawing->setPath…

Linux 命令之 loginctl -- 查看系统当前登录的用户

# 列出当前session $ loginctl list-sessions# 列出当前登录用户 $ loginctl list-users# 列出显示指定用户的信息 $ loginctl show-user ruanyf

两台电脑通过usb共享网络_怎样让电脑通过手机共享上网?

手头有部七年前买的安卓智能手机已经不用了&#xff0c;卖掉不值钱&#xff0c;放在家里也是浪费。能否让它继续发挥余热呢&#xff1f;最近找到了一个好办法&#xff0c;就是可以让个人电脑通过它来上网&#xff08;如下图所示&#xff09;&#xff1a;1. 用数据线将电脑与手机…

有效期判断功能 java_有效的Java第三版有哪些新功能?

有效期判断功能 java自从听说即将出版的有效Java 第三版以来&#xff0c;我一直想知道其中有什么新内容。 我假设将涵盖自Java 6以来引入Java的功能&#xff0c;的确如此。 但是&#xff0c;第三版Java开发人员经典版也有一些其他更改。 在本文中&#xff0c;我提供了有关在第三…

Linux 命令之 touch -- 创建文件

文章目录命令介绍常用选项命令示例&#xff08;一&#xff09;创建空文件&#xff08;二&#xff09;批量创建文件&#xff08;三&#xff09;修改文件的访问时间命令介绍 touch 命令有两个功能&#xff1a;一是用于把已存在文件的时间戳更新为系统当前的时间&#xff08;默认…

linux redis客户端_你见过能把Redis的主从复制讲这么明白的吗?

概念1.Conception(概念)Redis的复制也就是我们所说的主从复制&#xff0c;主机数据更新后根据配置和策略&#xff0c;自动同步到备机的master/slaver机制&#xff0c;Master以写为主&#xff0c;Slave以读为主。2.Function(功能)读写分离(秉持与RDBMS 相同的设计理念)容灾恢复R…

lombok 简化代码_如何编写更少,更好的代码,或Project Lombok

lombok 简化代码我长期以来一直打算写有关Lombok的文章 &#xff0c;以至于每当一个自重的Java开发人员都已经听说过它时&#xff0c;我可能会写它。 尽管如此&#xff0c;值得一提的是&#xff0c;如果只是提醒自己&#xff0c;不要犹豫&#xff0c;尝试性能增强工具并查看它们…

discuz3.1用哪个版本php版本好,Discuz应用中心安装模板提示版本号不匹配适用于X3.3 X3.2 X3.1的解决方法...

有时候我们从应用中心安装模板&#xff0c;在应用中心里模板作者设定允许我们的程序版本&#xff0c;但是我们安装时却提示版本号不匹配&#xff0c;那这是为什么呢&#xff1f;经过我们分析发现是因为X3和X3.1&#xff0c;X3.2的模板是完全兼容的&#xff0c;很多模板是在X3的…

Linux 系统服务管理器(初始化系统/init system) -- systemd 及命令 systemctl 的详细介绍

文章目录一、系统服务管理器 systemd&#xff08;一&#xff09;systemd 的特性&#xff08;二&#xff09;systemd 与 传统 init 系统的区别&#xff08;三&#xff09;systemd 的目录和文件&#xff08;四&#xff09;systemd 的 Unit 介绍1.Unit 类型2.Unit 的配置文件&…

arch linux arm下载_arm开发板运行hello word的详细过程

arm开发板运行helloword1.uboot的编译​ 这里已经安装好了交叉编译工具链&#xff0c;如果自己的电脑下没有&#xff0c;请自行百度安装。将下载好uboot到linux下&#xff0c;进行解压-->打补丁-->编译-->烧写&#xff0c;执行以下命令完成上述四个步骤&#xff08;不…

关于通信matlab 仿真,关于MATLAB在通信仿真系统中的运用

关于 MATLAB在通信仿真系统中的运用 卢 钊 贵 广 东南方 电信规 划 咨询 设 计院 有 限公 司 广 东 揭 阳 522031 【摘 要 】本文采用MATLAB软件 &#xff0c;采集一些图像对其进行图像增 强处理以及MATLAB提供的可视化 SiinuIi nk建立 了扩频通信 系统仿真模 型 &#xff0c;并…

化学专业尽早转行_尽早查看针对Java 11的功能

化学专业尽早转行随着JDK 10即将进入其候选发布阶段 &#xff0c;通过JDK 11观察一下之后将会发生什么是很有趣的。 在撰写本文时&#xff0c;四个JEP &#xff08; JDK增强建议 &#xff09;已正式成为JDK 11的目标&#xff08;可能会出现&#xff09;。 这篇文章总结了一些当…

系统服务管理与控制程序(Init System/初始化系统)-- Systemd 的 Unit 配置文件详解

文章目录一、Service 的配置文件&#xff08;一&#xff09;[Unit] 区块&#xff08;二&#xff09;[Service] 区块1.启动命令2.启动类型3.重启行为&#xff08;三&#xff09;[Install] 区块二、Target 的配置文件三、重载配置文件和重启服务一、Service 的配置文件 一个服务…

matlab乘法器数量级统一,基于matlab的数字滤波器的设计

1 数字滤波器的概述数字滤波器可以用差分方程、单位取样相应以及系统函数等表示&#xff0c;对于研究系统的实现方法&#xff0c;及它的运算结构来说&#xff0c;用狂徒便是最为直接。一个给定的输入输出关系&#xff0c;可以用多种不同的数字网络来实现。在不考虑量化影响是&a…

spring 计划任务_与Spring的计划任务一起按时运行

spring 计划任务您是否需要每天像闹钟一样在同一时间运行某个流程&#xff1f; 然后&#xff0c;Spring的预定任务适合您。 允许您使用Scheduled注释方法&#xff0c;以使其在指定的时间或内部间隔运行。 在本文中&#xff0c;我们将研究建立一个可以使用计划任务的项目&#x…

小程序 input自动换行_直播 | 最实用的微信小程序自动化测试技术独家揭秘

随着微信小程序的功能和生态日益完善&#xff0c;很多企业级小程序项目的页面越来越多&#xff0c;业务逻辑也越来越复杂。如何做好微信小程序的自动化测试成为测试同学面临的一大难题。如何合理构建多端架构和自动化测试体系&#xff1f;如何深入理解微信小程序特性和技术原理…

sit matlab,LabView SIT工具包的使用和安装说明

之前一直在用Simulink做仿真模型&#xff0c;现在要做测试需要用NI的设备和LabView软件&#xff0c;通过一段时间的学习&#xff0c;在SIT的使用上有了点小认识拿来跟大家分享一下。需要注意的是&#xff0c;必须是先安装MatLab Simulink 然后安装SIT工具包&#xff0c;如果先安…

php cdi_CDI中的事务异常处理

php cdi在Java EE中&#xff0c;在执行事务性业务方法期间引发的异常导致事务回滚。 但是&#xff0c;只有系统异常&#xff08;即运行时异常&#xff09;才是这种情况&#xff0c;该方法异常未在方法签名中声明。 对于应用程序异常&#xff08;即检查的异常&#xff09;或任何…

opencv 把3通道图像转成单通道_小强学Python+OpenCV之-1.4.3图像(矩阵)加减运算

引入问题引入&#xff0c;考虑以下几个问题&#xff1a;Q1. 一个3通道像素p的BGR分量&#xff08;8bit表示&#xff09;值均相同&#xff0c;那么这个像素是什么颜色的&#xff1f;Q2. 该像素p加上自己&#xff0c;即&#xff0c;像素p的各个通道值翻倍&#xff0c;那么这个像素…

Linux(CentOS 7.x) 下如何设置 nginx 开机启动?

CentOS 7 以上是用 Systemd 进行系统初始化的&#xff0c;Systemd 是 Linux 系统中最新的初始化系统&#xff0c;Systemd 服务文件以 .service 结尾。 使用命令 yum 安装 nginx 如果用 yum install 命令安装 nginx&#xff0c;yum 命令会自动在目录 /usr/lib/systemd/system …