Glassfish3: одно и то же ухо, другая база данных - PullRequest
1 голос
/ 12 марта 2012

Я хочу развернуть EAR дважды на одном и том же сервере Glassfish (на разных виртуальных серверах).Но приложение использует соединение с базой данных, которое в приложении задается с помощью <jta-data-source> -Tag.Проблема в том, что оба экземпляра должны использовать разные базы данных.Есть ли способ установить <jta-data-source> -Tag при развертывании?

Различные домены не будут работать, потому что они не могут прослушивать один и тот же порт ...

Еслине будет работать, тогда я должен использовать Apache перед Glassfish для сопоставления правильных портов ...

1 Ответ

2 голосов
/ 15 октября 2012

Вам необходимо использовать ресурсы области приложения.Просто добавьте дескриптор glassfish-resources.xml в META-INF вашего уха.Это должно выглядеть следующим образом:

<!DOCTYPE resources PUBLIC "-//GlassFish.org//DTD GlassFish Application Server 3.1 Resource Definitions//EN" "http://glassfish.org/dtds/glassfish-resources_1_5.dtd">
<resources>
    <jdbc-connection-pool name="java:app/my-app-pool" 
                          res-type="javax.sql.DataSource"
                          datasource-classname="org.apache.derby.jdbc.ClientDataSource"
                          pool-resize-quantity="1" 
                          max-pool-size="5" 
                          steady-pool-size="0"
                          statement-timeout-in-seconds="60" >
        <property name="serverName" value="localhost" />
        <property name="portNumber" value="1527" />
        <property name="dataBaseName" value="sun-appserv-samples" />
        <property name="User" value="APP" />
        <property name="Password" value="APP" />
        <property name="connectionAttributes" value=";create=true" />
        <property name="driverType" value="4" />
    </jdbc-connection-pool>
    <jdbc-resource jndi-name="java:app/jdbc/my-app" pool-name="java:app/my-app-pool"/>
</resources>

После развертывания вашего уха на стеклянной рыбе вы можете найти свое приложение в конфигурации.Там будет вкладка «Ресурсы», где вы можете изменить все параметры.Таким образом, вы можете развернуть любое количество приложений, и все они могут иметь разные параметры.

Существует возможность повторного развертывания приложения "Сохранение ресурсов приложения".Эта опция доступна из интерфейса администратора или из командной строки:

redeploy --name myapp --properties preserveAppScopedResources=true myapp.ear
...