Статьи

PostgreSQL на Open Liberty

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"?>
<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
 
    <persistence-unit name="prod" transaction-type="JTA"/>
 
</persistence>

Если приложение включает в себя несколько баз данных, единицы сохранения должны указывать имена JNDI их соответствующего источника данных.

Протестировано с официальным изображением Docker open-liberty:javaee7 .

Опубликовано на Java Code Geeks с разрешения Себастьяна Дашнера, партнера нашей программы JCG. Смотрите оригинальную статью здесь: PostgreSQL на Open Liberty

Мнения, высказанные участниками Java Code Geeks, являются их собственными.