There is an applet that can be used to serve up telnet sessions via a Java applet at Javatelnet.org. Note that this site is often down, although it is the current main site. There is an older version available here. Now, we have been trying to use this to provide a web interface for a legacy system. Mostly, this system is accessed via telnet over a VPN. The applet will work with SSH as well. The current, expensive, web to host solution is a wee bit flakey, and we have been trying to implement this free applet; however, the applet does not work as advertised. Specifically, the Applet.disconnect setting does not seem to work. This setting, if it did work, would keep users from inadvertantly disconnecting their sessions if they accidentally click on a hyperlink in an email or somesuch. As it is, if they click on a hyperlink, and the web browser that the applet was launched from is active (or the only one), they lose their session when the page changes. While trying to figure this all out, we tried to use the source to create a new .jar file. We did put a copy of the source for this up here. It is version jta25b. The nice thing about this is that the vt320 emulation works perfectly, at least, there was a problem with jta20 and the tab key on vi. There are no instructions for compiling this anywhere. This is particularly a problem for us, because we are not Java programmers by trade, we are just a couple of systems people. First of all, you can extract Java source files just like you do a tar file, with jar -xf source.jar. Another problem with jta25b, is that is uses a particular version of JDOM. You need jdom-b8. You also need gnu.regexp. You’ll need to run sh build.sh (or whatever) to build the jdom.jar file. Stick this in /opt/j2sdk/lib/ext. We stuck gnu.regexp-1.1.4.jar in /opt/j2sdk/lib/ext/gnu.regexp-1.1.4/lib/. Go figure. 🙂 Anyway, the proper thing is to set your CLASSPATH:
export CLASSPATH=/opt/j2sdk/lib/rt.jar:/opt/j2sdk/lib/ext/jdom.jar: /opt/j2sdk/lib/ext/gnu.regexp-1.1.4/lib/gnu-regexp-1.1.4.jar |
Now, this should allow you to compile, but there is an error:
u-1@srv-1 jta25b $ make . . . make[2]: Leaving directory `/home/u-1/javassh/jta25b/contrib' Creating BSX.jar ... java.io.FileNotFoundException: ../jar/BSX.jar (No such file or directory) at java.io.FileOutputStream.open(Native Method) at java.io.FileOutputStream.(FileOutputStream.java:176) at java.io.FileOutputStream.(FileOutputStream.java:70) at sun.tools.jar.Main.run(Main.java:133) at sun.tools.jar.Main.main(Main.java:904) make[1]: *** [bsx] Error 1 make[1]: Leaving directory `/home/u-1/javassh/jta25b/contrib' make: *** [cont] Error 2 u-1@srv-1 jta25b $ |
The trick is to make the BSX jar file first:
u-1@srv-1 jta25b $ make jar make[1]: Entering directory `/home/u-1/javassh/jta25b' make[1]: `de/mud/jta/event/ReturnFocusListener.class' is up to date. make[1]: `de/mud/jta/event/TelnetCommandListener.class' is up to date. make[1]: `de/mud/jta/event/OnlineStatus.class' is up to date. make[1]: `de/mud/jta/event/SocketRequest.class' is up to date. make[1]: `de/mud/jta/event/SoundListener.class' is up to date. make[1]: `de/mud/jta/event/SoundRequest.class' is up to date. make[1]: `de/mud/jta/event/LocalEchoRequest.class' is up to date. make[1]: `de/mud/jta/event/SocketListener.class' is up to date. make[1]: `de/mud/jta/event/TerminalTypeListener.class' is up to date. make[1]: `de/mud/jta/event/EndOfRecordRequest.class' is up to date. make[1]: `de/mud/jta/event/ConfigurationRequest.class' is up to date. . . . make[1]: `de/mud/telnet/TelnetProtocolHandler.class' is up to date. make[1]: `de/mud/telnet/TelnetWrapper.class' is up to date. make[1]: `de/mud/telnet/ScriptHandler.class' is up to date. make[1]: Leaving directory `/home/u-1/javassh/jta25b' Done. u-1@srv-1 jta25b $ |
Now, you can run make:
u-1@srv-1 jta25b $ make make[1]: Entering directory `/home/u-1/javassh/jta25b' make[1]: `de/mud/jta/event/ReturnFocusListener.class' is up to date. make[1]: `de/mud/jta/event/TelnetCommandListener.class' is up to date. make[1]: `de/mud/jta/event/OnlineStatus.class' is up to date. make[1]: `de/mud/jta/event/SocketRequest.class' is up to date. make[1]: `de/mud/jta/event/SoundListener.class' is up to date. make[1]: `de/mud/jta/event/SoundRequest.class' is up to date. make[1]: `de/mud/jta/event/LocalEchoRequest.class' is up to date. . . . Generating doc/source/help-doc.html... Generating doc/source/stylesheet.css... 22 warnings Source documentation done. Creating binary archive ... Created jar/jta20.jar u-1@srv-1 jta25b $ |
That is what you need to do if you want to recompile your .jar file. Now, the applet simply rocks, besides this one problem. The terminal emulation works very well. If we could just get it so that the Applet.disconnect option worked, we would be so happy. There is a forum to discuss this here. We encourage you, dear reader, to use the forum to assist us, if you have an interest.