IIOP tunelling over HTTP

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

IIOP tunelling over HTTP

COURTAULT Francois
Hello everyone,

Previously we were using Welogic. In one of our use-case, we performed a remote EJB (so using iiop) call to the our customer backend over the internet.
Because of some firewall issue we might have, we use http tunneling iiop to perform this call.

Do you know if we can do the same with TomEE ?

Best Regards.



Reply | Threaded
Open this post in threaded view
|

Re: IIOP tunelling over HTTP

jgallimore
Hi

TomEE does have the ability to do remote EJB calls over HTTP, although it
isn't based on IIOP. This capability has actually been around in OpenEJB in
the pre-TomEE days :-).

In TomEE, you'll need to enable remote support, and configure a list of
packages that are allowed to be serialized/deserialized.

tomee.remote.support = true
tomee.serialization.class.blacklist = *
tomee.serialization.class.whitelist = org.mycompany.package

After that, you can lookup and call remote EJBs in the usual way. The
global JNDI names of your EJBs should be logged out at deploy time.

        Properties properties = new Properties();
        properties.put(Context.INITIAL_CONTEXT_FACTORY,
"org.apache.openejb.client.RemoteInitialContextFactory");
        properties.put(Context.PROVIDER_URL, "
http://localhost:8080/tomee/ejb");

        Context ctx = new InitialContext(properties);
        Object ref =
ctx.lookup("global/ejb-remote-call-2/Greetings!org.superbiz.remote.Greetings");


This should also work with a reverse proxy such as HTTPD in front of TomEE.
You may wish to turn on authentication so anonymous users can't call your
business methods.

I've always quite liked this functionality as it enables remote EJB access
in a fairly straightforward way, without needing to open up other ports.

Hope that helps.

Jon

On Tue, Mar 23, 2021 at 4:00 PM COURTAULT Francois <
[hidden email]> wrote:

> Hello everyone,
>
> Previously we were using Welogic. In one of our use-case, we performed a
> remote EJB (so using iiop) call to the our customer backend over the
> internet.
> Because of some firewall issue we might have, we use http tunneling iiop
> to perform this call.
>
> Do you know if we can do the same with TomEE ?
>
> Best Regards.
>
>
>
>
Reply | Threaded
Open this post in threaded view
|

RE: IIOP tunelling over HTTP

COURTAULT Francois
Hello Jonathan,

Thanks for answering :-)
I found this link http://tomee.apache.org/latest/docs/ejbd-transport.html but it seems rot really recent (reference to 1.7.x).
Is this link quite similar with your answer ?

We are using currently TomEE 8.0.6. Does it fully work and fully tested on this release .

Best Regards.

-----Original Message-----
From: Jonathan Gallimore [mailto:[hidden email]]
Sent: mardi 23 mars 2021 17:29
To: [hidden email]
Subject: Re: IIOP tunelling over HTTP

Hi

TomEE does have the ability to do remote EJB calls over HTTP, although it isn't based on IIOP. This capability has actually been around in OpenEJB in the pre-TomEE days :-).

In TomEE, you'll need to enable remote support, and configure a list of packages that are allowed to be serialized/deserialized.

tomee.remote.support = true
tomee.serialization.class.blacklist = *
tomee.serialization.class.whitelist = org.mycompany.package

