glassfishglassfish-embeddedglassfish-4

Same but Different domain.xml when running Embedded Glassfish 4.0


Apparently, it is not a good idea to use an existing domain.xml file, generated when creating a new domain using asadmin create-domain new_domain, and later use it when running an embedded instance of Glassfish. DataSources can not be found etcetera.

This is confirmed on this thread: GLASSFISH-20270

However, my question is, is there any way to get a "embedded version" of the domain.xml file for Glassfish 4.0?


Solution

  • Here is the default domain.xml for Embedded Glassfish 4.0. You can change it and put it in your project.

    <domain log-root="${com.sun.aas.instanceRoot}/logs" application-root="${com.sun.aas.instanceRoot}/applications" version="10.0">
    <security-configurations>
        <authorization-service default="true" name="authorizationService">
            <security-provider name="simpleAuthorization" type="Simple" provider-name="simpleAuthorizationProvider">
                <authorization-provider-config support-policy-deploy="false" name="simpleAuthorizationProviderConfig"></authorization-provider-config>
            </security-provider>
        </authorization-service>
    </security-configurations>
    <system-applications />
    <applications />
    <resources>
        <jdbc-resource pool-name="__TimerPool" jndi-name="jdbc/__TimerPool" object-type="system-admin" />
        <jdbc-resource pool-name="DerbyPool" jndi-name="jdbc/__default" object-type="system-all" />
        <jdbc-connection-pool name="__TimerPool" datasource-classname="org.apache.derby.jdbc.EmbeddedXADataSource" res-type="javax.sql.XADataSource">
            <property value="${com.sun.aas.instanceRoot}/lib/databases/ejbtimer" name="databaseName" />
            <property value=";create=true" name="connectionAttributes" />
        </jdbc-connection-pool>
        <jdbc-connection-pool is-isolation-level-guaranteed="false" name="DerbyPool" datasource-classname="org.apache.derby.jdbc.EmbeddedDataSource" res-type="javax.sql.DataSource">
            <property name="databaseName" value="${com.sun.aas.instanceRoot}/lib/databases/embedded_default" />
            <property name="connectionAttributes" value=";create=true" />
        </jdbc-connection-pool>
    </resources>
    <servers>
        <server name="server" config-ref="server-config">
            <resource-ref ref="jdbc/__TimerPool" />
            <resource-ref ref="jdbc/__default" />
        </server>
    </servers>
    <configs>
        <config name="server-config">
            <http-service>
                <access-log rotation-interval-in-minutes="15" rotation-suffix="yyyy-MM-dd" />
                <virtual-server id="server" network-listeners="http-listener, https-listener" />
            </http-service>
            <iiop-service>
                <orb use-thread-pool-ids="thread-pool-1" />
                <iiop-listener address="0.0.0.0" port="3700" id="orb-listener-1" />
                <iiop-listener security-enabled="true" address="0.0.0.0" port="3820" id="SSL">
                    <ssl classname="com.sun.enterprise.security.ssl.GlassfishSSLImpl" cert-nickname="s1as" />
                </iiop-listener>
                <iiop-listener security-enabled="true" address="0.0.0.0" port="3920" id="SSL_MUTUALAUTH">
                    <ssl classname="com.sun.enterprise.security.ssl.GlassfishSSLImpl" cert-nickname="s1as" client-auth-enabled="true" />
                </iiop-listener>
            </iiop-service>
            <admin-service type="das-and-server" system-jmx-connector-name="system">
                <jmx-connector enabled="false" auth-realm-name="admin-realm" security-enabled="false" address="0.0.0.0" port="8686" name="system" />
                <das-config autodeploy-enabled="false" dynamic-reload-enabled="true" deploy-xml-validation="full" autodeploy-dir="${com.sun.aas.instanceRoot}/autodeploy" />
                <property value="/admin" name="adminConsoleContextRoot" />
                <property value="${com.sun.aas.installRoot}/lib/install/applications/admingui.war" name="adminConsoleDownloadLocation" />
                <property value="${com.sun.aas.installRoot}/.." name="ipsRoot" />
            </admin-service>
            <connector-service shutdown-timeout-in-seconds="30">
            </connector-service>
            <ejb-container steady-pool-size="0" max-pool-size="32" session-store="${com.sun.aas.instanceRoot}/session-store" pool-resize-quantity="8">
                <ejb-timer-service />
            </ejb-container>
            <mdb-container steady-pool-size="0" max-pool-size="32" pool-resize-quantity="8" >
            </mdb-container>
            <jms-service type="EMBEDDED" default-jms-host="default_JMS_host">
                <jms-host name="default_JMS_host" host="localhost" port="7676" admin-user-name="admin" admin-password="admin" lazy-init="false"/>
            </jms-service>
            <log-service file="${com.sun.aas.instanceRoot}/logs/server.log" log-rotation-limit-in-bytes="2000000">
                <module-log-levels />
            </log-service>
            <security-service activate-default-principal-to-role-mapping="true" jacc="simple">
                <auth-realm classname="com.sun.enterprise.security.auth.realm.file.FileRealm" name="admin-realm">
                    <property value="${com.sun.aas.instanceRoot}/config/admin-keyfile" name="file" />
                    <property value="fileRealm" name="jaas-context" />
                </auth-realm>
                <auth-realm classname="com.sun.enterprise.security.auth.realm.file.FileRealm" name="file">
                    <property value="${com.sun.aas.instanceRoot}/config/keyfile" name="file" />
                    <property value="fileRealm" name="jaas-context" />
                </auth-realm>
                <auth-realm classname="com.sun.enterprise.security.auth.realm.certificate.CertificateRealm" name="certificate" />
                <jacc-provider policy-configuration-factory-provider="com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl" policy-provider="com.sun.enterprise.security.provider.PolicyWrapper" name="default">
                    <property value="${com.sun.aas.instanceRoot}/generated/policy" name="repository" />
                </jacc-provider>
                <jacc-provider policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory" policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="simple" />
                <audit-module classname="com.sun.enterprise.security.ee.Audit" name="default">
                    <property value="false" name="auditOn" />
                </audit-module>
                <message-security-config auth-layer="SOAP">
                    <provider-config provider-id="XWS_ClientProvider" class-name="com.sun.xml.wss.provider.ClientSecurityAuthModule" provider-type="client">
                        <request-policy auth-source="content" />
                        <response-policy auth-source="content" />
                        <property value="s1as" name="encryption.key.alias" />
                        <property value="s1as" name="signature.key.alias" />
                        <property value="false" name="dynamic.username.password" />
                        <property value="false" name="debug" />
                    </provider-config>
                    <provider-config provider-id="ClientProvider" class-name="com.sun.xml.wss.provider.ClientSecurityAuthModule" provider-type="client">
                        <request-policy auth-source="content" />
                        <response-policy auth-source="content" />
                        <property value="s1as" name="encryption.key.alias" />
                        <property value="s1as" name="signature.key.alias" />
                        <property value="false" name="dynamic.username.password" />
                        <property value="false" name="debug" />
                        <property value="${com.sun.aas.instanceRoot}/config/wss-server-config-1.0.xml" name="security.config" />
                    </provider-config>
                    <provider-config provider-id="XWS_ServerProvider" class-name="com.sun.xml.wss.provider.ServerSecurityAuthModule" provider-type="server">
                        <request-policy auth-source="content" />
                        <response-policy auth-source="content" />
                        <property value="s1as" name="encryption.key.alias" />
                        <property value="s1as" name="signature.key.alias" />
                        <property value="false" name="debug" />
                    </provider-config>
                    <provider-config provider-id="ServerProvider" class-name="com.sun.xml.wss.provider.ServerSecurityAuthModule" provider-type="server">
                        <request-policy auth-source="content" />
                        <response-policy auth-source="content" />
                        <property value="s1as" name="encryption.key.alias" />
                        <property value="s1as" name="signature.key.alias" />
                        <property value="false" name="debug" />
                        <property value="${com.sun.aas.instanceRoot}/config/wss-server-config-1.0.xml" name="security.config" />
                    </provider-config>
                </message-security-config>
                <property value="SHA-256" name="default-digest-algorithm" />
            </security-service>
            <monitoring-service>
                <module-monitoring-levels />
            </monitoring-service>
            <transaction-service tx-log-dir="${com.sun.aas.instanceRoot}/logs" >
            </transaction-service>
            <java-config>
                <jvm-options>-Djavax.net.ssl.keyStore=${com.sun.aas.instanceRoot}/config/keystore.jks</jvm-options>
                <jvm-options>-Djavax.net.ssl.trustStore=${com.sun.aas.instanceRoot}/config/cacerts.jks</jvm-options>
                <jvm-options>-Dorg.glassfish.jms.InitializeOnDemand=true</jvm-options>
            </java-config>
            <network-config>
                <protocols>
                    <protocol name="http-listener">
                        <http default-virtual-server="server" max-connections="250">
                            <file-cache enabled="false"></file-cache>
                        </http>
                    </protocol>
                    <protocol security-enabled="true" name="https-listener">
                        <http default-virtual-server="server" max-connections="250">
                            <file-cache enabled="false"></file-cache>
                        </http>
                        <ssl classname="com.sun.enterprise.security.ssl.GlassfishSSLImpl" ssl3-enabled="false" cert-nickname="s1as"></ssl>
                    </protocol>
                </protocols>
                <network-listeners>
                    <network-listener port="0" protocol="http-listener" transport="tcp" name="http-listener" thread-pool="http-thread-pool" enabled="false" />
                    <network-listener port="0" protocol="https-listener" transport="tcp" name="https-listener" thread-pool="http-thread-pool" enabled="false" />
                </network-listeners>
                <transports>
                    <transport name="tcp"></transport>
                </transports>
            </network-config>
            <thread-pools>
                <thread-pool name="http-thread-pool" max-queue-size="4096"></thread-pool>
                <thread-pool name="thread-pool-1" max-thread-pool-size="200"/>
            </thread-pools>
        </config>
    </configs>
    <property name="administrative.domain.name" value="domain1"/>