Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ez a cikk bemutatja, hogyan konfigurálhat adatforrásokat Egy Java SE, Tomcat vagy JBoss alkalmazásban az App Service-ben.
Azure-alkalmazás szolgáltatás Java-webalkalmazásokat futtat egy teljes körűen felügyelt szolgáltatáson három változatban:
- Java Standard Edition (SE): Futtathat egy Java Archive (JAR) csomagként üzembe helyezett alkalmazást, amely beágyazott kiszolgálót (például Spring Boot, Quarkus, Dropwizard vagy beágyazott Tomcat- vagy Jetty-kiszolgálóval rendelkező alkalmazást) tartalmaz.
- Tomcat: A beépített Tomcat-kiszolgáló webalkalmazás-archívumként (WAR) üzembe helyezett alkalmazást futtathat.
- JBoss Enterprise Application Platform (EAP): A beépített JBoss EAP-kiszolgáló futtathat war vagy vállalati archívum (EAR) csomagként üzembe helyezett alkalmazást. Támogatott Linux-alkalmazásokhoz olyan tarifacsomagokban, amelyek tartalmazzák az ingyenes, prémium v3-at és az izolált v2.gti-t
Megjegyzés:
Az App Service-en futó JBoss EAP mostantól támogatja a "Saját licenc" (BYOL) számlázást, így a meglévő Red Hat-előfizetéssel rendelkező ügyfelek közvetlenül alkalmazhatják ezeket a licenceket az Azure App Service JBoss EAP-üzemelő példányaira. További információ.
Az adatforrás konfigurálása
A Spring Boot-alkalmazások adatforrásaihoz való csatlakozáshoz javasoljuk, hogy hozzon létre kapcsolati sztringeket, és injektálja őket az application.properties fájlba.
Az App Service oldal "Konfiguráció" szakaszában adjon nevet a karakterláncnak, illessze be a JDBC-kapcsolati karakterláncot az értékmezőbe, és állítsa a típusát "Egyéni"-re. Ezt a kapcsolati sztring tetszés szerint pontbeállításként is beállíthatja.
Ez a kapcsolati sztring az alkalmazás számára elérhető egy környezeti változó néven
CUSTOMCONNSTR_<your-string-name>. Például:CUSTOMCONNSTR_exampledb.Az application.properties fájlban hivatkozzon erre a kapcsolati sztringre a környezeti változó nevével. Példánkban a következő kódot használnánk:
app.datasource.url=${CUSTOMCONNSTR_exampledb}
További információ: Spring Boot-dokumentáció az adathozzáférésről és akülső konfigurációkról.
Tipp.
A Linux Tomcat-tárolók automatikusan konfigurálhatják a megosztott adatforrásokat a Tomcat-kiszolgálón a környezeti változó WEBSITE_AUTOCONFIGURE_DATABASEtruebeállításával. Az egyetlen teendője egy olyan alkalmazásbeállítás hozzáadása, amely érvényes JDBC kapcsolati sztringet tartalmaz egy Oracle-, SQL Server-, PostgreSQL- vagy MySQL-adatbázishoz (beleértve a kapcsolati hitelesítő adatokat is), és az App Service automatikusan hozzáadja a megfelelő megosztott adatbázist a /usr/local/tomcat/conf/context.xml, a tárolóban elérhető megfelelő illesztőprogram használatával. Az ezzel a megközelítéssel használható, végpontok közötti forgatókönyvért tekintse meg az oktatóanyagot: Tomcat-webalkalmazás létrehozása Linuxon és MySQL-en futó Azure App Service-lel.
Ezek az utasítások az összes adatbázis-kapcsolatra vonatkoznak. A helyőrzőket ki kell töltenie a kiválasztott adatbázis illesztőprogram-osztálynevével és JAR-fájljával. A megadott táblázat osztályneveket és illesztőprogram-letöltéseket tartalmaz a gyakori adatbázisokhoz.
| Adatbázis | Illesztőprogram-osztály neve | JDBC-illesztő |
|---|---|---|
| PostgreSQL | org.postgresql.Driver |
Letöltés |
| MySQL | com.mysql.jdbc.Driver |
Letöltés (Válassza a "Platformfüggetlen" lehetőséget) |
| SQL Server | com.microsoft.sqlserver.jdbc.SQLServerDriver |
Letöltés |
Ahhoz, hogy a Tomcat a Java Database Connectivity (JDBC) vagy a Java Persistence API (JPA) használatára legyen konfigurálva, először szabja testre a CATALINA_OPTS Tomcat által az indításkor beolvasott környezeti változót. Ezeket az értékeket az App Service Maven beépülő modul alkalmazásbeállításával állíthatja be:
<appSettings>
<property>
<name>CATALINA_OPTS</name>
<value>"$CATALINA_OPTS -Ddbuser=${DBUSER} -Ddbpassword=${DBPASSWORD} -DconnURL=${CONNURL}"</value>
</property>
</appSettings>
Vagy állítsa be a környezeti változókat az Azure Portal Konfigurációs>alkalmazás beállításai lapján.
Ezután állapítsa meg, hogy az adatforrásnak elérhetőnek kell-e lennie egy alkalmazásnak vagy a Tomcat servleten futó összes alkalmazásnak.
Alkalmazásszintű adatforrások
Alkalmazásszintű adatforrás konfigurálása:
Hozzon létre egy context.xml fájlt a projekt META-INF/ könyvtárában. Hozza létre a META-INF/ könyvtárat, ha nem létezik.
A context.xmladjon hozzá egy
Contextelemet az adatforrás JNDI-címhez való csatolásához. Cserélje le adriverClassNamehelyőrzőt a vezető osztály nevére a fenti táblázatból.<Context> <Resource name="jdbc/dbconnection" type="javax.sql.DataSource" url="${connURL}" driverClassName="<insert your driver class name>" username="${dbuser}" password="${dbpassword}" /> </Context>Frissítse az alkalmazás web.xml , hogy az adatforrást használja az alkalmazásban.
<resource-env-ref> <resource-env-ref-name>jdbc/dbconnection</resource-env-ref-name> <resource-env-ref-type>javax.sql.DataSource</resource-env-ref-type> </resource-env-ref>
Megosztott kiszolgálószintű erőforrások
Tipp.
A Linux Tomcat-tárolók automatikusan alkalmazhatják az XSLT-fájlokat a /home/site/wwwroot-ra másolt fájlokra érvényes következő konvencióval: Ha jelen vannak a server.xml.xsl vagy server.xml.xslt, azok a Tomcat server.xml-ára lesznek alkalmazva. Ha a context.xml.xsl vagy a context.xml.xslt jelen van, akkor azokat a Tomcat context.xml alkalmazva lesznek.
Megosztott, szerver szintű adatforrás hozzáadásához módosítania kell a Tomcat server.xml konfigurációját. Mivel a /home könyvtáron kívüli fájlmódosítások rövid élettartamúak, a Tomcat konfigurációs fájljainak módosításait programozott módon kell alkalmazni, az alábbiak szerint:
- Töltsön fel egy indítási szkriptet , és állítsa be a szkript elérési útját a Configuration>Startup Commandben. Az indítási szkriptet FTP-vel töltheti fel.
Az indítási szkript XSL-átalakítást végez a server.xml fájlon, és az eredményként kapott XML-fájlt a fájlba /usr/local/tomcat/conf/server.xmladja ki. Az indítási szkriptnek a webalkalmazás libxslt függően telepítenie kell xlstproc vagy . Az XSL-fájl és az indítási szkript FTP-vel tölthető fel. Az alábbiakban egy példa indítási szkript látható.
# Install the libxslt package on Alpine-based images:
apk add --update libxslt
# Install the xsltproc package on Debian or Ubuntu-based images:
apt install xsltproc
# Also copy the transform file to /home/tomcat/conf/
# Usage: xsltproc --output output.xml style.xsl input.xml
xsltproc --output /home/tomcat/conf/server.xml /home/tomcat/conf/transform.xsl /usr/local/tomcat/conf/server.xml
Az alábbi példa XSL-fájl egy új összekötő csomópontot ad hozzá a Tomcat server.xml.
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="@* | node()" name="Copy">
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="@* | node()" mode="insertConnector">
<xsl:call-template name="Copy" />
</xsl:template>
<xsl:template match="comment()[not(../Connector[@scheme = 'https']) and
contains(., '<Connector') and
(contains(., 'scheme="https"') or
contains(., "scheme='https'"))]">
<xsl:value-of select="." disable-output-escaping="yes" />
</xsl:template>
<xsl:template match="Service[not(Connector[@scheme = 'https'] or
comment()[contains(., '<Connector') and
(contains(., 'scheme="https"') or
contains(., "scheme='https'"))]
)]
">
<xsl:copy>
<xsl:apply-templates select="@* | node()" mode="insertConnector" />
</xsl:copy>
</xsl:template>
<!-- Add the new connector after the last existing Connector if there's one -->
<xsl:template match="Connector[last()]" mode="insertConnector">
<xsl:call-template name="Copy" />
<xsl:call-template name="AddConnector" />
</xsl:template>
<!-- ... or before the first Engine if there's no existing Connector -->
<xsl:template match="Engine[1][not(preceding-sibling::Connector)]"
mode="insertConnector">
<xsl:call-template name="AddConnector" />
<xsl:call-template name="Copy" />
</xsl:template>
<xsl:template name="AddConnector">
<!-- Add new line -->
<xsl:text>
</xsl:text>
<!-- This is the new connector -->
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
keystoreFile="${{user.home}}/.keystore" keystorePass="changeit"
clientAuth="false" sslProtocol="TLS" />
</xsl:template>
</xsl:stylesheet>
Konfiguráció véglegesítése
Végül helyezze az illesztőprogram JARs-eit a Tomcat osztályútvonalra, és indítsa újra az App Service-t.
- Győződjön meg arról, hogy a JDBC-illesztőfájlok elérhetők a Tomcat-osztálybetöltő számára, ha a /home/site/lib könyvtárba helyezi őket. A Cloud Shellben futtassa
az webapp deploy --type=libaz egyes illesztőprogramok JAR-jét:
az webapp deploy --resource-group <group-name> --name <app-name> --src-path <jar-name>.jar --type=lib --path <jar-name>.jar
Ha kiszolgálószintű adatforrást hozott létre, indítsa újra az App Service Linux-alkalmazást. Tomcat alaphelyzetbe állítja a CATALINA_BASE-t /home/tomcat-re, és a frissített konfigurációt használja.
Tipp.
Alapértelmezés szerint a Linux JBoss-tárolók automatikusan konfigurálhatják a megosztott adatforrásokat a JBoss-kiszolgálón. Az egyetlen teendője egy olyan alkalmazásbeállítás hozzáadása, amely érvényes JDBC kapcsolati sztringet tartalmaz egy Oracle-, SQL Server-, PostgreSQL- vagy MySQL-adatbázishoz (beleértve a kapcsolati hitelesítő adatokat), és adja hozzá az Alkalmazásbeállítás/ Környezeti változót WEBSITE_AUTOCONFIGURE_DATABASE az értékkel true. A Service Connector használatával létrehozott JDBC-kapcsolatok is támogatottak. Az App Service automatikusan hozzáadja a megfelelő megosztott adatforrást (az alkalmazásbeállítás neve és az utótag _DSalapján), a tárolóban elérhető megfelelő illesztőprogram használatával. Az ezzel a megközelítéssel használható, végpontok közötti forgatókönyvért tekintse meg az oktatóanyagot: JBoss-webalkalmazás létrehozása Linuxon és MySQL-en futó Azure App Service-lel.
Az adatforrás JBoss EAP-val való regisztrálásának három alapvető lépése van:
- Töltse fel a JDBC-illesztőt.
- Adja hozzá a JDBC-illesztőt modulként.
- Adatforrás hozzáadása a modulhoz.
Az App Service állapot nélküli üzemeltetési szolgáltatás, ezért ezeket a lépéseket be kell állítania egy indítási szkriptbe, és futtatnia kell minden alkalommal, amikor a JBoss-tároló elindul. Példák a PostgreSQL, a MySQL és az SQL Database használatára:
Megjegyzés:
Az App Service-en futó JBoss EAP mostantól támogatja a "Saját licenc" (BYOL) számlázást, így a meglévő Red Hat-előfizetéssel rendelkező ügyfelek közvetlenül alkalmazhatják ezeket a licenceket az Azure App Service JBoss EAP-üzemelő példányaira. További információ.
Helyezze a JBoss CLI-parancsokat egy jboss-cli-commands.cli nevű fájlba. A JBoss-parancsoknak hozzá kell adniuk a modult, és regisztrálniuk kell adatforrásként. Az alábbi példa a JBoss CLI-parancsokat mutatja be a PostgreSQL-adatforrás JNDI-névvel
java:jboss/datasources/postgresDSvaló létrehozásához.module add --name=org.postgresql --resources=/home/site/libs/postgresql-42.7.4.jar /subsystem=datasources/jdbc-driver=postgresql:add(driver-name="postgresql",driver-module-name="org.postgresql",driver-class-name="org.postgresql.Driver",driver-xa-datasource-class-name="org.postgresql.xa.PGXADataSource") data-source add --name=postgresql --driver-name="postgresql" --jndi-name="java:jboss/datasources/postgresDS" --connection-url="jdbc:postgresql://\${env.DB_HOST}:5432/postgres" --user-name="\${env.DB_USERNAME}" --password="\${env.DB_PASSWORD}" --enabled=true --use-java-context=trueVegye figyelembe, hogy a
module addparancs három környezeti változót (DB_HOSTésDB_USERNAME) használ,DB_PASSWORDamelyeket alkalmazásbeállításokként kell hozzáadnia az App Service-ben. A szkript jelölő nélkül adja hozzá őket, hogy a--resolve-parameter-valuesJBoss ne mentse az értékeiket egyszerű szövegben.Hozzon létre egy indítási szkriptet startup.sh, amely meghívja a JBoss parancssori felület parancsait. Az alábbi példa bemutatja, hogyan hívhatja meg a sajátját
jboss-cli-commands.cli. Később konfigurálja az App Service-t a szkript futtatására a tároló indításakor.$JBOSS_HOME/bin/jboss-cli.sh --connect --file=/home/site/scripts/jboss_cli_commands.cliA választott telepítési lehetőséggel töltse fel a JDBC-illesztőprogramot, a jboss-cli-commands.cli fájlt, és startup.sh a megfelelő szkriptekben megadott útvonalakra. Különösen a startup.sh feltöltése indítási fájlként. Példa:
export RESOURCE_GROUP_NAME=<resource-group-name> export APP_NAME=<app-name> # The lib type uploads to /home/site/libs by default. az webapp deploy --resource-group $RESOURCE_GROUP_NAME --name $APP_NAME --src-path postgresql-42.7.4.jar --target-path postgresql-42.7.4.jar --type lib az webapp deploy --resource-group $RESOURCE_GROUP_NAME --name $APP_NAME --src-path jboss_cli_commands.cli --target-path /home/site/scripts/jboss_cli_commands.cli --type static # The startup type uploads to /home/site/scripts/startup.sh by default. az webapp deploy --resource-group $RESOURCE_GROUP_NAME --name $APP_NAME --src-path startup.sh --type startupTovábbi információ: Fájlok üzembe helyezése az App Service-ben.
Annak ellenőrzéséhez, hogy az adatforrás hozzá lett-e adva a JBoss-kiszolgálóhoz, az SSH-t a webalkalmazásba, és futtassa $JBOSS_HOME/bin/jboss-cli.sh --connect. Miután csatlakozott a JBoss-hoz, futtassa a /subsystem=datasources:read-resource elemet az adatforrások listájának nyomtatásához.
Ahogy korábban a jboss-cli-commands.cli definiálta, a PostgreSQL-kapcsolatot a JNDI névvel java:jboss/datasources/postgresDSérheti el.
Kapcsolódó tartalom
Látogasson el az Azure for Java Fejlesztői központba az Azure rövid útmutatóihoz, oktatóanyagaihoz és Java-referenciadokumentációihoz.