tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Bill Barker" <>
Subject Re: Tomcat Custom Connector
Date Wed, 04 Jun 2008 02:17:03 GMT
AFAIK, there isn't a lot of documentation.  But there isn't that much too 
it.  You need to implement a ProtocolHandler 
This class is responsible for managing the transport (e.g. ServerSocket) and 
request threads (but the various EndPoint classes in may simplify this aspect for you).  For best 
results, this class may implement ActionHook as well 

When a new request comes in, it is the ProtocolHandler's job to initialize a 
and a Response 
objects for it, making certain that they get valid InputBuffer 
and OutputBuffer 
instances to comunicate with the client.  Then within the thread, you hand 
the Request and Response off to the service method of the Adapter 
that Tomcat will give to the ProtocolHandler.  And that is pretty much it 

Using the standard server.xml (as opposed to Embedding), you would configure 
Tomcat to use your Connector with an element like:
   <Connector protocol="com.myfirm.mypackage.MyProtocolHandler" ... />
Any other attributes in the <Connector /> tag will be passed JavaBean style 
to the ProtocolHandler to handle init options.

For the simplest example, look at 
org.apache.coyote.memory.MemoryProtocolHandler (but this one is mostly 
useful for unit testing).

"Simon Aquilina" <> wrote in message 

I am interested in building a custom connector for Tomcat. I have checked 
the Tomcat source code and found the source code for the ‘http11’ and ‘ajp’ 
connectors. I thought of trying to understand the code of these two 
connectors and then try to implement mine based on these. However I am no 
expert and was wondering if there is any good documentation/tutorial on how 
a connector can be developed for Tomcat (I would later use this connector 
with Geronimo).
Just to give you some insight; what I want to achieve is to build a custom 
connector so that Tomcat can understand requests made from a 3rd party 
clients who cannot communicate using the Http protocol and nor do they 
expect data in html format. Additionally some of the clients could 
communicate on Bluetooth!
I do not know if the above is even possible but I am willing to try :)
Thanks for any replies,
News, entertainment and everything you care about at Get it now! 

To start a new topic, e-mail:
To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message