I didn't think that TomEE was Tomcat. Wasn't it it's own thing??? I mean
TomEE is this separate project maintained by this up here in Seattle vs
Tomcat which is an Apache Project.

Owen Rubel
oru...@gmail.com


On Mon, May 6, 2019 at 9:16 AM Paul Carter-Brown
<paul.carter-br...@jini.guru> wrote:

> Hi John,
>
> See original request. It's pretty much a Kafka/Servlet proxy/gateway:
>
> I'm trying to design a Kafka consumer and producer that will run inside the
> tomcat jvm and pick up messages off a Kafka topic and translate them into a
> servlet request and pass it through tomcat and then when the response is
> complete then translate it into a Kafka message and put it onto another
> topic as a reply. This way I can reuse our existing jax-rs rest services
> and expose them as an async api over Kafka. The idea is to make the Kafka
> messages similar to http in that they would consist of headers and a body.
> The body would be json.
>
>
> On Mon, May 6, 2019 at 6:13 PM John Dale <jcdw...@gmail.com> wrote:
>
> > You could try debugging the tomcat code and find out how, right after
> > it parses the TCP request, it invokes the servlet.  You can then
> > create your own harness for tomcat code after initializing the
> > appropriate context for the request to tomcat.  I don't know off hand
> > where in the tomcat code this cut point can be found.
> >
> > Is this a performance issue, or are you building a proxy?
> >
> > What is the problem you're trying to solve?
> >
> > On 5/6/19, Paul Carter-Brown <paul.carter-br...@jini.guru> wrote:
> > > Yea, but the issue is that only works when calling in the context of a
> > > current servlet call.
> > >
> > > Here is the kind of problem I want to solve:
> > >
> > > @WebServlet(name = "MyExample", urlPatterns = {"/example"},
> > loadOnStartup =
> > > 1)
> > > public class Example extends HttpServlet {
> > >
> > >     @PersistenceContext
> > >     private EntityManager em;
> > >
> > >     @Override
> > >     public void init(ServletConfig config) {
> > >         Thread t = new Thread(() -> {
> > >             while (true) {
> > >                 try {
> > >                     // Do a GET to /example/ and get the response
> without
> > > going out on localhost and back in....
> > >                     // We cant just call doGet as we want the request
> to
> > > flow through the servlet filters, do the entitymanager injection etc
> > >                     Thread.sleep(10000);
> > >                 } catch (Exception e) {
> > >                 }
> > >             }
> > >         });
> > >         t.start();
> > >
> > >     }
> > >
> > >     @Override
> > >     protected void doGet(HttpServletRequest req, HttpServletResponse
> > resp)
> > > throws ServletException, IOException {
> > >         // do stuff like use em
> > >         resp.setStatus(200);
> > >         resp.getWriter().write("Hello World");
> > >     }
> > >
> > > }
> > >
> > >
> > >
> > >
> > > On Mon, May 6, 2019 at 5:35 PM John Dale <jcdw...@gmail.com> wrote:
> > >
> > >> For reference, I did find this after searching "calling a servlet
> > >> programmatically":
> > >> https://docs.oracle.com/cd/E19146-01/819-2634/abxbn/index.html
> > >>
> > >> On 5/6/19, Paul Carter-Brown <paul.carter-br...@jini.guru> wrote:
> > >> > I think we are completely missing each other. Forget sockets - that
> > was
> > >> > just an example. I have code running in a Tomcat App server which is
> > >> > not
> > >> > managed by Tomcat and is not initiated by anything within Tomcat.
> That
> > >> code
> > >> > now wants to call a servlet hosted in that very same JVM. Any way to
> > do
> > >> > that without going out and back in on TCP?
> > >> >
> > >> >
> > >> > On Mon, May 6, 2019 at 5:14 PM John Dale <jcdw...@gmail.com> wrote:
> > >> >
> > >> >> Sockets are an implementation of TCP/UDP inherently.
> > >> >>
> > >> >> Perhaps a mountaintop signal fire?
> > >> >>
> > >> >> ;)
> > >> >>
> > >> >> John
> > >> >>
> > >> >>
> > >> >> On 5/6/19, Paul Carter-Brown <paul.carter-br...@jini.guru> wrote:
> > >> >> > lol on the Semaphore Telegraph,
> > >> >> >
> > >> >> > I can't use a request dispatcher as the request is being
> initiated
> > >> from
> > >> >> > code that has no context. I already have it working with HTTP
> using
> > >> >> > asynchttp library, but I want to avoid the overhead. E.g. lets
> say
> > I
> > >> >> wrote
> > >> >> > my own server socket listener on port 10000 running in the Tomcat
> > >> >> > JVM
> > >> >> > and
> > >> >> > got some request in some propriatary protocol called X. Now I
> want
> > >> >> > to
> > >> >> call
> > >> >> > a Tomcat servlet in the current JVM with some info I got over X
> > >> without
> > >> >> > going out on TCP and back in....
> > >> >> >
> > >> >> > On Mon, May 6, 2019 at 4:40 PM John Dale <jcdw...@gmail.com>
> > wrote:
> > >> >> >
> > >> >> >> If you're wanting to forward control to another servlet deployed
> > in
> > >> >> >> the same context:
> > >> >> >> https://www.javatpoint.com/requestdispatcher-in-servlet
> > >> >> >>
> > >> >> >> If you are okay going through TCP to facilitate some future or
> > >> current
> > >> >> >> distribution of services, Use HTTPURLConnection (not sure what
> > >> >> >> you're
> > >> >> >> wanting to do with the result of the request, if anything):
> > >> >> >>
> > >> >> >>
> > >> >>
> > >>
> >
> https://stackoverflow.com/questions/2793150/how-to-use-java-net-urlconnection-to-fire-and-handle-http-requests
> > >> >> >>
> > >> >> >> If you need more sophisticated HTTP interactions, Apache
> maintains
> > >> >> >> a
> > >> >> >> very useful library for that:  http://hc.apache.org/
> > >> >> >>
> > >> >> >> If these don't work-out for you, rather than using .NET, PHP,
> > >> >> >> Python,
> > >> >> >> or some other Java facsimile at best, I recommend using the
> > >> >> >> semaphore
> > >> >> >> telegraph:
> > >> >> >> https://en.wikipedia.org/wiki/Semaphore_telegraph
> > >> >> >>
> > >> >> >> Sincerely,
> > >> >> >>
> > >> >> >> John
> > >> >> >> DB2DOM
> > >> >> >>
> > >> >> >> On 5/6/19, Paul Carter-Brown <paul.carter-br...@jini.guru>
> wrote:
> > >> >> >> > Hi John,
> > >> >> >> >
> > >> >> >> > Thanks for your feedback.
> > >> >> >> >
> > >> >> >> > The request I'm initiating should not or need not carry any
> > >> >> >> > context
> > >> >> >> > from
> > >> >> >> > the originating code. There is also no session to worry about
> as
> > >> its
> > >> >> >> > just
> > >> >> >> > for rest calls. So basically I have the headers, path and body
> > >> >> >> > and
> > >> >> need
> > >> >> >> to
> > >> >> >> > generate a http servlet request and get an http servlet
> response
> > >> (or
> > >> >> >> > similar) back. I have this working by calling into localhost
> but
> > >> >> >> > ideally
> > >> >> >> > want to skip the trombone out and back in.
> > >> >> >> >
> > >> >> >> > Have you got any basic code examples?
> > >> >> >> >
> > >> >> >> > Paul
> > >> >> >> >
> > >> >> >> > On Tue, Apr 30, 2019 at 5:27 PM John Dale <jcdw...@gmail.com>
> > >> wrote:
> > >> >> >> >
> > >> >> >> >> Another thought .. you can do some request dispatching, but
> > >> without
> > >> >> >> >> knowing more about the tools you're using, I can't say for
> sure
> > >> >> >> >> if
> > >> >> >> >> this is the direction you'll want to go.
> > >> >> >> >>
> > >> >> >> >> On 4/29/19, Paul Carter-Brown <paul.carter-br...@jini.guru>
> > >> wrote:
> > >> >> >> >> > Hi
> > >> >> >> >> >
> > >> >> >> >> > I'm trying to design a Kafka consumer and producer that
> will
> > >> >> >> >> > run
> > >> >> >> inside
> > >> >> >> >> the
> > >> >> >> >> > tomcat jvm and pick up messages off a Kafka topic and
> > >> >> >> >> > translate
> > >> >> them
> > >> >> >> >> into a
> > >> >> >> >> > servlet request and pass it through tomcat and then when
> the
> > >> >> >> >> > response
> > >> >> >> >> > is
> > >> >> >> >> > complete then translate it into a Kafka message and put it
> > >> >> >> >> > onto
> > >> >> >> another
> > >> >> >> >> > topic as a reply. This way I can reuse our existing jax-rs
> > >> >> >> >> > rest
> > >> >> >> >> > services
> > >> >> >> >> > and expose them as an async api over Kafka. The idea is to
> > >> >> >> >> > make
> > >> >> >> >> > the
> > >> >> >> >> > Kafka
> > >> >> >> >> > messages similar to http in that they would consist of
> > headers
> > >> >> >> >> > and
> > >> >> a
> > >> >> >> >> body.
> > >> >> >> >> > The body would be json.
> > >> >> >> >> >
> > >> >> >> >> > Now I know this could be done by calling localhost with an
> > >> >> >> >> > http
> > >> >> call
> > >> >> >> to
> > >> >> >> >> > trombone the requests back into tomcat but I'd like to
> avoid
> > >> >> >> >> > the
> > >> >> >> >> associated
> > >> >> >> >> > latency and overhead. Is it possible to call tomcat
> directly
> > >> >> >> >> > in-process.
> > >> >> >> >> > This does not need to be portable to other containers so
> can
> > >> >> >> >> > be
> > >> >> >> >> > proprietary.
> > >> >> >> >> >
> > >> >> >> >> > I'm using tomcat 8. In fact its tomee 8 but guessed this is
> > >> >> >> >> > more
> > >> >> >> >> > a
> > >> >> >> >> > tomcat
> > >> >> >> >> > question than tomee but have sent to both groups just in
> > case.
> > >> >> >> >> >
> > >> >> >> >> > Thanks for any insights.
> > >> >> >> >> >
> > >> >> >> >> > Paul
> > >> >> >> >> >
> > >> >> >> >>
> > >> >> >> >
> > >> >> >>
> > >> >> >>
> > ---------------------------------------------------------------------
> > >> >> >> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
> > >> >> >> For additional commands, e-mail: users-h...@tomcat.apache.org
> > >> >> >>
> > >> >> >>
> > >> >> >
> > >> >>
> > >> >>
> ---------------------------------------------------------------------
> > >> >> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
> > >> >> For additional commands, e-mail: users-h...@tomcat.apache.org
> > >> >>
> > >> >>
> > >> >
> > >>
> > >> ---------------------------------------------------------------------
> > >> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
> > >> For additional commands, e-mail: users-h...@tomcat.apache.org
> > >>
> > >>
> > >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
> > For additional commands, e-mail: users-h...@tomcat.apache.org
> >
> >
>

Reply via email to