使用Payara Micro的Easy Java EE Microservices
想知道如何开始使用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中执行此操作,只需右键单击该项目,然后选择“新建”->“ Web”->“标准部署描述符(web.xml)”,然后单击“完成”。 生成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 Micro的Easy Java EE Microservices相关推荐
- payara 创建 集群_使用Payara Micro的Easy Java EE Microservices
payara 创建 集群 想知道如何开始使用Java EE Microservices? 使用Java EE API部署微服务只需要几个快速步骤. 许多人认为Java EE对于与微服务一起使用而言过于 ...
- Payara基金会发布全面支持MicroProfile 2.0的5.183版Payara Server和Payara Micro
Payara基金会最近发布了5.183版Payara Server和Payara Micro,其中包含大量新功能.升级和Bug修复,并开始全面支持MicroProfile 2.0和Java EE 8. ...
- java ee 6 sdk中文版,Java EE 6 SDK+Eclipse JEE+Android ADT-Fun言
很多时候,为了生存,需要不断的了解,学习新东西,于是头脑塞满了便便- -|||- -----------------------.. 按照自己的理解: JDK = Java Develope Kit ...
- 浅谈Java SE、Java EE、Java ME三者的区别
1. Java SE(Java Platform,Standard Edition).Java SE 以前称为 J2SE.它允许开发和部署在桌面.服务器.嵌入式环境和实时环境中使用的 Java 应用程 ...
- JDK版本Java SE、Java EE、Java ME的区别
想在win7 X64上搭建JAVA开发环境来着(只是尝试下),打开JAVA 官网下载JDK,发现好多版本懵了,百度了下找到这些版本的区别,故有了下文 1.JAVA SE Java2平台标准版(Java ...
- Java SE、Java EE、Java ME基本区别
Java SE(Java Platform,Standard Edition).Java SE 以前称为 J2SE.它允许开发和部署在桌面.服务器.嵌入式环境和实时环境中使用的 Java 应用程序.J ...
- java ee 期末考试_JAVA EE 期末试题 (1)
41.Servlet间完成协作,需要用到(A)完成请求指派 A.Requestdispatcher B.Responsedispatcher C.Servletdispatcher D.include ...
- oidc_使用Java EE和OIDC构建Java REST API
oidc "我喜欢编写身份验证和授权代码." 〜从来没有Java开发人员. 厌倦了一次又一次地建立相同的登录屏幕? 尝试使用Okta API进行托管身份验证,授权和多因素身份验证. ...
- ibm liberty_使用Eclipse和Open Liberty的Java EE 8上的Java 9
ibm liberty 几周前,我写了一篇文章,题目是哪个IDE和服务器支持Java EE 8和Java9 ,着眼于Java 9和Java EE 8之间的当前状态.您可以期望事情发展很快,现在我们有了 ...
最新文章
- FPGA中时钟相关概念
- html 图片布局,CSS 布局图片
- 开放下载 | 和 4000+Java 开发者共读《Spring Cloud Alibaba 从入门到实战》
- 【Java】HashMap构建登录程序
- Simulink中如何定义变量的初始值
- matplotlib绘图_Python之matplotlib绘图示例
- Java线程面试题 Top 50 (转载)
- 评审系统:查看互评信息实现及优化显示
- Kibana插件sentinl使用教程
- unity3D-下载安装指南
- Charles mac版本进行https抓包的配置方法
- 出行即服务(MAAS)框架
- HTML5 中 40 个最重要的技术点
- 安卓机顶盒刷linux系统下载,安卓机顶盒刷机 最简单的刷机教程【图文教程】
- 下载、安装Ctex及编译自动化学报模板时错误的解决
- 国内免费php mysql空间,[php mysql]国内有什么好的免备案免费php+mysql空间
- 蚂蚁金服开放平台-支付宝新版接口的参数设置
- 关于印发《黑龙江省农村土地承包经营权确权登记试点工作操作规程(试行)》的通知
- 对角阵在matlab,MATLABSimulink实现对角阵解耦(模型和代码).pdf
- 小程序实现地图找房功能
热门文章
- Java多线程干货系列(1):Java多线程基础
- 字符串substring方法在jkd6,7,8中的差异
- Ajax判断用户名是否可用
- Typora的使用技巧
- android微信分享之创建工程以及启动微信
- 韩文博 php,No releases available for package pear.php.net/HTTP_Upload
- vba mysql update多字段_vba操作Mysql使用UPDATE一次更新多组数据
- java流与文件——正则表达式
- 夜神模拟器模拟安卓测试_使用模拟进行测试
- junit4和junit5_JUnit5 TestSuite替代