上一篇介绍了有关payara(似鲭水狼脂鲤,一种鱼,很凶狠)的一些背景,这次我们来看下如何开始一个标准的JakartaEE项目(包含JPA配置),包括下载必要的工具、安装、配置及启动。
一、需要的工具:
- openjdk(zulu版openjdk https://www.azul.com/downloads/?package=jdk)
- payara(5.2021.4 https://www.payara.fish/downloads/payara-platform-community-edition/)
- netbeans(12.0 https://www.apache.org/dyn/closer.cgi/netbeans/netbeans/12.0/Apache-NetBeans-12.0-bin-windows-x64.exe)
- mariadb(10.5.11 https://mariadb.org/download/)
- mysql驱动(JDBC Driver for MySQL (Connector/J)https://www.mysql.com/cn/products/connector/)
二、安装
1、安装openjdk并设置JAVA_HOME和path
下图是JAVA_HOME的配置
下图是Path的配置
2、下载payara并解压缩,这里有个注意的地方,payata的路径中不能包含空格,比如不能解压缩到Program Files路径下,不然无法启动项目。
3、netbeans和maraidb按照提示一路next即可
三、配置
1、配置服务器
运行netbeans,在Services卡片的Servers菜单上右键选择Add Server
选择Payara Server
点击Browse页面,选择payara的解压缩路径确定
一路next完成添加
添加完毕,右键服务器图标选择start启动服务器。
2、配置JPA
首先要将驱动加入到payara中,和glassfish不同的是,payara需要通过命令将mysql安装驱动
在payara安装目录的bin目录下,有asadmin工具,在此目录执行
asadmin add-library (mysql驱动的路径)/mysql-connector-java-bin.jar,将mysql驱动安装添加至payara
其次配置jdbc连接池和连接
在payara安装目录的bin目录下,执行./asadmin,进入asadmin模式,在输入start-domain dmoain1启动payara服务器,也可以在bin下直接输入 ./asadmin start-domain domain1
浏览器输入localhost:4848,按下图操作
Pool Name填写连接池名称
Resource Type选择javax.sql.DataSource
Database Driver vendor选择 MySql8(不要选择MySql)
Instrospect勾选
点击next进入下一步
本页上半部分
Datasource Classname填写com.mysql.cj.jdbc.MysqlDataSource
下半部分
password填写数据库密码
databaseName填写数据库名
serverName填写服务器IP地址,本地填localhost
partNumber:mysql端口;默认3306
保存后点击ping,如果提示成功则连接池就配置好了
创建连接
在下一步的页面上
输入连接名:如testConn
Pool Name选择刚才创建的连接池test
三、启动
1、创建项目
启动netbeans,分别点击file->new Project,在弹出的界面上选择Web Application
创建完项目后,查看是否有index.html和web.xml
如果没有,新建一个servlet会自动创建web.xml,index.html可以自动手动创建即可。
继续配置JPA
项目应该已经为你建好了Persistence.xml,点击Other Source->src/main/resources/persistence.xml
注意到此时JDBC connection是空的,并没有检索到payara创建的连接。
点击persistenc.xml中的Source,将其改为下图所示
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.2" xmlns="http://java.sun.com/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_2.xsd">
<!-- Define Persistence Unit -->
<persistence-unit name="my_persistence_unit" transaction-type="JTA">
<jta-data-source>此处填写在payara创建的数据库连接名,如上面说的testConn</jta-data-source>
<class>com.mycompany.mavenproject4.NewEntity</class>
<properties>
<property name="javax.persistence.schema-generation.database.action" value="drop-and-create"/>
</properties>
</persistence-unit>
<jta-data-source>java:global/gaisconn</jta-data-source>
</persistence>
这时会自动识别payara的数据连接,选择保存。
直接运行,进入index.xhtml即为成功
此时在数据库发现不能创建表,这是因为没有引用实体管理器造成的
修改项目下的JavaEE8Resource.java,该文件是创建项目默认创建的,也可能是JakartaEEx(代表ee的版本),加入如下代码
@PersistenceContext(unitName = "my_persistence_unit")
private EntityManager em;
整个源码
package com.mycompany.mavenproject4.resources;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.core.Response;
/**
*
* @author
*/
@Path("javaee8")
public class JavaEE8Resource {
@PersistenceContext(unitName = "my_persistence_unit")
private EntityManager em;
@GET
public Response ping(){
return Response
.ok("ping")
.build();
}
}
再次运行发现创建了数据库表
成功!
如果大家在使用上有什么问题,可以加入768647900进行交流。
下一篇介绍如何用payara的微服务基础,jar的形式启动war。