tomcat-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Mark Thomas <>
Subject Re: Embeded Tomcat using a Connector with a random port (port 0)
Date Fri, 14 Oct 2011 11:36:12 GMT
On 14/10/2011 09:27, Olivier Lamy wrote:
> 2011/10/10 Konstantin Kolinko <>:
>> 2011/10/9 Olivier Lamy <>:
>>> tomcat.getConnector().setPort( 0 );
>> 1) Look at how TomcatBaseTest assigns subsequent port numbers,
>> starting with 8001.
>> 2) While the proposed feature may have some usage, I think that I
>> would want more control in what range the opened port number will be.
>> Just setting a "0" would not provide such control.
>> 3) There are several Connector/Endpoint implementations in Tomcat.
>> While does support port number of "0",  I am not
>> sure that APR-based implementation does allow it.
> Sure but the use case is just to start a http/https (apr can be
> omitted) connector on any random free port, do some unit test and stop
> it.

Consistency of behaviour and configuration across the connectors is
important. Where there are differences, we should be looking to
converge, not diverge.

> IMHO it's a valid use case (and with it folks will be able to use
> tomcat rather than an other servlet container which has this feature
> available :-) ).
> See the code snippet I have pointed, the code to write for using
> tomcat is really smaller/smarter (except all hacking I have to write
> due to the restriction on port).

An additional issue is that not specifying a port in server.xml will
result in 0 being used which would then result in a random port being
bound. I don't like that at all. I much prefer the current behaviour of
throwing an error.

If binding to a random port is to be supported I think it needs to be an
explicit choice - e.g. by setting a special value such as "auto" - and
ideally needs to be supported by all connectors.

In summary, I think the minimum I would find acceptable is:
- use a special value
- support for BIO and NIO

Ideally, APR needs to be supported to.


To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message