4 Replies Latest reply: Oct 7, 2008 4:33 PM by Scale It RSS

How to virtual host jboss portal?

Scale It Newbie

How do I host the portal and an old web application on the same jboss server?

I have two subdomains pointing to the same ip number. So for "http://oldapp.mydomain.com" I want to open the old application and for "http://newportal.mydomain.com" I want to open the jboss portal.

They have both been deployed to the same jboss server. Its the 2.6.6-GA with the portal bundled.

In the portal application I changed the context so it binds to "/" instead of "/portal" in jboss-web.xml:

<jboss-web>
 <security ...
 <context-root>/</context-root>
 ...
</jboss-web>

I also changed the server.xml connector tag to use port 80 instead of 8080. This worked fine - now "http://newportal.mydomain.com" would open the portal site.

Then I changed the portal application to bind to a virtual host by adding a virtual-host tag to the same file:
<jboss-web>
 <security ...
 <context-root>/</context-root>
 <virtual-host>newportal.mydomain.com</virtual-host>
 ...
</jboss-web>

In the old web application I did the same except I bound it to a another virtual host name (and used root context just like the portal):
 <context-root>/</context-root>
 <virtual-host>oldapp.mydomain.com</virtual-host>

Last thing I did was to define both these virtual hosts in server.xml:
 ...
 <Engine name="jboss.web" defaultHost="oldapp.mydomain.com">
 <Realm ... >
 <host name="oldapp.mydomain.com" autoDeploy="true"
 deployOnStartup="true" deployXML="true">
 <alias>oldapp.mydomain.com</alias>
 <Valve
 className="org.apache.catalina.valves.AccessLogValve"
 prefix="oldapp_access_log." suffix=".log"
 pattern="common" directory="${jboss.server.log.dir}"
 resolveHosts="false" />
 </host>

 <host name="newportal.mydomain.com"
 autoDeploy="true" deployOnStartup="true" deployXML="true"
 configClass=
 "org.jboss.web.tomcat.security.config.JBossContextConfig"
 >
 <alias>newportal.mydomain.com</alias>
 <Valve
 className="org.apache.catalina.valves.AccessLogValve"
 prefix="portal_access_log." suffix=".log"
 pattern="common" directory="${jboss.server.log.dir}"
 resolveHosts="false" />
 <Valve className=
 "org.jboss.web.tomcat.service.jca.CachedConnectionValve"
 cachedConnectionManagerObjectName=
 "jboss.jca:service=CachedConnectionManager"
 transactionManagerObjectName=
 "jboss:service=TransactionManager" />
 </host>

I start the server with args "-b 192.168.1.5". The firewall forwards incoming port 80 to this local ip number of the jboss server.

Now "http://oldapp.mydomain.com" works fine - it opens the old application. But when I try to open the jboss portal "http://newportal.mydomain.com" then I get this exception:

HTTP Status 500 -

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: javax.resource.ResourceException: No ManagedConnections available within configured blocking timeout ( 30000 [ms] )
org.jboss.portal.server.servlet.PortalServlet.service(PortalServlet.java:276)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)

root cause

javax.resource.ResourceException: No ManagedConnections available within configured blocking timeout ( 30000 [ms] )
org.jboss.resource.connectionmanager.InternalManagedConnectionPool.getConnection(InternalManagedConnectionPool.java:303)
org.jboss.resource.connectionmanager.JBossManagedConnectionPool$BasePool.getConnection(JBossManagedConnectionPool.java:613)
org.jboss.resource.connectionmanager.BaseConnectionManager2.getManagedConnection(BaseConnectionManager2.java:347)

org.jboss.resource.connectionmanager.TxConnectionManager.getManagedConnection(TxConnectionManager.java:330)
org.jboss.resource.connectionmanager.BaseConnectionManager2.allocateConnection(BaseConnectionManager2.java:402)
org.jboss.resource.connectionmanager.BaseConnectionManager2$ConnectionManagerProxy.allocateConnection(BaseConnectionManager2.java:849)
org.jboss.resource.adapter.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:89)
org.hibernate.connection.DatasourceConnectionProvider.getConnection(DatasourceConnectionProvider.java:69)
org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:423)
org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:144)
org.hibernate.jdbc.AbstractBatcher.prepareQueryStatement(AbstractBatcher.java:139)
org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1547)
org.hibernate.loader.Loader.doQuery(Loader.java:673)
org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236)
org.hibernate.loader.Loader.loadEntity(Loader.java:1907)
org.hibernate.loader.entity.CollectionElementLoader.loadElement(CollectionElementLoader.java:72)
org.hibernate.persister.collection.OneToManyPersister.getElementByIndex(OneToManyPersister.java:360)
org.hibernate.collection.AbstractPersistentCollection.readElementByIndex(AbstractPersistentCollection.java:158)
org.hibernate.collection.PersistentMap.get(PersistentMap.java:146)





Any1 know what Im missing here to make it work??