[erlang-questions] Erlang-Java interface through ordinary ports

Michael Truog mjtruog@REDACTED
Tue Jul 12 01:39:33 CEST 2011


Hi Dan,

It is easiest to use the jinterface library for this task, since it is included within OTP/Erlang.  The version value is included within the jinterface code that is needed for port communication.  Most people use system out/in for ports, but then you are unable to get any print statements, which can be annoying... and often stderr is lost.  If you look at CloudI (http://cloudi.org/), it makes sure to open a port (using C++ loader code to exec the JVM) which starts a bunch of sockets with deterministic file descriptor numbers (starting at 3), then uses the jinterface library to encode/decode Erlang data used in the Java CloudI API.  So, the example is more complex, but it avoids stdout/stderr (1/2) and handles those separately within the C++ loader code (sending it back as port communication).  The higher-level usage of jinterface is similar to what you want, if you ignore some of the magic to make the integer file descriptors work within the java source code
(https://github.com/okeuday/CloudI/blob/master/src/api/java/org/cloudi/API.java).

- Michael

On 07/11/2011 03:14 PM, Daniel Dormont wrote:
> Hello Erlangers,
>
> I would like to have an Erlang application (specifically the auth_external module in Ejabberd) communicate with a Java program I am writing. Not as a node, but rather using the port driver API, since that is what Ejabberd already supports. From the information I've seen, it shouldn't be too terribly hard - just listen for data in System.in, look for a two-byte chunk that when read as a short specifies the number of additional bytes to read, and repeat. I'm just wondering if this is something that's considered normal and reasonable to do, any gotchas I should be aware of, etc.
>
> The only reason I'm picking Java is the rest of my application is Java and I'd like to reuse some libraries and such.
>
> thanks,
> Dan
>
>
> _______________________________________________
> erlang-questions mailing list
> erlang-questions@REDACTED
> http://erlang.org/mailman/listinfo/erlang-questions

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20110711/a678deac/attachment.htm>


More information about the erlang-questions mailing list