My apologies -- I accidentally clicked 'send'. :/

On Tue, Nov 4, 2014 at 10:12 AM, Bridger Dyson-Smith <bdysonsmith@gmail.com> wrote:
Hi all,

I know that there aren't many Tomcat users on this list, and that I'm echoing previous emails to the list but I wanted to see if anyone here had encountered this issue. Some pieces of this may be steps forward to solving problems that others on the list have mentioned; I've cc'd you in the hopes that the information is helpful.

Tomcat can be configured to multiple services, on varying ports, in the $TOMCAT_HOME/conf/server.xml file; e.g. [1]. I have two nearly-identical WARs in the following directory structure:
 
`--> tree -L 1 apache-tomcat-7.0.53
apache-tomcat-7.0.53
├── LICENSE
├── NOTICE
├── RELEASE-NOTES
├── RUNNING.txt
├── bin
├── conf
├── lib
├── logs
├── logs2
├── temp
├── webapps
├── webapps2
└── work

`--> tree -L 1 webapps
webapps
├── BaseX79
├── BaseX79.war
├── ROOT
├── docs
├── examples
├── fop
├── fop.war
├── host-manager
├── imagemanip
├── imagemanip.war
├── lukeall-1.0.1.jar
├── manager
├── retailer
├── retailer.war
├── saxon
├── saxon.war
├── spc
├── spc.war
├── static
├── utk-xtf
├── utk-xtf-frameless
├── utk-xtf-frameless.war
└── utk-xtf.war

