admin@glassfish.java.net

Re: web container and multiple configs

From: Jennifer Chou <jennifer.chou_at_oracle.com>
Date: Mon, 19 Apr 2010 21:10:25 +0100

On 4/19/2010 6:07 PM, Amy Roh wrote:
> Jennifer,
>
> Amy Roh wrote:
>> Jan Luehe wrote:
>>> Jennifer Chou wrote:
>>>> This behavior is different then from v2.x?
>>>> In v2.1.1, I could create-virtual-server server2 for 3 different
>>>> targets (server, cluster1, instance1) under one domain. It only
>>>> did not allow me to add a duplicate for the same target.
>>>
>>> Hi Amy, can you please look into this?
>>>
>>> The GF 2.1.1 source to look at is the constructor in
>>> appserv-core/src/java/com/sun/enterprise/web/WebContainer.java.
>>>
>>> Is is possible that we instantiated a new WebContainer (and from it,
>>> EmbeddedWebContainer) instance for each target? Was a target
>>> represented by the "ServerContext" argument passed to the
>>> WebContainer constructor:
>>
>> It appears that a WebContainer is instantiated for each target since
>> it allowed to add the same named virtual-server for different
>> targets. I'll take a look at how we achieved this in v2 to confirm
>> that we allowed multiple WebContainer instances. Similar needs to
>> be done for v3 also.
>
> In v2, when a node agent is started in cluster mode, multiple
> instances of web container are instantiated per each instance (ex.
> server, instance1, instance2). Hence, virtual servers can be created
> as long as the name is unique to each instance. Do we currently
> support asadmin create-node-agent or its replacement? Once a web
> container is instantiated correctly via the call per instance, virtual
> server with unique name per instance should work the same as in v2.
Thanks for looking into it. For 3.1, glassfish won't use node agents
and in future releases it will become optional. In 3.1, the server
instances will be started manually (or via platform services) More info
here:
http://wiki.glassfish.java.net/Wiki.jsp?page=V3.1Clustering#section-V3.1Clustering-ColdStartOfAServerInstanceWithoutNodeAgent
But looks like the create-node-agent may still be used to create the
filesystem for the instance, but probably won't have a start-node-agent
since there will be no node agent to start.

So maybe in this case with no node agent, the equivalent way is to
instantiate web container with start-instance (and new command
start-local-instance)?

