RMI w/ SSL Applet
I'm trying to create an applet that will communicate via RMI/SSL. I tried the sample HelloWorld program in the JSSE Examples as well as implementing it in my own applet but I can't get past the "unable to find valid certification path to requested target." error, which seems to mean that the client doesnt have the required certificate from what I can gather via google anyway.
How do I get the client to accept this certificate via an applet? Can I bundle it with the .jar file? Am I going to have to manually send a certificate to anyone who wants to use this applet? Is this possible to do w/o a command line interface of some kind?
I'm a bit lost here. Any help would be appreciated. Thanks.
Hi.
The security policy in effect is the one installed
by the applet container (the browser, the appletviewer,
etc.). You cannot change the security policy in an
applet. You may try to set a weaker security policy in
your applet container, but I doubt any reasonable
browser will let you set the RMI hostname. After
all, applets are allowed to connect their codebase
only.
Have fun,
wiedkla
Similar Messages
-
Rmi over ssl in jdk1.5.0
hi,
i am trying to connect a remote machine with rmi over ssl. but i got the following exceptions;
java.rmi.ConnectIOException: error during JRMP connection establishment; nested exception is:
Caused by: javax.net.ssl.SSLKeyException: RSA premaster secret error
Caused by: java.security.NoSuchAlgorithmException: Cannot find any provider supporting RSA/ECB/PKCS1Padding
Caused by: java.lang.IllegalArgumentException: can't support mode ECB
i am using jdk1.5.0. i have tried many samples but i have not run them successfully however they were running successfully in j2sdk1.4.2.
also i downloaded the bouncycastle provider but it did not work.
is there anybody who knows about a running sample about rmi and ssl in jdk1.5.0? please send me....
email: [email protected]Hi!
I know it's not the exactly right topic, but I've nearly the same problem with a https connection for a webService. I'm not using turkish locale, I'm using BouncyCastle and the "Unlimited Strength" policy files. I've no problems if i start my application with eclipse, starting it with jdk1.5.0_03\jre\bin\java or jre1.5.0_03\bin\java form commandline i get the same stacktrace:
javax.net.ssl.SSLKeyException: RSA premaster secret error
Caused by: javax.net.ssl.SSLKeyException: RSA premaster secret error
Caused by: java.security.NoSuchAlgorithmException: Cannot find any provider supporting RSA/ECB/PKCS1Padding
Caused by: java.lang.IllegalArgumentException: can't support mode ECB
if i try to get the cipher with
Cipher c = Cipher.getInstance("RSA/ECB/PKCS1Padding");
I'll get the same stacktrace, with
Cipher c = Cipher.getInstance("RSA/ECB/PKCS1Padding", "BC");
i works fine, but I've no idea how to run this code out of axis...
Thanks & Regards
Helmut -
RMI with SSL server authentification
Hello,
It is possible to implement a RMI over SSL client /server with only server authentification ?
I'have got currently a RMI SSL client/server with mutual authentification. It includes that client must have a keystore but i don't want that.
If anybody has an idea, its welcome.
tjmIndeed i 'm working to implement a keustorespi for the keystore and i would like
In fact I'm working to implement myself a keystorespi for the keystore and I would like that only server use it and client have no keystore.
It is possible -
RMI with SSL problem (cross post under RMI too)
Hi,
I'm having problems using RMI with SSL. I posted in the RMI forum originally but now realise the problems are with the SSL really.
Perhaps someone who follows this forum could help.
See post:
http://forum.java.sun.com/thread.jsp?forum=58&thread=409347
Thanks.There's more dukes in the other thread too.
-
RMI over SSL under Web Start can't find trusted certificate
I have implemented RMI over SSL to get a Java EJB Client application talking to a JRun server over SSL. It works fine from the command line, but when I try to run it as a Web Start application, I get
java.security.cert.CertificateException: Couldn't find trusted certificate
(More complete stack trace below)
I am using a test certificate, not one from a bona fide CA.
I have tried putting the key store file in one of the jars used by the application, and adding:
<argument>-Djavax.net.ssl.trustStore=jssecacerts</argument>
and
<argument>-Djavax.net.ssl.trustStore=jar:http://ip/app/xxx/lib/JarWithCacs.jar!/jssecacerts</argument>
to no avail.
If I copy the jssecacerts to Web Start's jre/lib/security directory, it works fine.
I have seen other postings that say to use keytool to update the JRE used by Web Start, but that kind of defeats the purpose of Web Start: zero admin client. I can't touch each user's machine.
I have seen other posts saying to implement a more relaxed trust manager, but that doesn't seem right either.
I am using JDK 1.4.1_02b6 on Win2k. This should be irrelevant: JRun 4 sp1a.
Is there a way to specify the jssecacerts file in the jnlp file so Web Start will recognize it?
Thanks for any help,
JohnI think I have an answer:
1) Package the truststore file in the client JAR file
2) Add code to the client to copy the truststore from the JAR file to the client hard drive
3) Add code to the client to set the truststore properties to refer to the file on the client hard drive
<<code>>
private void setupTrustStore() {
try {
// save truststore file to local disk
File homeDir = new File(System.getProperty("user.home"));
File trustStoreFile = new File(homeDir, "mytruststore");
URL url =
this.getClass().getClassLoader().getResource("mytruststore");
BufferedInputStream in =
new BufferedInputStream(url.openStream());
BufferedOutputStream out =
new BufferedOutputStream(new FileOutputStream(trustStoreFile));
while(true) {
int data = in.read();
if(data < 0) break;
out.write(data);
in.close();
out.flush();
out.close();
// set truststore properties
System.setProperty("javax.net.ssl.trustStore",
trustStoreFile.getPath());
System.setProperty("javax.net.ssl.trustStorePassword", "mypasswd");
} catch(Exception e) {
e.printStackTrace();
} -
Problem with socket factory in RMI over SSL in proxy setup
Hi
The following is the setup I have;
1. I have an application in which the server is running in https mode and I have exported my remote objects using ServerSocketFactory and ClientSocketFactory which will create SSLServerSocket and SSLSocket respectively.
2. When I run my connect a client to this server and invoke some method on any of the remote objects, I get the following exception:
java.lang.NullPointerException
at sun.rmi.transport.tcp.TCPConnection.getOutputStream(Unknown Source)
at sun.rmi.transport.tcp.TCPChannel.createConnection(Unknown Source)
at sun.rmi.transport.tcp.TCPChannel.newConnection(Unknown Source)
at sun.rmi.server.UnicastRef.invoke(Unknown Source)
at com.acme.ems.server.app.main.TestSumImpl_Stub.addOne(Unknown Source)
at com.acme.ems.client.app.tools.EMSHaSftpSettings.okButtonActionPerformed(EMSHaSftpSettings.java:216)
at com.acme.ems.client.app.tools.EMSHaSftpSettings.access$000(EMSHaSftpSettings.java:28)
at com.acme.ems.client.app.tools.EMSHaSftpSettings$1.actionPerformed(EMSHaSftpSettings.java:183)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.Dialog$1.run(Unknown Source)
at java.awt.Dialog$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.Dialog.show(Unknown Source)
at com.acme.ems.client.utility.BasicDialog.showContainerInsideDialog(BasicDialog.java:103)
at com.acme.ems.client.app.tools.EMSHaSftpSettings.init(EMSHaSftpSettings.java:322)
at com.adventnet.nms.util.ConsumeKnownEvents.showTheFrame(ConsumeKnownEvents.java:197)
at com.adventnet.nms.util.ConsumeKnownEvents.actionPerformed(ConsumeKnownEvents.java:103)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.AbstractButton.doClick(Unknown Source)
at javax.swing.plaf.basic.BasicMenuItemUI.doClick(Unknown Source)
at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
My understanding is, when invoking remote object's method from the client, a the clientSocketFactory implementation will be called and an SSLSocket will be created for communication between remote server and client. In this case,my guess is somehow the createSocket() method of the clientSocketFactory is returning Null.The question is why?????Any help soon is appreciated.
Note that , we are doing this in a proxy set-up.I've made a similer post.
I was able to get it working by doing the following
Make sure to add and equals to your RMISocketFactory's
something at least this
public boolean equals(Object obj)
return obj != null && obj.getClass() == this.getClass();
I had to enable the follong cypher suite SSL_DH_anon_WITH_RC4_128_MD5
but this leads to a possible man in the middle attack.
I posted to try and get that resolved. (see ssl lockup on handshake) -
[Java 1.4.2] Rmi over SSL : bind/rebind hangs
Hello everybody,
I am trying to test client/server communication with RMI over an SSL layer, as explained here .
Here is my server class :
package rmitest.server;
import java.rmi.registry.*;
import java.rmi.*;
import rmitest.client.RMISSLClientSocketFactory;
import java.rmi.server.RMIClientSocketFactory;
import java.rmi.server.RMIServerSocketFactory;
import java.rmi.registry.LocateRegistry;
import java.rmi.server.*;
import java.io.IOException;
public class Hello extends UnicastRemoteObject implements HelloInterface
public Hello(RMIClientSocketFactory csf, RMIServerSocketFactory ssf) throws RemoteException
//super();
super(1099, csf, ssf);
System.out.println("Initialisation de Hello OK.");
public int sayHello()
try {
System.out.println("Hello, World !");
return 0;
catch (Exception e)
e.printStackTrace();
return 1;
public static void main(String[] args)
try
System.setSecurityManager(new RMISecurityManager());
RMIClientSocketFactory csf = new RMISSLClientSocketFactory();
RMIServerSocketFactory ssf = new RMISSLServerSocketFactory();
HelloInterface myHello = new Hello(csf, ssf);
Registry reg = LocateRegistry.getRegistry("lat203", 1099, csf);
reg.rebind("HelloInterface", myHello);
System.out.println("The server is ready.");
catch (RemoteException e)
e.printStackTrace();
catch (Exception e)
e.printStackTrace();
}My problem is, the program hangs in the rebind(...) instruction. Would anybody have a clue ?
Here is the stack just before it hangs :
{codeThread [main] (Stepping)
UnicastRef2(UnicastRef).newCall(RemoteObject, Operation[], int, long) line: 313
RegistryImpl_Stub.rebind(String, Remote) line: not available
Hello.main(String[]) line: 56
Thread [Thread-1] (Running) }Thank you by advance.
Edited by: le_barde on Oct 17, 2008 6:45 AMOk I settled that in the client socket factory. Here is what it looks like :
package com.infotel.rmitest.client;
import java.io.*;
import java.net.*;
import java.rmi.server.*;
import javax.net.ssl.*;
import sun.security.util.Debug;
public class RMISSLClientSocketFactory
implements RMIClientSocketFactory, Serializable {
public Socket createSocket(String host, int port)
throws IOException
SSLSocketFactory factory = (SSLSocketFactory)SSLSocketFactory.getDefault();
SSLSocket socket = (SSLSocket)factory.createSocket(host, port);
String[] strtab = {"TLSv1", "SSLv3"};
socket.setEnabledProtocols(strtab);
System.out.println("---> before handshake");
socket.startHandshake();
System.out.println("---> after handshake.");
return socket;
public int hashCode()
return getClass().hashCode();
public boolean equals(Object obj)
if (obj == this)
return true;
else if (obj == null || getClass() != obj.getClass())
return false;
return true;
}I haven't modified my Server socket factory.
The client still hangs but the messages are different as I have removed the SSLv2ClientHello :
>
(lots of trusted certificates...)
init context
trigger seeding of SecureRandom
done seeding SecureRandom
---> before handshake
%% No cached client session
*** ClientHello, TLSv1
RandomCookie: GMT: 1225125230 bytes = { 150, 101, 222, 255, 92, 207, 52, 204, 48, 37, 184, 89, 56, 39, 207, 230, 8, 210, 1, 235, 137, 48, 202, 242, 203, 4, 61, 91 }
Session ID: {}
Cipher Suites: [SSL_RSA_WITH_RC4_128_MD5, SSL_RSA_WITH_RC4_128_SHA, TLS_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_DSS_WITH_AES_128_CBC_SHA, SSL_RSA_WITH_3DES_EDE_CBC_SHA, SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA, SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA, SSL_RSA_WITH_DES_CBC_SHA, SSL_DHE_RSA_WITH_DES_CBC_SHA, SSL_DHE_DSS_WITH_DES_CBC_SHA, SSL_RSA_EXPORT_WITH_RC4_40_MD5, SSL_RSA_EXPORT_WITH_DES40_CBC_SHA, SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA, SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA]
Compression Methods: { 0 }
[write] MD5 and SHA1 hashes: len = 73
0000: 01 00 00 45 03 01 49 06 ED 6E 96 65 DE FF 5C CF ...E..I..n.e..\.
0010: 34 CC 30 25 B8 59 38 27 CF E6 08 D2 01 EB 89 30 4.0%.Y8'.......0
0020: CA F2 CB 04 3D 5B 00 00 1E 00 04 00 05 00 2F 00 ....=[......../.
0030: 33 00 32 00 0A 00 16 00 13 00 09 00 15 00 12 00 3.2.............
0040: 03 00 08 00 14 00 11 01 00 .........
main, WRITE: TLSv1 Handshake, length = 73
(Here the client hangs; this is the point when I kill the JVM)>
Now my server output (I don't give the verbose certificates):
>
trigger seeding of SecureRandom
done seeding SecureRandom
Finalizer, called close()
Finalizer, called closeInternal(true)
Finalizer, SEND TLSv1 ALERT: warning, description = close_notify
Finalizer, WRITE: TLSv1 Alert, length = 2
Finalizer, called close()
Finalizer, called closeInternal(true)
Finalizer, SEND TLSv1 ALERT: warning, description = close_notify
Finalizer, WRITE: TLSv1 Alert, length = 2
Finalizer, called close()
Finalizer, called closeInternal(true)
Finalizer, SEND TLSv1 ALERT: warning, description = close_notify
Finalizer, WRITE: TLSv1 Alert, length = 2
Finalizer, called close()
Finalizer, called closeInternal(true)
Finalizer, SEND TLSv1 ALERT: warning, description = close_notify
Finalizer, WRITE: TLSv1 Alert, length = 2
Finalizer, called close()
Finalizer, called closeInternal(true)
Finalizer, SEND TLSv1 ALERT: warning, description = close_notify
Finalizer, WRITE: TLSv1 Alert, length = 2
Finalizer, called close()
Finalizer, called closeInternal(true)
Finalizer, SEND TLSv1 ALERT: warning, description = close_notify
Finalizer, WRITE: TLSv1 Alert, length = 2
Finalizer, called close()
Finalizer, called closeInternal(true)
Finalizer, SEND TLSv1 ALERT: warning, description = close_notify
Finalizer, WRITE: TLSv1 Alert, length = 2
Finalizer, called close()
Finalizer, called closeInternal(true)
Finalizer, SEND TLSv1 ALERT: warning, description = close_notify
Finalizer, WRITE: TLSv1 Alert, length = 2
Finalizer, called close()
Finalizer, called closeInternal(true)
Finalizer, SEND TLSv1 ALERT: warning, description = close_notify
Finalizer, WRITE: TLSv1 Alert, length = 2
Finalizer, called close()
Finalizer, called closeInternal(true)
Finalizer, SEND TLSv1 ALERT: warning, description = close_notify
Finalizer, WRITE: TLSv1 Alert, length = 2
Finalizer, called close()
Finalizer, called closeInternal(true)
Finalizer, SEND TLSv1 ALERT: warning, description = close_notify
Finalizer, WRITE: TLSv1 Alert, length = 2
* SERVER INITIALIZED *
Finalizer, called close()
Finalizer, called closeInternal(true)
Finalizer, SEND TLSv1 ALERT: warning, description = close_notify
Finalizer, WRITE: TLSv1 Alert, length = 2
Finalizer, called close()
Finalizer, called closeInternal(true)
Finalizer, SEND TLSv1 ALERT: warning, description = close_notify
Finalizer, WRITE: TLSv1 Alert, length = 2
Finalizer, called close()
Finalizer, called closeInternal(true)
Finalizer, SEND TLSv1 ALERT: warning, description = close_notify
Finalizer, WRITE: TLSv1 Alert, length = 2
etc. -
Oracle + SSL + Applets
I have setup a connection that works fine without SSL, the client connects to the firewall which has Apache running as a reverse proxy. Clients gets "tunneled" to OAS and all works fine.
When I activate SSL and after the exchange of certificates, client still gets to the main page of OAS, downloads the html, the graphic but no petition is made for the applet.
The client just stops.
An extract of the relevant HTML
pluginurl="jinit115211.exe" type="application/x-jinit-applet;version=1.1.5.21.1"
code="oracle.forms.uiClient.v1_4.engine.Main"
codebase="/OA_JAVA/" archive="/OA_JAVA/oracle/apps/fnd/jar/fndewt.jar, /OA_JAVA/oracle/apps/fnd/jar/fndforms.jar, /OA_JAVA/oracle/apps/fnd/jar/fndaol.jar,
None of this .jar are downloaded using SSL, everything works fine without SSL.
Any hint?Sorry , I just talked with Oracle Support, JInitiator won't work with SSL, they told me I need to upgrade some Oracle products to work with HTTPS.
-
Does SSL usage require dynamic stub loading? I have worked without dynamic stub loading and would like to have this unchanged when adding SSL encryption.
SSL has nothing to do with RMI dynamic stub loading one way or the other.
-
Hi,
I have a simple RMI Callback Client/Sever Application, where the client-side is inplemented in a JApplet. All works fine by local tests (client and server on my machine), but when the client is on remote machine I got an security exception or error (ClassFormatError(Bad magic number)).
How can I make my client/server work?No, I'm testing inside LAN, no firewalls, no proxys, no nothing. Just a server and the client (applet).
And this strange error, I'll paste the entire stack trace:
java.lang.ClassFormatError: Client (Bad magic number)
at java.lang.ClassLoader.defineClass0(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at sun.applet.AppletClassLoader.findClass(Unknown Source)
at sun.plugin.security.PluginClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.applet.AppletClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.applet.AppletClassLoader.loadCode(Unknown Source)
at sun.applet.AppletPanel.createApplet(Unknown Source)
at sun.plugin.AppletViewer.createApplet(Unknown Source)
at sun.applet.AppletPanel.runLoader(Unknown Source)
at sun.applet.AppletPanel.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
On my local machine oll works fine... is the problem the applet's "sandbox"? Or...?
Any ideas are welcome
Thanks -
I was wondering if there is documentation on the performance hit that I can expect when converting my RMI based app from non-SSL to SSL. I cannot find any information on this.
What have people experienced?
Thank you.You can expect a long delay, 10-20 seconds, when you implicitly or explictly create a javax.net.ssl.SSLContext, due to seeding the initial SecureRandom(). This should only happen once: you can take it out of line of the communications by creating and initializing the SSLContext during startup; you can do this in a separate thread. You should expect new connections to be several times as slow due to the SSL handshake, and you should expect transmission times to be several times what they are now due to encryption. Finally, because of all the extra computation you should then expect your servers to be much more busy, which will increase queue lengths and therefore latencies at clients.
By 'several' I mean in the range 2 to 10, but it all depends on your hardware. You should consider using an HSM at the server. -
Deployment files for IIOP/SSL applets against 8i
I was reading 8i's docs on SSL authentication with IIOP clients.
I am particularly interested in deployment issues with regards to
java applets (e.g.: what JAR files and others needs to be
installed on the client machine).
The 8i EJB/CORBA doc mentioned that you need vbj30ssl.jar
installed on the cleint for the applet to communicate via
IIOP/SSL.
Then, on the other hand, reading OAS 4.0.7 documentation, it
mentioned that for clients to communicate via IIOP/SLL to OAS,
the following files are needed:
* vbjorb.jar (for basic IIOP)
* vbj30ssl.jar (for IIOP/SSL)
... and the following files for win clients:
* vbj30ssl.dll for Win/Netscape
* vbmissl.dll for Win/IE
Since 8i and OAS basically use the same ORB (Visibroker) and the
same version of SSL and visibrokker version, I am confused as to
what are really needed on the client side.
My questions are:
1) Do the windows client browsers REALLY need vbj30ssl.dll and
vbmissl.dll for IIOP/SSL to work??? Neither of these DLLs are
mentioned in 8i doc nor with JDeveloper doc, only in OAS doc.
2) If these DLLs are needed, they are not included with
JDeveloper nor with OAS anyway. Meaning I have to buy the
visibroker SSL pack (version 3.2).
3) Has anyone done work with applets talking via IIOP/SSL to
OAS/8i?
4) I am concerned about how to make the client talk via IIOP in
the first place, since applets cannot talk to another machine
except from where it was downloaded (I am planning on 8i and
Apache on separate machines). Our network guys mentioned that all
we need is a proxy server so that, as far as the applet is
concerned, it is talking to the same host as where it was
downloaded, even though the proxy send the actual IIOP packets to
the 8i host.
Thanks,
John Salvo
nullJesus,
I'm not sure about the client-DLL item you mentioned in your
original note.
For applets, you need to deploy everything that is required by
the applet at design-time. In your JDeveloper project where you
have designed the applet, check Project Properties to view the
list of libraries that were used by the project.
To find out what archives make up that library, click the
Libraries button. Select the library you want to look at, and
it's source archives or directory paths will be listed in the
Classpath field. Note that some libraries are made up of more
than one archive.
If your applet compiles and runs within JDeveloper, then you need
to make sure that everything your applet has access to within
JDeveloper is also available at runtime.
This is probably a little more reliable a method than relying on
the docs.
Laura
Jesus M. Salvo Jr. (guest) wrote:
: Okay, JDeveloper also has aurora_client.jar, vbjorb.jar, and
: vbj30ssl.jar. Do ALL of these needs to be deployed with my
applet
: for IIOP/SSL to work??
: Jesus M. Salvo Jr. (guest) wrote:
: : I was reading 8i's docs on SSL authentication with IIOP
: clients.
: : I am particularly interested in deployment issues with
regards
: to
: : java applets (e.g.: what JAR files and others needs to be
: : installed on the client machine).
: : The 8i EJB/CORBA doc mentioned that you need vbj30ssl.jar
: : installed on the cleint for the applet to communicate via
: : IIOP/SSL.
: : Then, on the other hand, reading OAS 4.0.7 documentation, it
: : mentioned that for clients to communicate via IIOP/SLL to
OAS,
: : the following files are needed:
: : * vbjorb.jar (for basic IIOP)
: : * vbj30ssl.jar (for IIOP/SSL)
: : ... and the following files for win clients:
: : * vbj30ssl.dll for Win/Netscape
: : * vbmissl.dll for Win/IE
: : Since 8i and OAS basically use the same ORB (Visibroker) and
: the
: : same version of SSL and visibrokker version, I am confused as
: to
: : what are really needed on the client side.
: : My questions are:
: : 1) Do the windows client browsers REALLY need vbj30ssl.dll
and
: : vbmissl.dll for IIOP/SSL to work??? Neither of these DLLs are
: : mentioned in 8i doc nor with JDeveloper doc, only in OAS doc.
: : 2) If these DLLs are needed, they are not included with
: : JDeveloper nor with OAS anyway. Meaning I have to buy the
: : visibroker SSL pack (version 3.2).
: : 3) Has anyone done work with applets talking via IIOP/SSL to
: : OAS/8i?
: : 4) I am concerned about how to make the client talk via IIOP
in
: : the first place, since applets cannot talk to another machine
: : except from where it was downloaded (I am planning on 8i and
: : Apache on separate machines). Our network guys mentioned that
: all
: : we need is a proxy server so that, as far as the applet is
: : concerned, it is talking to the same host as where it was
: : downloaded, even though the proxy send the actual IIOP
packets
: to
: : the 8i host.
: : Thanks,
: : John Salvo
null -
I have spent couple of days trying to make my client/server application to work. I use RMI and both sides are ready and do execute, but I can't make the client receive the Stub file. All I get is a ClassNotFoundException telling me that the "myproject.server.MyImpl_Stub.class" can't be found. What confuses me is that it is searched from the server (Amongst the other server classes!?), but I don't seem to be able to change (or point) the location where it should be looked for...
I just read that RMI is primarly for applets, and now I'm feeling a bit worried if I can't make my application work at all... This is (soon to be was) supposed to be my course project and I have worked pretty hard on this.
I really hope that the problem is only with setting the codebase. If so, I hope someone could tell me how to point the right place* from the server for the RmiRegistry -> client. I have also noticed that RMIClassLoader class is somehow related to this topic. Should it be used somewhere? How?
* If the path is for example: c:\java\my_project\server\
I do really appreciate all the help and advice I can get. Thank you in advance!
- Ville
do really appreciate all the help and advice I can get. Thank you in advance!
- VilleDude, why are you just copying other people's posts?
-
I have spent couple of days trying to make my client/server application to work. I use RMI and both sides are ready and do execute, but I can't make the client receive the Stub file. All I get is a ClassNotFoundException telling me that the "myproject.server.MyImpl_Stub.class" can't be found. What confuses me is that it is searched from the server (Amongst the other server classes!?), but I don't seem to be able to change (or point) the location where it should be looked for...
I just read that RMI is primarly for applets, and now I'm feeling a bit worried if I can't make my application work at all... This is (soon to be was) supposed to be my course project and I have worked pretty hard on this.
I really hope that the problem is only with setting the codebase. If so, I hope someone could tell me how to point the right place* from the server for the RmiRegistry -> client. I have also noticed that RMIClassLoader class is somehow related to this topic. Should it be used somewhere? How?
* If the path is for example: c:\java\my_project\server\ --> java.rmi.server.codebase=???
I do really appreciate all the help and advice I can get. Thank you in advance!
- VilleI have already read some tutorials. And I have understood that the client is the one which needs the stub(s), but the server is the one to provide it/them. Right? I'm not sure what you mean by starting the server separately with the stubs, but that is, what I think, I have done.
I copied my server classes so that they where with client at corresponding place given by ClassNotFoundException. Now I got ClassCastException!? I think that this proves that the instance sent by rmiregistry is telling the client to ask for the stub from the wrong place.
This is what I think how stubs are used and what they are...
Server registers an remote object for rmiregistry with Naming.(re)bind(). Rmiregistry then gives an instance (of this objects stub) for the client when it does its Naming.lookup(). After that client requests the stub.class from given location (which is given by the servers codebase setting [only for applets??]), and then the stub.class is downloaded for the client. When this is done, the stub is used by the client to make calls for the servers remote object, to do what the client asks it to do (if allowed).
Is this far from the truth? -
Hi, I am learning RMI whit SSL and I have a problem, I cant run the example form the RMI SSL tutorials.
I can run the server, and bind the object but the client throw this exception:
HelloClient exception: error during JRMP connection establishment; nested exception is:
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
java.rmi.ConnectIOException: error during JRMP connection establishment; nested exception is:
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:274)
at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:171)
at sun.rmi.server.UnicastRef.newCall(UnicastRef.java:306)
at sun.rmi.registry.RegistryImpl_Stub.lookup(Unknown Source)
at HelloClient.main(HelloClient.java:60)...
can you help me???Hi,
Dis you solved the probelm ? I am facing the similar exception. I am using jre1.5.0_11.
Regards,
Titas Mutsuddy
Maybe you are looking for
-
To open a file where the filename is dynamic ......
String logfile=request.getParameter("value"); out.println(logfile); FileInputStream fs1 = new FileInputStream("/opt/Abhishek/software/tomcat/webapps/AMS/Backend/History/"); DataInputStream in1 = new DataInputStream(fs1
-
Function module/BAPI for ATP Material
Hi All, Is there any function module/BAPI for ATP(Available-to-Promise check) for Material. 1) Production order from one plant 2) Scheduling agreement from another plant. Regards, Srinivas.
-
The Notes Management functionality in my planning book does not seem to work correctly. I can not add a note (display note) as described in the directions below. I get a message stating: "select a point in the graphic" although if I switch from tab
-
Audio book CD importing issues
Importing Audio books from CD..I'm very confused.. I have imported a BUNCH of audio books to my itunes library. I thought I had all of them saved in the audio books section, with each one labeled by author, book name, disc 1 of_, read by, and anythin
-
I have removed a lot of apps, but to access anything Facebook, Internet, Mail, Twitter, etc...my phone is incredibly slow. I can only keep approx. 50 pictures at a time. I do have a lot of music on my phone. Would that slow it down this much?