Open Liberty — это новый интересный сервер приложений OSS Java EE, созданный в WebSphere Liberty. Вы можете настроить Open Liberty для использования PostgreSQL в качестве источника данных по умолчанию следующим образом:
Добавьте директивы для <datasource>
, <jdbcDriver>
и <library>
в конфигурацию server.xml
:
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
<? xml version = "1.0" encoding = "UTF-8" ?> < server description = "OpenLiberty Java EE 8 Server" > < featureManager > < feature >javaee-7.0</ feature > </ featureManager > < httpEndpoint id = "defaultHttpEndpoint" host = "*" httpPort = "9080" httpsPort = "9443" /> < keyStore id = "defaultKeyStore" password = "Liberty" /> <!-- Postgres coffee-shop-db definition --> < dataSource id = "DefaultDataSource" jndiName = "jdbc/sample" jdbcDriverRef = "postgresql-driver" type = "javax.sql.ConnectionPoolDataSource" transactional = "true" > < properties serverName = "coffee-shop-db" portNumber = "5432" databaseName = "postgres" user = "postgres" password = "postgres" /> </ dataSource > < jdbcDriver id = "postgresql-driver" javax.sql.XADataSource = "org.postgresql.xa.PGXADataSource" javax.sql.ConnectionPoolDataSource = "org.postgresql.ds.PGConnectionPoolDataSource" libraryRef = "postgresql-library" /> < library id = "postgresql-library" > < fileset id = "PostgreSQLFileset" dir = "/opt/ol/wlp/lib" includes = "postgresql-9.4-1201.jar" /> </ library > </ server > |
Доступ к базе данных, доступной через host coffee-shop-db
будет осуществляться через стандартный порт 5432
Postgres с postgres
качестве имени базы данных, имени пользователя и пароля.
Библиотека драйверов, здесь postgresql-9.4-1201.jar
, должна находиться в каталоге lib/
установки сервера.
Источник данных по умолчанию может использоваться прозрачно из приложения Java EE. В файле persistence.xml необходимо указать только одну единицу persistence.xml
, аналогично следующему фрагменту:
1
2
3
4
5
6
7
8
9
|
<? xml version = "1.0" encoding = "UTF-8" ?> xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence < persistence-unit name = "prod" transaction-type = "JTA" /> </ persistence > |
Если приложение включает в себя несколько баз данных, единицы сохранения должны указывать имена JNDI их соответствующего источника данных.
Протестировано с официальным изображением Docker open-liberty:javaee7
.
Опубликовано на Java Code Geeks с разрешения Себастьяна Дашнера, партнера нашей программы JCG. Смотрите оригинальную статью здесь: PostgreSQL на Open Liberty
Мнения, высказанные участниками Java Code Geeks, являются их собственными. |