Thanks,
Jennifer
>
>
> Thanks,
> Amy
>>
>> Amy
>>
>>>
>>> protected WebContainer(String id, ServerContext context) {
>>> _id = id;
>>> _serverContext = context;
>>> _configContext = _serverContext.getConfigContext();
>>>
>>>
>>> Thanks!
>>>
>>>
>>> Jan
>>>
>>>>
>>>> C:\glassfishv2.1.1\glassfish\bin>asadmin create-virtual-server
>>>> --user admin --passwordfile "c:\Documents and Settings\Jennifer\My
>>>> Documents\asadminpassword.txt"
>>>> --port 6868 --hosts localhost server2
>>>> Command create-virtual-server executed successfully.
>>>>
>>>> C:\glassfishv2.1.1\glassfish\bin>asadmin create-virtual-server
>>>> --user admin --passwordfile "c:\Documents and Settings\Jennifer\My
>>>> Documents\asadminpassword.txt"
>>>> --port 6868 --hosts localhost server2
>>>> VirtualServer already exists: cannot add duplicate
>>>> CLI137 Command create-virtual-server failed.
>>>>
>>>> C:\glassfishv2.1.1\glassfish\bin>asadmin create-virtual-server
>>>> --user admin --passwordfile "c:\Documents and Settings\Jennifer\My
>>>> Documents\asadminpassword.txt"
>>>> --port 6868 --hosts localhost --target cluster1 server2
>>>> Command create-virtual-server executed successfully.
>>>>
>>>> C:\glassfishv2.1.1\glassfish\bin>asadmin create-virtual-server
>>>> --user admin --passwordfile "c:\Documents and Settings\Jennifer\My
>>>> Documents\asadminpassword.txt"
>>>> --port 6868 --hosts localhost --target instance1 server2
>>>> Command create-virtual-server executed successfully.
>>>>
>>>> On 4/16/2010 2:58 AM, Jan Luehe wrote:
>>>>> Hi Jennifer,
>>>>>
>>>>> Jennifer Chou wrote:
>>>>>> any thoughts? If the default-config is added to domain.xml and
>>>>>> so both server-config and default-config are in the habitat, what
>>>>>> should the web container do with default-config? I mean it
>>>>>> probably should not create the http-listener and virtual server
>>>>>> etc for default-config, right?
>>>>>
>>>>> Yeah, I would think so.
>>>>>
>>>>> com.sun.enterprise.web.WebContainer#postConstruct (in
>>>>> web/web-glue) currently enumerates over all configs and creates
>>>>> listeners and virtual servers for each, as follows:
>>>>>
>>>>> List<Config> configs = domain.getConfigs().getConfig();
>>>>> for (Config aConfig : configs) {
>>>>> HttpService httpService = aConfig.getHttpService();
>>>>> NetworkConfig networkConfig = aConfig.getNetworkConfig();
>>>>> [...]
>>>>> // Configure virtual servers
>>>>> createHosts(httpService, securityService);
>>>>> }
>>>>>
>>>>> Since we create only a single WebContainer, the above will work
>>>>> only if the network-listeners and virtual-servers have names that
>>>>> are unique across all configs.
>>>>>
>>>>> Jan
>>>>>
>>>>>>
>>>>>> On 4/14/2010 8:50 PM, Jennifer Chou wrote:
>>>>>>> If I don't use the ${} tokens for http listener, I get the
>>>>>>> following error when adding default-config to domain.xml (See
>>>>>>> below for the error using tokens)
>>>>>>> Even if virtual server id is unique across domain, it shouldn't
>>>>>>> apply to default-config? because it's just a template?
>>>>>>>
>>>>>>> [#|2010-04-14T16:41:12.234+0100|SEVERE|glassfishv3.0|javax.enterprise.system.container.web.com.sun.enterprise.v3.services.impl|_ThreadID=15;_ThreadName=Configuration
>>>>>>> Updater;|Unable to start container
>>>>>>> com.sun.enterprise.web.WebContainer
>>>>>>> java.lang.IllegalArgumentException: addChild: Child name
>>>>>>> 'server' is not unique
>>>>>>>
>>>>>>> at
>>>>>>> org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:907)
>>>>>>>
>>>>>>> at
>>>>>>> org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:897)
>>>>>>>
>>>>>>> at
>>>>>>> org.apache.catalina.core.StandardEngine.addChild(StandardEngine.java:351)
>>>>>>>
>>>>>>> at
>>>>>>> com.sun.enterprise.web.WebContainer.createHost(WebContainer.java:1168)
>>>>>>>
>>>>>>> at
>>>>>>> com.sun.enterprise.web.WebContainer.createHosts(WebContainer.java:1104)
>>>>>>>
>>>>>>> at
>>>>>>> com.sun.enterprise.web.WebContainer.postConstruct(WebContainer.java:541)
>>>>>>>
>>>>>>> at
>>>>>>> com.sun.hk2.component.AbstractWombImpl.inject(AbstractWombImpl.java:174)
>>>>>>>
>>>>>>> at
>>>>>>> com.sun.hk2.component.ConstructorWomb$1.run(ConstructorWomb.java:87)
>>>>>>>
>>>>>>> at java.security.AccessController.doPrivileged(Native
>>>>>>> Method)
>>>>>>> at
>>>>>>> com.sun.hk2.component.ConstructorWomb.initialize(ConstructorWomb.java:84)
>>>>>>>
>>>>>>> at
>>>>>>> com.sun.hk2.component.AbstractWombImpl.get(AbstractWombImpl.java:77)
>>>>>>>
>>>>>>> at
>>>>>>> com.sun.hk2.component.SingletonInhabitant.get(SingletonInhabitant.java:58)
>>>>>>>
>>>>>>> at
>>>>>>> com.sun.hk2.component.LazyInhabitant.get(LazyInhabitant.java:107)
>>>>>>> at
>>>>>>> com.sun.hk2.component.AbstractInhabitantImpl.get(AbstractInhabitantImpl.java:60)
>>>>>>>
>>>>>>> at
>>>>>>> org.glassfish.internal.data.EngineInfo.getContainer(EngineInfo.java:91)
>>>>>>>
>>>>>>> at
>>>>>>> com.sun.enterprise.v3.services.impl.WebContainerStarter.startWebContainer(WebContainerStarter.java:198)
>>>>>>>
>>>>>>> at
>>>>>>> com.sun.enterprise.v3.services.impl.WebContainerStarter.postConstruct(WebContainerStarter.java:132)
>>>>>>>
>>>>>>> at
>>>>>>> com.sun.hk2.component.AbstractWombImpl.inject(AbstractWombImpl.java:174)
>>>>>>>
>>>>>>> at
>>>>>>> com.sun.hk2.component.ConstructorWomb$1.run(ConstructorWomb.java:87)
>>>>>>>
>>>>>>> at java.security.AccessController.doPrivileged(Native
>>>>>>> Method)
>>>>>>> at
>>>>>>> com.sun.hk2.component.ConstructorWomb.initialize(ConstructorWomb.java:84)
>>>>>>>
>>>>>>> at
>>>>>>> com.sun.hk2.component.AbstractWombImpl.get(AbstractWombImpl.java:77)
>>>>>>>
>>>>>>> at
>>>>>>> com.sun.hk2.component.SingletonInhabitant.get(SingletonInhabitant.java:58)
>>>>>>>
>>>>>>> at
>>>>>>> com.sun.hk2.component.LazyInhabitant.get(LazyInhabitant.java:107)
>>>>>>> at
>>>>>>> com.sun.hk2.component.AbstractInhabitantImpl.get(AbstractInhabitantImpl.java:60)
>>>>>>>
>>>>>>> at
>>>>>>> com.sun.enterprise.v3.server.AppServerStartup.run(AppServerStartup.java:236)
>>>>>>>
>>>>>>> at
>>>>>>> com.sun.enterprise.v3.server.AppServerStartup.start(AppServerStartup.java:128)
>>>>>>>
>>>>>>> at
>>>>>>> com.sun.enterprise.module.bootstrap.Main.launch(Main.java:456)
>>>>>>> at
>>>>>>> com.sun.enterprise.module.bootstrap.Main.launch(Main.java:400)
>>>>>>> at
>>>>>>> org.jvnet.hk2.osgiadapter.HK2Main$StartupContextService.updated(HK2Main.java:102)
>>>>>>>
>>>>>>> at
>>>>>>> org.apache.felix.cm.impl.ConfigurationManager$UpdateConfiguration.run(ConfigurationManager.java:1389)
>>>>>>>
>>>>>>> at
>>>>>>> org.apache.felix.cm.impl.UpdateThread.run(UpdateThread.java:88)
>>>>>>> |#]
>>>>>>>
>>>>>>>
>>>>>>> Here's the parse error if I use the tokens for http listener:
>>>>>>>
>>>>>>> [#|2010-04-14T17:37:03.500+0100|SEVERE|glassfishv3.0|javax.enterprise.system.container.web.com.sun.enterprise.v3.services.impl|_ThreadID=15;_ThreadName=Configuration
>>>>>>> Updater;|Unable to start container
>>>>>>> com.sun.enterprise.web.WebContainer
>>>>>>> java.lang.IllegalArgumentException: WEB0313: Unable to parse
>>>>>>> port number ${HTTP_SSL_LISTENER_PORT} of network-listener
>>>>>>> http-listener-2
>>>>>>> at
>>>>>>> com.sun.enterprise.web.WebContainer.createHttpListener(WebContainer.java:769)
>>>>>>>
>>>>>>> at
>>>>>>> com.sun.enterprise.web.WebContainer.createHttpListener(WebContainer.java:746)
>>>>>>>
>>>>>>> at
>>>>>>> com.sun.enterprise.web.WebContainer.postConstruct(WebContainer.java:532)
>>>>>>>
>>>>>>> at
>>>>>>> com.sun.hk2.component.AbstractWombImpl.inject(AbstractWombImpl.java:174)
>>>>>>>
>>>>>>> at
>>>>>>> com.sun.hk2.component.ConstructorWomb$1.run(ConstructorWomb.java:87)
>>>>>>>
>>>>>>> at java.security.AccessController.doPrivileged(Native
>>>>>>> Method)
>>>>>>> at
>>>>>>> com.sun.hk2.component.ConstructorWomb.initialize(ConstructorWomb.java:84)
>>>>>>>
>>>>>>> at
>>>>>>> com.sun.hk2.component.AbstractWombImpl.get(AbstractWombImpl.java:77)
>>>>>>>
>>>>>>> at
>>>>>>> com.sun.hk2.component.SingletonInhabitant.get(SingletonInhabitant.java:58)
>>>>>>>
>>>>>>> at
>>>>>>> com.sun.hk2.component.LazyInhabitant.get(LazyInhabitant.java:107)
>>>>>>> at
>>>>>>> com.sun.hk2.component.AbstractInhabitantImpl.get(AbstractInhabitantImpl.java:60)
>>>>>>>
>>>>>>> at
>>>>>>> org.glassfish.internal.data.EngineInfo.getContainer(EngineInfo.java:91)
>>>>>>>
>>>>>>> at
>>>>>>> com.sun.enterprise.v3.services.impl.WebContainerStarter.startWebContainer(WebContainerStarter.java:198)
>>>>>>>
>>>>>>> at
>>>>>>> com.sun.enterprise.v3.services.impl.WebContainerStarter.postConstruct(WebContainerStarter.java:132)
>>>>>>>
>>>>>>> at
>>>>>>> com.sun.hk2.component.AbstractWombImpl.inject(AbstractWombImpl.java:174)
>>>>>>>
>>>>>>> at
>>>>>>> com.sun.hk2.component.ConstructorWomb$1.run(ConstructorWomb.java:87)
>>>>>>>
>>>>>>> at java.security.AccessController.doPrivileged(Native
>>>>>>> Method)
>>>>>>> at
>>>>>>> com.sun.hk2.component.ConstructorWomb.initialize(ConstructorWomb.java:84)
>>>>>>>
>>>>>>> at
>>>>>>> com.sun.hk2.component.AbstractWombImpl.get(AbstractWombImpl.java:77)
>>>>>>>
>>>>>>> at
>>>>>>> com.sun.hk2.component.SingletonInhabitant.get(SingletonInhabitant.java:58)
>>>>>>>
>>>>>>> at
>>>>>>> com.sun.hk2.component.LazyInhabitant.get(LazyInhabitant.java:107)
>>>>>>> at
>>>>>>> com.sun.hk2.component.AbstractInhabitantImpl.get(AbstractInhabitantImpl.java:60)
>>>>>>>
>>>>>>> at
>>>>>>> com.sun.enterprise.v3.server.AppServerStartup.run(AppServerStartup.java:236)
>>>>>>>
>>>>>>> at
>>>>>>> com.sun.enterprise.v3.server.AppServerStartup.start(AppServerStartup.java:128)
>>>>>>>
>>>>>>> at
>>>>>>> com.sun.enterprise.module.bootstrap.Main.launch(Main.java:456)
>>>>>>> at
>>>>>>> com.sun.enterprise.module.bootstrap.Main.launch(Main.java:400)
>>>>>>> at
>>>>>>> org.jvnet.hk2.osgiadapter.HK2Main$StartupContextService.updated(HK2Main.java:102)
>>>>>>>
>>>>>>> at
>>>>>>> org.apache.felix.cm.impl.ConfigurationManager$UpdateConfiguration.run(ConfigurationManager.java:1389)
>>>>>>>
>>>>>>> at
>>>>>>> org.apache.felix.cm.impl.UpdateThread.run(UpdateThread.java:88)
>>>>>>> |#]
>>>>>>>
>>>>>>> On 4/14/2010 8:33 PM, Shing Wai Chan wrote:
>>>>>>>> cc. Jan
>>>>>>>> I think we want uniqueness across the domain.
>>>>>>>> What errors do you get?
>>>>>>>> Shing Wai Chan
>>>>>>>>
>>>>>>>> On 4/14/10 11:13 AM, Oleksiy Stashok wrote:
>>>>>>>>> Hi Jennifer,
>>>>>>>>>
>>>>>>>>> I don't have any info about clustering and web config in GFv3.
>>>>>>>>> cc'ing Shing Wai, think he has better understanding about that.
>>>>>>>>>
>>>>>>>>> WBR.
>>>>>>>>> Alexey.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Apr 14, 2010, at 19:17 , Jennifer Chou wrote:
>>>>>>>>>
>>>>>>>>>> Hi Alexey,
>>>>>>>>>>
>>>>>>>>>> Is the virtual server ID a unique ID under the domain, or
>>>>>>>>>> within a cluster?
>>>>>>>>>> I was trying to add default-config to domain.xml, but got
>>>>>>>>>> some web container errors. I guess the web container is not
>>>>>>>>>> ready for multiple configs?
>>>>>>>>>> When the default config had a virtual server id = "server"
>>>>>>>>>> there was a web container error saying it's not unique. But
>>>>>>>>>> web container probably should not create these for
>>>>>>>>>> default-config?
>>>>>>>>>> Attached is the default-config. If you add it to domain.xml
>>>>>>>>>> under configs, you will see the error when starting domain.
>>>>>>>>>> (Also, saw some parse errors for http listener when using the
>>>>>>>>>> tokens too. You can see those errors too if you switch to
>>>>>>>>>> using tokens.)
>>>>>>>>>>
>>>>>>>>>> Jennifer
>>>>>>>>>> <config name="default-config">
>>>>>>>>>> <http-service>
>>>>>>>>>> <access-log />
>>>>>>>>>> <virtual-server id="server"
>>>>>>>>>> network-listeners="http-listener-1, http-listener-2">
>>>>>>>>>> <property name="default-web-xml"
>>>>>>>>>> value="${com.sun.aas.instanceRoot}/config/default-web.xml" />
>>>>>>>>>> </virtual-server>
>>>>>>>>>> </http-service>
>>>>>>>>>> <iiop-service>
>>>>>>>>>> <orb use-thread-pool-ids="thread-pool-1" />
>>>>>>>>>> <iiop-listener port="${IIOP_LISTENER_PORT}"
>>>>>>>>>> id="orb-listener-1" address="0.0.0.0" />
>>>>>>>>>> <iiop-listener port="${IIOP_SSL_LISTENER_PORT}" id="SSL"
>>>>>>>>>> address="0.0.0.0" security-enabled="true">
>>>>>>>>>> <ssl cert-nickname="s1as" />
>>>>>>>>>> </iiop-listener>
>>>>>>>>>> <iiop-listener port="33920" id="${IIOP_SSL_MUTUALAUTH_PORT}"
>>>>>>>>>> address="0.0.0.0" security-enabled="true">
>>>>>>>>>> <ssl cert-nickname="s1as" client-auth-enabled="true" />
>>>>>>>>>> </iiop-listener>
>>>>>>>>>> </iiop-service>
>>>>>>>>>> <admin-service system-jmx-connector-name="system">
>>>>>>>>>> <jmx-connector port="${JMX_SYSTEM_CONNECTOR_PORT}"
>>>>>>>>>> address="0.0.0.0" name="system" auth-realm-name="admin-realm" />
>>>>>>>>>> <das-config dynamic-reload-enabled="true"
>>>>>>>>>> autodeploy-dir="${com.sun.aas.instanceRoot}/autodeploy"
>>>>>>>>>> autodeploy-enabled="true" />
>>>>>>>>>> </admin-service>
>>>>>>>>>> <web-container>
>>>>>>>>>> <session-config>
>>>>>>>>>> <session-manager>
>>>>>>>>>> <manager-properties />
>>>>>>>>>> <store-properties />
>>>>>>>>>> </session-manager>
>>>>>>>>>> <session-properties />
>>>>>>>>>> </session-config>
>>>>>>>>>> </web-container>
>>>>>>>>>> <ejb-container
>>>>>>>>>> session-store="${com.sun.aas.instanceRoot}/session-store">
>>>>>>>>>> <ejb-timer-service />
>>>>>>>>>> </ejb-container>
>>>>>>>>>> <mdb-container />
>>>>>>>>>> <jms-service addresslist-behavior="priority"
>>>>>>>>>> default-jms-host="default_JMS_host" type="LOCAL">
>>>>>>>>>> <jms-host port="${JMS_PROVIDER_PORT}" host="%%%HOST_NAME%%%"
>>>>>>>>>> name="default_JMS_host"
>>>>>>>>>> admin-password="%%%JMS_PROVIDER_PASSWORD%%%"
>>>>>>>>>> admin-user-name="%%%JMS_PROVIDER_USERID%%%" />
>>>>>>>>>> </jms-service>
>>>>>>>>>> <log-service log-rotation-limit-in-bytes="2000000"
>>>>>>>>>> file="${com.sun.aas.instanceRoot}/logs/server.log">
>>>>>>>>>> <module-log-levels />
>>>>>>>>>> </log-service>
>>>>>>>>>> <security-service>
>>>>>>>>>> <auth-realm
>>>>>>>>>> classname="com.sun.enterprise.security.auth.realm.file.FileRealm"
>>>>>>>>>> name="admin-realm">
>>>>>>>>>> <property name="file"
>>>>>>>>>> value="${com.sun.aas.instanceRoot}/config/admin-keyfile" />
>>>>>>>>>> <property name="jaas-context" value="fileRealm" />
>>>>>>>>>> </auth-realm>
>>>>>>>>>> <auth-realm
>>>>>>>>>> classname="com.sun.enterprise.security.auth.realm.file.FileRealm"
>>>>>>>>>> name="file">
>>>>>>>>>> <property name="file"
>>>>>>>>>> value="${com.sun.aas.instanceRoot}/config/keyfile" />
>>>>>>>>>> <property name="jaas-context" value="fileRealm" />
>>>>>>>>>> </auth-realm>
>>>>>>>>>> <auth-realm
>>>>>>>>>> classname="com.sun.enterprise.security.auth.realm.certificate.CertificateRealm"
>>>>>>>>>> name="certificate" />
>>>>>>>>>> <jacc-provider
>>>>>>>>>> policy-provider="com.sun.enterprise.security.provider.PolicyWrapper"
>>>>>>>>>> name="default"
>>>>>>>>>> policy-configuration-factory-provider="com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl">
>>>>>>>>>>
>>>>>>>>>> <property name="repository"
>>>>>>>>>> value="${com.sun.aas.instanceRoot}/generated/policy" />
>>>>>>>>>> </jacc-provider>
>>>>>>>>>> <jacc-provider
>>>>>>>>>> policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider"
>>>>>>>>>> name="simple"
>>>>>>>>>> policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory"
>>>>>>>>>> />
>>>>>>>>>> <audit-module classname="com.sun.enterprise.security.Audit"
>>>>>>>>>> name="default">
>>>>>>>>>> <property name="auditOn" value="false" />
>>>>>>>>>> </audit-module>
>>>>>>>>>> <message-security-config auth-layer="SOAP">
>>>>>>>>>> <provider-config provider-type="client"
>>>>>>>>>> provider-id="XWS_ClientProvider"
>>>>>>>>>> class-name="com.sun.xml.wss.provider.ClientSecurityAuthModule">
>>>>>>>>>> <request-policy auth-source="content" />
>>>>>>>>>> <response-policy auth-source="content" />
>>>>>>>>>> <property name="encryption.key.alias" value="s1as" />
>>>>>>>>>> <property name="signature.key.alias" value="s1as" />
>>>>>>>>>> <property name="dynamic.username.password" value="false" />
>>>>>>>>>> <property name="debug" value="false" />
>>>>>>>>>> </provider-config>
>>>>>>>>>> <provider-config provider-type="client"
>>>>>>>>>> provider-id="ClientProvider"
>>>>>>>>>> class-name="com.sun.xml.wss.provider.ClientSecurityAuthModule">
>>>>>>>>>> <request-policy auth-source="content" />
>>>>>>>>>> <response-policy auth-source="content" />
>>>>>>>>>> <property name="encryption.key.alias" value="s1as" />
>>>>>>>>>> <property name="signature.key.alias" value="s1as" />
>>>>>>>>>> <property name="dynamic.username.password" value="false" />
>>>>>>>>>> <property name="debug" value="false" />
>>>>>>>>>> <property name="security.config"
>>>>>>>>>> value="${com.sun.aas.instanceRoot}/config/wss-server-config-1.0.xml"
>>>>>>>>>> />
>>>>>>>>>> </provider-config>
>>>>>>>>>> <provider-config provider-type="server"
>>>>>>>>>> provider-id="XWS_ServerProvider"
>>>>>>>>>> class-name="com.sun.xml.wss.provider.ServerSecurityAuthModule">
>>>>>>>>>> <request-policy auth-source="content" />
>>>>>>>>>> <response-policy auth-source="content" />
>>>>>>>>>> <property name="encryption.key.alias" value="s1as" />
>>>>>>>>>> <property name="signature.key.alias" value="s1as" />
>>>>>>>>>> <property name="debug" value="false" />
>>>>>>>>>> </provider-config>
>>>>>>>>>> <provider-config provider-type="server"
>>>>>>>>>> provider-id="ServerProvider"
>>>>>>>>>> class-name="com.sun.xml.wss.provider.ServerSecurityAuthModule">
>>>>>>>>>> <request-policy auth-source="content" />
>>>>>>>>>> <response-policy auth-source="content" />
>>>>>>>>>> <property name="encryption.key.alias" value="s1as" />
>>>>>>>>>> <property name="signature.key.alias" value="s1as" />
>>>>>>>>>> <property name="debug" value="false" />
>>>>>>>>>> <property name="security.config"
>>>>>>>>>> value="${com.sun.aas.instanceRoot}/config/wss-server-config-1.0.xml"
>>>>>>>>>> />
>>>>>>>>>> </provider-config>
>>>>>>>>>> </message-security-config>
>>>>>>>>>> </security-service>
>>>>>>>>>> <transaction-service
>>>>>>>>>> tx-log-dir="${com.sun.aas.instanceRoot}/logs"
>>>>>>>>>> automatic-recovery="true" />
>>>>>>>>>> <monitoring-service>
>>>>>>>>>> <module-monitoring-levels transaction-service="HIGH"
>>>>>>>>>> web-services-container="HIGH" ejb-container="HIGH"
>>>>>>>>>> jersey="HIGH" jpa="HIGH" jvm="HIGH" thread-pool="HIGH"
>>>>>>>>>> security="HIGH" web-container="HIGH"
>>>>>>>>>> jdbc-connection-pool="HIGH" orb="HIGH" http-service="HIGH"
>>>>>>>>>> connector-connection-pool="HIGH" jms-service="HIGH"
>>>>>>>>>> connector-service="HIGH" />
>>>>>>>>>> </monitoring-service>
>>>>>>>>>> <diagnostic-service />
>>>>>>>>>> <java-config debug-options="-Xdebug
>>>>>>>>>> -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=9009"
>>>>>>>>>> system-classpath="" classpath-suffix="">
>>>>>>>>>> <jvm-options>-XX:MaxPermSize=192m</jvm-options>
>>>>>>>>>> <jvm-options>-server</jvm-options>
>>>>>>>>>> <jvm-options>-XX:+UnlockDiagnosticVMOptions</jvm-options>
>>>>>>>>>> <jvm-options>-XX:+LogVMOutput</jvm-options>
>>>>>>>>>> <jvm-options>-XX:LogFile=${com.sun.aas.instanceRoot}/logs/jvm.log</jvm-options>
>>>>>>>>>>
>>>>>>>>>> <jvm-options>-Djava.endorsed.dirs=${com.sun.aas.installRoot}/modules/endorsed${path.separator}${com.sun.aas.installRoot}/lib/endorsed</jvm-options>
>>>>>>>>>>
>>>>>>>>>> <jvm-options>-Djava.security.policy=${com.sun.aas.instanceRoot}/config/server.policy</jvm-options>
>>>>>>>>>>
>>>>>>>>>> <jvm-options>-Djava.security.auth.login.config=${com.sun.aas.instanceRoot}/config/login.conf</jvm-options>
>>>>>>>>>>
>>>>>>>>>> <jvm-options>-Dcom.sun.enterprise.security.httpsOutboundKeyAlias=s1as</jvm-options>
>>>>>>>>>>
>>>>>>>>>> <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>-Djava.ext.dirs=${com.sun.aas.javaRoot}/lib/ext${path.separator}${com.sun.aas.javaRoot}/jre/lib/ext${path.separator}${com.sun.aas.instanceRoot}/lib/ext</jvm-options>
>>>>>>>>>>
>>>>>>>>>> <jvm-options>-Djdbc.drivers=org.apache.derby.jdbc.ClientDriver</jvm-options>
>>>>>>>>>>
>>>>>>>>>> <jvm-options>-DANTLR_USE_DIRECT_CLASS_LOADING=true</jvm-options>
>>>>>>>>>> <jvm-options>-Dcom.sun.enterprise.config.config_environment_factory_class=com.sun.enterprise.config.serverbeans.AppserverConfigEnvironmentFactory</jvm-options>
>>>>>>>>>>
>>>>>>>>>> <jvm-options>-XX:NewRatio=2</jvm-options>
>>>>>>>>>> <jvm-options>-Xmx512m</jvm-options>
>>>>>>>>>> </java-config>
>>>>>>>>>> <availability-service>
>>>>>>>>>> <web-container-availability persistence-scope="session"
>>>>>>>>>> availability-enabled="true"
>>>>>>>>>> http-session-store-pool-name="jdbc/hastore"
>>>>>>>>>> persistence-frequency="web-method" persistence-type="ha" />
>>>>>>>>>> <ejb-container-availability availability-enabled="true"
>>>>>>>>>> sfsb-store-pool-name="jdbc/hastore" />
>>>>>>>>>> <jms-availability availability-enabled="false" />
>>>>>>>>>> </availability-service>
>>>>>>>>>> <network-config>
>>>>>>>>>> <protocols>
>>>>>>>>>> <protocol name="http-listener-1">
>>>>>>>>>> <http default-virtual-server="server" server-name="">
>>>>>>>>>> <file-cache />
>>>>>>>>>> </http>
>>>>>>>>>> </protocol>
>>>>>>>>>> <protocol security-enabled="true" name="http-listener-2">
>>>>>>>>>> <http default-virtual-server="server" server-name="">
>>>>>>>>>> <file-cache />
>>>>>>>>>> </http>
>>>>>>>>>> <ssl ssl3-enabled="false" cert-nickname="s1as" />
>>>>>>>>>> </protocol>
>>>>>>>>>> </protocols>
>>>>>>>>>> <network-listeners>
>>>>>>>>>> <network-listener port="38080" protocol="http-listener-1"
>>>>>>>>>> transport="tcp" name="http-listener-1"
>>>>>>>>>> thread-pool="http-thread-pool" />
>>>>>>>>>> <network-listener port="38181" protocol="http-listener-2"
>>>>>>>>>> transport="tcp" name="http-listener-2"
>>>>>>>>>> thread-pool="http-thread-pool" />
>>>>>>>>>> </network-listeners>
>>>>>>>>>> <transports>
>>>>>>>>>> <transport name="tcp" />
>>>>>>>>>> </transports>
>>>>>>>>>> </network-config>
>>>>>>>>>> <thread-pools>
>>>>>>>>>> <thread-pool name="http-thread-pool" />
>>>>>>>>>> <thread-pool name="thread-pool-1" max-thread-pool-size="200" />
>>>>>>>>>> </thread-pools>
>>>>>>>>>> <group-management-service
>>>>>>>>>> ping-protocol-timeout-in-millis="5000" />
>>>>>>>>>> <management-rules />
>>>>>>>>>> <system-property name="HTTP_LISTENER_PORT" value="38080" />
>>>>>>>>>> <system-property name="HTTP_SSL_LISTENER_PORT" value="38181" />
>>>>>>>>>> <system-property name="JMS_PROVIDER_PORT" value="37676" />
>>>>>>>>>> <system-property name="IIOP_LISTENER_PORT" value="33700" />
>>>>>>>>>> <system-property name="IIOP_SSL_LISTENER_PORT" value="33820" />
>>>>>>>>>> <system-property name="IIOP_SSL_MUTUALAUTH_PORT"
>>>>>>>>>> value="33920" />
>>>>>>>>>> <system-property name="JMX_SYSTEM_CONNECTOR_PORT"
>>>>>>>>>> value="38686" />
>>>>>>>>>> </config>
>>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>
>>>
>>
>>
>