RE: Applet Accessing RMI or TCP located on another server
"Tim Anderson" <[email protected]> Fri, 5 May 2006 09:27:51 +1000
| Newsgroups | gmane.comp.java.openjms.user |
|---|---|
| Message-ID | <[email protected]> |
The URL you are using to connect to the server doesn't match that indicated
by the exception.
By default, the tcp connector listens on port 3035.
The rmi connector listens on port 1099.
To connect using tcp:
properties.put(Context.PROVIDER_URL, "tcp://localhost:3035/");
To connect using rmi:
properties.put(Context.PROVIDER_URL, "rmi://localhost:1099/");
The configuration in openjms.xml for tcp:
<TcpConfiguration port="3035"/>
The configuration in openjms.xml for rmi:
<RmiConfiguration registryPort="1099"/>
-Tim
_____
From: openjms-user-admin-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
[mailto:openjms-user-admin-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org] On Behalf Of
[email protected]
Sent: Thursday, 4 May 2006 1:35 AM
To: [email protected]
Subject: [openjms-user] Applet Accessing RMI or TCP located on another
server
I know there have many discussions about trying to get around the firewall
so the client can connect to the server. However, I'm still confused.
I created an applet that accesses the openJMS server with these followings
properties:
Hashtable properties = new Hashtable();
properties.put(Context.INITIAL_CONTEXT_FACTORY,
"org.exolab.jms.jndi.InitialContextFactory");
properties.put(Context.PROVIDER_URL, "tcp://localhost:3035/");
....
// create the JNDI initial context.
context = new InitialContext(properties);
Now, the applet works if I open it from computer,
C:\java\jms\new_openJMS\web\anew\4newhtml.html.
However, when I run this page from my webserver at,
http://localhost:8084/new_openJMS/anew/4newhtml.html, I get the following
error:
javax.naming.CommunicationException: Failed to get registry service for URL:
tcp://localhost:1035/ [Root exception is java.rmi.ConnectIOException: Failed
to create connection; nested exception is:
org.exolab.jms.net.connector.ConnectException: Failed to connect to
localhost:1035]
I changed my URL to rmi://localhost:3035. Again, the local copy of the
applet is able to connect to openJMS but the applet that is ran from my web
server doesn't work.
Here's my full stack trace:
basic: Registered modality listener
liveconnect: Invoking JS method: document
liveconnect: Invoking JS method: URL
basic: Referencing classloader: sun.plugin.ClassLoaderInfo@1321f5,
refcount=1
basic: Added progress listener: sun.plugin.util.GrayBoxPainter@15c2843
basic: Loading applet ...
basic: Initializing applet ...
basic: Starting applet ...
network: Connecting http://localhost:8084/new_openJMS/anew/jndi.properties
with proxy=DIRECT
network: Connecting
http://localhost:8084/new_openJMS/anew/commons-logging.properties with
proxy=DIRECT
network: Connecting
http://localhost:8084/new_openJMS/anew/META-INF/services/org.apache.commons.
logging.LogFactory with proxy=DIRECT
network: Connecting http://localhost:8084/new_openJMS/anew/log4j.xml with
proxy=DIRECT
network: Connecting http://localhost:8084/new_openJMS/anew/log4j.xml with
proxy=DIRECT
network: Connecting
http://localhost:8084/new_openJMS/anew/org/apache/log4j/PatternLayoutBeanInf
o.class with proxy=DIRECT
network: Connecting
http://localhost:8084/new_openJMS/anew/org/apache/log4j/PatternLayoutBeanInf
o.class with proxy=DIRECT
network: Connecting
http://localhost:8084/new_openJMS/anew/org/apache/log4j/LayoutBeanInfo.class
with proxy=DIRECT
network: Connecting
http://localhost:8084/new_openJMS/anew/org/apache/log4j/LayoutBeanInfo.class
with proxy=DIRECT
network: Connecting socket://localhost:1035 with proxy=DIRECT
javax.naming.CommunicationException: Failed to get registry service for URL:
tcp://localhost:1035/ [Root exception is java.rmi.ConnectIOException: Failed
to create connection; nested exception is:
org.exolab.jms.net.connector.ConnectException: Failed to connect to
localhost:1035]
at
org.exolab.jms.jndi.InitialContextFactory.getInitialContext(InitialContextFa
ctory.java:146)
at javax.naming.spi.NamingManager.getInitialContext(Unknown Source)
at javax.naming.InitialContext.getDefaultInitCtx(Unknown Source)
at javax.naming.InitialContext.init(Unknown Source)
at javax.naming.InitialContext.<init>(Unknown Source)
at Example_AWT.Send_n_Browse(Example_AWT.java:108)
at Example_AWT.btnOK_actionPerformed(Example_AWT.java:84)
at Example_AWT$1.actionPerformed(Example_AWT.java:64)
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.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(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)
Caused by: java.rmi.ConnectIOException: Failed to create connection; nested
exception is:
org.exolab.jms.net.connector.ConnectException: Failed to connect to
localhost:1035
at org.exolab.jms.net.orb.Locator.getProxy(Locator.java:137)
at org.exolab.jms.net.orb.Locator.getRegistry(Locator.java:103)
at org.exolab.jms.net.orb.DefaultORB.getRegistry(DefaultORB.java:267)
at org.exolab.jms.client.net.SharedORB.getRegistry(SharedORB.java:121)
at
org.exolab.jms.jndi.InitialContextFactory.getInitialContext(InitialContextFa
ctory.java:144)
... 30 more
Caused by: org.exolab.jms.net.connector.ConnectException: Failed to connect
to localhost:1035
at
org.exolab.jms.net.socket.SocketManagedConnection.createSocketProtected(Sock
etManagedConnection.java:266)
at
org.exolab.jms.net.socket.SocketManagedConnection.createSocket(SocketManaged
Connection.java:182)
at
org.exolab.jms.net.socket.SocketManagedConnection.<init>(SocketManagedConnec
tion.java:114)
at
org.exolab.jms.net.tcp.TCPManagedConnection.<init>(TCPManagedConnection.java
:75)
at
org.exolab.jms.net.tcp.TCPManagedConnectionFactory.createManagedConnection(T
CPManagedConnectionFactory.java:98)
at
org.exolab.jms.net.connector.DefaultConnectionPool.createManagedConnection(D
efaultConnectionPool.java:221)
at
org.exolab.jms.net.connector.AbstractConnectionManager.allocateConnection(Ab
stractConnectionManager.java:140)
at
org.exolab.jms.net.connector.AbstractConnectionFactory.getConnection(Abstrac
tConnectionFactory.java:167)
at
org.exolab.jms.net.connector.AbstractConnectionManager.getConnection(Abstrac
tConnectionManager.java:208)
at org.exolab.jms.net.orb.Locator.getProxy(Locator.java:131)
... 34 more
network: Connecting socket://10.50.14.221:1099 with proxy=DIRECT
I know the solution may involve signing the applet, but I don't know how to
do that. Thanks, any help is appreciated.
Ms. Akilah McIntyre