Thanks a lot for your answer, Bill.
I will try to develop my own ProtocolHandler. But the problem is, that I can´t
use Tomcat5.5, I guess. I tried it in embedded mode with Tomcat5.5 an Java1.4
and got an Exception: java.lang.NoClassDefFoundError:
javax/management/NotificationEmitter
But the code example you gave to me I can´t use, because it is for Tomcat5.5, I
guess. I think I should use Tomcat5.0 because I have to use Java1.4.
I tried an example I found in the net, but got an
java.lang.NoClassDefFoundError: javax/management/NotificationEmitter. So I
searched for that and in my opinion I have to use Java1.5 for that, right? Or
is there a possiblity to use Tomcat5.5 in embedded mode with Java1.4?
So I would like to know, how to embed an own ProtocolHandler in Tomcat5.0
because Connector is not a class, it is an Interface there. The Class there I
found is CoyoteConnector.
I tried something like this and it works:
CoyoteConnector testConnector1 = (CoyoteConnector)
server.createConnector((java.net.InetAddress) null, 7070, false);
testConnector1.setProtocolHandlerClassName("org.apache.coyote.http11.Http11Protocol");
server.addConnector(testConnector1);
But if I take the source code of the package in an own package an generate an
jar-File of this it does not work anymore.
CoyoteConnector testConnector2 = (CoyoteConnector)
server.createConnector((java.net.InetAddress) null, 9090, false);
testConnector2.setProtocolHandlerClassName("src.connectors.test.Http11Protocol");
server.addConnector(testConnector2);
I did not get an exception but
--- THE EXCEPTION I GOT: ---
java.lang.NoClassDefFoundError: javax/management/NotificationEmitter
at java.lang.ClassLoader.defineClass0(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:537)
at
java.security.SecureClassLoader.defineClass(SecureClassLoader.java:123)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:251)
at java.net.URLClassLoader.access$100(URLClassLoader.java:55)
at java.net.URLClassLoader$1.run(URLClassLoader.java:194)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:187)
at java.lang.ClassLoader.loadClass(ClassLoader.java:289)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:274)
at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)
at org.apache.catalina.startup.Embedded.createContext(Embedded.java:475)
at src.server.Tomcat55.startTomcat(Tomcat55.java:126)
at src.server.MyServer55.main(MyServer55.java:244)
Exception in thread "main"
>
>"Daniela Piacenti" <[EMAIL PROTECTED]> wrote in message
>news:[EMAIL PROTECTED]
>> Hello everybody,
>>
>> I read a lot about the coyote connector and that it is possible to write
>> own connectors for Tomcat. But I did not find anything in the whole web,
>> how to do this. Now I am reading the source code of the coyote connector
>> and have some questions about it.
>>
>> My problem is:
>> I am writing an application, which acts as an adapter for another
>> application to provide its functionality via Web Services to external
>> client applications. Therefore I am using Tomcat5 in embedded mode as
>> servlet engine and Apache Axis as framework for the web services.
>> Now I also have to connect legacy client systems to my new application if
>> possible. They communicate with the old external client interface directly
>> over sockets with streams via TCP/IP using proprietary message protocols.
>>
>> The alternative way would be to write an own SocketServer before Tomcat to
>> make HTTP-Requests and to forward them to the Servlet Engine. Backwards
>> the other way. But this would not be a smart and practicable way for this
>> task, I guess. So I decided to have a look to the connector and maybe
>> write my own connector for this.
>>
>> Generally I have the question, if it is possible and if yes, how. Do I
>> have to write a whole connector, which implements this interface? Or is it
>> possible to use the coyote connector with an own implemenation of an
>> handlerclass, protocolclass and processclass? And how can I embed this
>> connector in Tomcat?
>>
>> Hope someone may help me. Thanks a lot in advance,
>>
>
>The best way is to use the Coyote Connector, but implement your own
>ProtocolHandler:
>http://tomcat.apache.org/tomcat-5.5-doc/catalina/docs/api/org/apache/coyote/Pro
>tocolHandler.html.
>The ProtocolHandler is responsible for setting up the ServerSocket, handling
>the accepted requests, parsing the data it recieves and setting the
>appropriate fields in the Request/Response (that it is also responsible for
>creating :), creating a Thread to process the request, and passing it off
>to the Adapter that the Connector will have handed you, and finally sending
>the result back to the client in the format that it expects to recieve it.
>You'll likely need to implement ActionHook as well to get the best results
>(e.g. handling client-flush properly).
>
>The MemoryProtocolHandler that ships with Tomcat is probably the simplest,
>and so likely a good place to start to base your ProtocolHandler on.
>
>Since you are using Embedded, in your code you would do something like:
>
> Connector myConn = new
>Connector("com.myfirm.mypackage.MyProtocolHandler");
> myConn.setProperty("port", myPort);
> // Additional calls to setProperty here, which will be passed JavaBean
>style to
> // your ProtocolHandler (alternatively, use setAttribute if you know the
>Java class already)
> embedded.addConnector(myConn);
>
>
>> Regards,
>> Daniela
>>
>> ---------------------------------------------------------------------
>> To start a new topic, e-mail: [email protected]
>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>> For additional commands, e-mail: [EMAIL PROTECTED]
>>
>>
>
>
>
>
>---------------------------------------------------------------------
>To start a new topic, e-mail: [email protected]
>To unsubscribe, e-mail: [EMAIL PROTECTED]
>For additional commands, e-mail: [EMAIL PROTECTED]
>
---------------------------------------------------------------------
To start a new topic, e-mail: [email protected]
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]