I'm trying to run two instances of BaseX in Tomcat with the following server.conf. I'm running into an odd problem: both are available on their respective ports, but the webapp itself is the same WAR; i.e. a link that is only in the webapps/ WAR appears in the WAR loaded from webapps2. I'm not really sure what my next steps should be -- I'll ask on the BaseX mailing list but they're not using much Tomcat there.
Here's my server.conf
<Service name="Catalina">
<Connector port="8080"
protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"/>
<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 "%r" %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">
<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 &quot;%r&quot; %s %b"/>
</Host>
</Engine>
</Service>
When I start Tomcat, everything in both services loads okay except for the second BaseX application. When Tomcat starts to load that I get the following error:
INFO: Starting service Catalina2
Nov 03, 2014 7:59:58 PM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.53
Nov 03, 2014 7:59:58 PM org.apache.catalina.startup.HostConfig deployWAR
INFO: Deploying web application archive /usr/home/cob/src/apache-tomcat- 7.0.53/webapps2/bX79.war
Nov 03, 2014 7:59:58 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 7:59:58 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory /usr/home/cob/src/apache-tomcat-7.0.53/webapps2/examples
Nov 03, 2014 7:59:59 PM org.apache.catalina.core.ApplicationContext log
INFO: ContextListener: contextInitialized()
Nov 03, 2014 7:59:59 PM org.apache.catalina.core.ApplicationContext log
INFO: SessionListener: contextInitialized()
Nov 03, 2014 7:59:59 PM org.apache.catalina.core.ApplicationContext log
INFO: ContextListener: attributeAdded('org.apache.jasper.compiler.TldLocationsCache', 'org.apache.jasper.compiler.TldLocationsCache@25288684')
Nov 03, 2014 7:59:59 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory /usr/home/cob/src/apache-tomcat-7.0.53/webapps2/docs
Nov 03, 2014 7:59:59 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory /usr/home/cob/src/apache-tomcat-7.0.53/webapps2/ROOT
Nov 03, 2014 7:59:59 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory /usr/home/cob/src/apache-tomcat-7.0.53/webapps2/manager
Nov 03, 2014 7:59:59 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory /usr/home/cob/src/apache-tomcat-7.0.53/webapps2/host-manager
Nov 03, 2014 7:59:59 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-18080"]
Nov 03, 2014 7:59:59 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-bio-18009"]
Nov 03, 2014 7:59:59 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 8304 ms
I'm not really sure that port is that's causing the problem. netstat
and grepping for other ports in use aren't returning anything useful.