After that, you can lookup and call remote EJBs in the usual way. The global JNDI names of your EJBs should be logged out at deploy time.

        Properties properties = new Properties();
        properties.put(Context.INITIAL_CONTEXT_FACTORY,
"org.apache.openejb.client.RemoteInitialContextFactory");
        properties.put(Context.PROVIDER_URL, "
http://localhost:8080/tomee/ejb");

        Context ctx = new InitialContext(properties);
        Object ref =
ctx.lookup("global/ejb-remote-call-2/Greetings!org.superbiz.remote.Greetings");


This should also work with a reverse proxy such as HTTPD in front of TomEE.
You may wish to turn on authentication so anonymous users can't call your business methods.

I've always quite liked this functionality as it enables remote EJB access in a fairly straightforward way, without needing to open up other ports.

Hope that helps.

Jon

On Tue, Mar 23, 2021 at 4:00 PM COURTAULT Francois < [hidden email]> wrote:

> Hello everyone,
>
> Previously we were using Welogic. In one of our use-case, we performed
> a remote EJB (so using iiop) call to the our customer backend over the
> internet.
> Because of some firewall issue we might have, we use http tunneling
> iiop to perform this call.
>
> Do you know if we can do the same with TomEE ?
>
> Best Regards.
>
>
>
>
Reply | Threaded
Open this post in threaded view
|

Re: IIOP tunelling over HTTP

jgallimore
Hi Francois

It is tested and working on TomEE 8.0.6; I did specifically test it using
this example:
https://github.com/apache/tomee/tree/master/examples/ejb-remote-call-2
before replying. Do let us know if you run into issues and we'll be happy
to help you out.

Jon

On Tue, Mar 23, 2021 at 5:39 PM COURTAULT Francois <
[hidden email]> wrote:

> Hello Jonathan,
>
> Thanks for answering :-)
> I found this link http://tomee.apache.org/latest/docs/ejbd-transport.html
> but it seems rot really recent (reference to 1.7.x).
> Is this link quite similar with your answer ?
>
> We are using currently TomEE 8.0.6. Does it fully work and fully tested on
> this release .
>
> Best Regards.
>
> -----Original Message-----
> From: Jonathan Gallimore [mailto:[hidden email]]
> Sent: mardi 23 mars 2021 17:29
> To: [hidden email]
> Subject: Re: IIOP tunelling over HTTP
>
> Hi
>
> TomEE does have the ability to do remote EJB calls over HTTP, although it
> isn't based on IIOP. This capability has actually been around in OpenEJB in
> the pre-TomEE days :-).
>
> In TomEE, you'll need to enable remote support, and configure a list of
> packages that are allowed to be serialized/deserialized.
>
> tomee.remote.support = true
> tomee.serialization.class.blacklist = *
> tomee.serialization.class.whitelist = org.mycompany.package
>
> After that, you can lookup and call remote EJBs in the usual way. The
> global JNDI names of your EJBs should be logged out at deploy time.
>
>         Properties properties = new Properties();
>         properties.put(Context.INITIAL_CONTEXT_FACTORY,
> "org.apache.openejb.client.RemoteInitialContextFactory");
>         properties.put(Context.PROVIDER_URL, "
> http://localhost:8080/tomee/ejb");
>
>         Context ctx = new InitialContext(properties);
>         Object ref =
>
> ctx.lookup("global/ejb-remote-call-2/Greetings!org.superbiz.remote.Greetings");
>
>
> This should also work with a reverse proxy such as HTTPD in front of TomEE.
> You may wish to turn on authentication so anonymous users can't call your
> business methods.
>
> I've always quite liked this functionality as it enables remote EJB access
> in a fairly straightforward way, without needing to open up other ports.
>
> Hope that helps.
>
> Jon
>
> On Tue, Mar 23, 2021 at 4:00 PM COURTAULT Francois <
> [hidden email]> wrote:
>
> > Hello everyone,
> >
> > Previously we were using Welogic. In one of our use-case, we performed
> > a remote EJB (so using iiop) call to the our customer backend over the
> > internet.
> > Because of some firewall issue we might have, we use http tunneling
> > iiop to perform this call.
> >
> > Do you know if we can do the same with TomEE ?
> >
> > Best Regards.
> >
> >
> >
> >
>
Reply | Threaded
Open this post in threaded view
|

RE: IIOP tunelling over HTTP

COURTAULT Francois
Hello Jonathan,

Thanks a lot :-)
What about Micro-Profile support on TomEE  at least 3.x ?

Best Regards.

-----Original Message-----
From: Jonathan Gallimore [mailto:[hidden email]]
Sent: mardi 23 mars 2021 20:56
To: [hidden email]
Subject: Re: IIOP tunelling over HTTP

Hi Francois

It is tested and working on TomEE 8.0.6; I did specifically test it using this example:
https://github.com/apache/tomee/tree/master/examples/ejb-remote-call-2
before replying. Do let us know if you run into issues and we'll be happy to help you out.

Jon

On Tue, Mar 23, 2021 at 5:39 PM COURTAULT Francois < [hidden email]> wrote:

> Hello Jonathan,
>
> Thanks for answering :-)
> I found this link
> http://tomee.apache.org/latest/docs/ejbd-transport.html
> but it seems rot really recent (reference to 1.7.x).
> Is this link quite similar with your answer ?
>
> We are using currently TomEE 8.0.6. Does it fully work and fully
> tested on this release .
>
> Best Regards.
>
> -----Original Message-----
> From: Jonathan Gallimore [mailto:[hidden email]]
> Sent: mardi 23 mars 2021 17:29
> To: [hidden email]
> Subject: Re: IIOP tunelling over HTTP
>
> Hi
>
> TomEE does have the ability to do remote EJB calls over HTTP, although
> it isn't based on IIOP. This capability has actually been around in
> OpenEJB in the pre-TomEE days :-).
>
> In TomEE, you'll need to enable remote support, and configure a list
> of packages that are allowed to be serialized/deserialized.
>
> tomee.remote.support = true
> tomee.serialization.class.blacklist = *
> tomee.serialization.class.whitelist = org.mycompany.package
>
> After that, you can lookup and call remote EJBs in the usual way. The
> global JNDI names of your EJBs should be logged out at deploy time.
>
>         Properties properties = new Properties();
>         properties.put(Context.INITIAL_CONTEXT_FACTORY,
> "org.apache.openejb.client.RemoteInitialContextFactory");
>         properties.put(Context.PROVIDER_URL, "
> http://localhost:8080/tomee/ejb");
>
>         Context ctx = new InitialContext(properties);
>         Object ref =
>
> ctx.lookup("global/ejb-remote-call-2/Greetings!org.superbiz.remote.Gre
> etings");
>
>
> This should also work with a reverse proxy such as HTTPD in front of TomEE.
> You may wish to turn on authentication so anonymous users can't call
> your business methods.
>
> I've always quite liked this functionality as it enables remote EJB
> access in a fairly straightforward way, without needing to open up other ports.
>
> Hope that helps.
>
> Jon
>
> On Tue, Mar 23, 2021 at 4:00 PM COURTAULT Francois <
> [hidden email]> wrote:
>
> > Hello everyone,
> >
> > Previously we were using Welogic. In one of our use-case, we
> > performed a remote EJB (so using iiop) call to the our customer
> > backend over the internet.
> > Because of some firewall issue we might have, we use http tunneling
> > iiop to perform this call.
> >
> > Do you know if we can do the same with TomEE ?
> >
> > Best Regards.
> >
> >
> >
> >
>