`--> tree -L 1 webapps2
webapps2
├── ROOT
├── bX79
├── bX79.war
├── docs
├── examples
├── host-manager
└── manager

Now, the problem is that I get a port conflict message from Tomcat [2] and only the first WAR ($TOMCAT_HOME/webapps/BaseX79) loads. E.g. there are some minor textual changes between the two restxq.xqm files.

I've tried to add a .basex file (webapps2/bX79/.basex) that specifies a different port, and I've also tried adding that information in webapps2/bX79/WEB-INF/web.xml as <context-params> [3]. 

I'm planning to email the Tomcat-users list to see if someone there can shed more light on this; i.e. is this a problem with the way that server.xml is configured, etc. However I was also curious if anyone here had any thoughts or suggestions on this setup. Am I missing a step; e.g. should I be incorporating a compilation step - generating a WAR file - or something else?

I apologize for the breadth of the questions - I've jumped into the middle of a problem and now I'm trying to work my back out to the start. Thank you for your time & trouble.

Best,
Bridger

 
[1] example server.xml:
   <Server port="8005" shutdown="SHUTDOWN">
   <Listener className="org.apache.catalina.core.AprLifecycleListener"
             SSLEngine="on"/>
   <Listener className="org.apache.catalina.core.JasperListener"/>
   <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener"/>
   <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"/>
   <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener"/>
   <GlobalNamingResources>
      <Resource name="UserDatabase"
                auth="Container"
                type="org.apache.catalina.UserDatabase"
                description="User database that can be updated and saved"
                factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
                pathname="conf/tomcat-users.xml"/>
   </GlobalNamingResources>
   <Service name="Catalina">
      <Connector port="8080"
                 protocol="HTTP/1.1"
                 connectionTimeout="20000"
                 redirectPort="8443"
                 maxThreads="125" minSpareThreads="25" maxSpareThreads="75"
                 enableLookups="false" acceptCount="100"/>
      <Connector port="8009" protocol="AJP/1.3" redirectPort="8443"/>
      <Engine name="Catalina" defaultHost="localhost">
         <Realm className="org.apache.catalina.realm.LockOutRealm">
            <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
                   resourceName="UserDatabase"/>
         </Realm>
         <Host name="localhost"
               appBase="webapps"
               unpackWARs="true"
               autoDeploy="true">
            <Valve className="org.apache.catalina.valves.AccessLogValve"
                   directory="logs"
                   prefix="localhost_access_log."
                   suffix=".txt"
                   pattern="%h %l %u %t &#34;%r&#34; %s %b"/>
         </Host>
      </Engine>
   </Service>
   <Service name="Catalina2">
      <Connector port="18080"
                 protocol="HTTP/1.1"
                 connectionTimeout="20000"
                 redirectPort="18443"/>
      <Connector port="18009" protocol="AJP/1.3" redirectPort="18443"/>
      <Engine name="Catalina2" defaultHost="localhost">
         <Realm className="org.apache.catalina.realm.LockOutRealm">
            <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
               resourceName="UserDatabase"/>
         </Realm>
         <Host name="localhost"
               appBase="webapps2"
               unpackWARS="true"
               autoDeploy="true">
            <Valve className="org.apache.catalina.valves.AccessLogValve"
                   directory="logs2"
                   prefix="localhost_Cat2_access_log."
                   suffix=".txt"
                   pattern="%h %l %u %t &amp;quot;%r&amp;quot; %s %b"/>
         </Host>
      </Engine>
   </Service>
</Server>

[2] $TOMCAT_HOME/logs/catalina.out:
INFO: Starting service Catalina2
Nov 03, 2014 9:08:30 PM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.53
Nov 03, 2014 9:08:30 PM org.apache.catalina.startup.HostConfig deployWAR
INFO: Deploying web application archive /usr/home/bridger/src/apache-tomcat-7.0.53/webapps2/bX79.war
Nov 03, 2014 9:08:31 PM org.apache.catalina.core.StandardContext loadOnStartup
SEVERE: Servlet /bX79 threw load() exception
java.net.BindException: Address already in use
    at java.net.PlainSocketImpl.socketBind(Native Method)
    at java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:376)
    at java.net.ServerSocket.bind(ServerSocket.java:376)
    at java.net.ServerSocket.bind(ServerSocket.java:330)
    at org.basex.BaseXServer.<init>(BaseXServer.java:110)
    at org.basex.http.HTTPContext.init(HTTPContext.java:379)
    at org.basex.http.BaseXServlet.init(BaseXServlet.java:34)
    at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1284)
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1197)
    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1087)
    at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5210)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5493)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:632)
    at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:1073)
    at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1857)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:745)

Nov 03, 2014 9:08:31 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory /usr/home/bridger/src/apache-tomcat-7.0.53/webapps2/examples
Nov 03, 2014 9:08:31 PM org.apache.catalina.core.ApplicationContext log
INFO: ContextListener: contextInitialized()
Nov 03, 2014 9:08:31 PM org.apache.catalina.core.ApplicationContext log
INFO: SessionListener: contextInitialized()
Nov 03, 2014 9:08:31 PM org.apache.catalina.core.ApplicationContext log
INFO: ContextListener: attributeAdded('org.apache.jasper.compiler.TldLocationsCache', 'org.apache.jasper.compiler.TldLocationsCache@5f0f8770')
Nov 03, 2014 9:08:31 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory /usr/home/bridger/src/apache-tomcat-7.0.53/webapps2/docs
Nov 03, 2014 9:08:31 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory /usr/home/bridger/src/apache-tomcat-7.0.53/webapps2/ROOT
Nov 03, 2014 9:08:31 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory /usr/home/bridger/src/apache-tomcat-7.0.53/webapps2/manager
Nov 03, 2014 9:08:31 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory /usr/home/bridger/src/apache-tomcat-7.0.53/webapps2/host-manager
Nov 03, 2014 9:08:31 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-18080"]
Nov 03, 2014 9:08:31 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-bio-18009"]
Nov 03, 2014 9:08:31 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 7893 ms

[3] $TOMCAT_HOME/webapps2/bX79/WEB-INF/web.xml
  <context-param>
    <param-name>org.basex.port</param-name>
    <param-value>8984</param-value>
  </context-param>
  <context-param>
    <param-name>org.basex.serverport</param-name>
    <param-value>8984</param-value>
  </context-param>