Hallo,
I think my problem is very simple. I like to access a RMI Server via an EJB (the bean
acts as a client). The reason for doing this is that I need to load a native library
within a Java API. I know that this is not allowed within an EJB. So I created a RMI
Server which handles this task. Since I'm an EJB newbee I first created a small
helloWorld example for testing the connection.
Here is the RMI Server:
package helloServer;
import java.rmi.server.*;
import java.rmi.*;
import rinterface.HelloServer;
public class HelloImpl extends UnicastRemoteObject implements HelloServer {
public HelloImpl() throws RemoteException {
}
public String sayHello() {
return "Hello World";
}
public static void main(String args[]) {
try {
Naming.rebind("rmi://localhost:2001/hello-server", new HelloImpl());
} catch(Exception ex) {
ex.printStackTrace();
}
}
}
The stub class is transmitted dynamically via a small http server. There is no problem
in accessing the RMI server with a "normal" RMI java client.
But when I try to access the HelloImpl RMI Server with an EJB an exception is
generated. The ejb code is the following:
try {
System.setSecurityManager(new RMISecurityManager());
System.out.println("Security Manager initialisiert");
InitialContext serverContext = new InitialContext();
Object obj =
serverContext.lookup("java:comp/env/NamingFactory");//NamingFactory is an env variable
with
//the value com.sun.jndi.rmi.registry.RegistryContextFactory
if (obj != null) {
this.namingFactory = obj.toString();
}
obj = serverContext.lookup("java:comp/env/NamingURL"); //NamingURL has the
value rmi://localhost:2001
if (obj != null) {
this.namingUrl = obj.toString();
}
Hashtable lTable = new Hashtable();
lTable.put(Context.INITIAL_CONTEXT_FACTORY, this.namingFactory);
lTable.put(Context.PROVIDER_URL, this.namingUrl);
Context remoteContext = new InitialContext(lTable);
System.out.println("InitialContext initialisiert");
obj = remoteContext.lookup("hello-server");
rinterface.HelloServer helloServer = (rinterface.HelloServer)
PortableRemoteObject.narrow(obj, rinterface.HelloServer.class);
String result = helloServer.sayHello();
System.out.println(result);
}
catch(Exception ex) {
ex.printStackTrace();
}
The following exception is generated with the statement "obj =
remoteContext.lookup("hello-server");":
16:40:21,843 INFO [STDOUT] InitialContext initialisiert
16:40:21,843 ERROR [STDERR] java.security.AccessControlException: access denied
(java.net.SocketPermission 127.0.0.1:2001 connect,resolve)
16:40:21,843 ERROR [STDERR] at
java.security.AccessControlContext.checkPermission(AccessControlContext.java:269)
16:40:21,843 ERROR [STDERR] at
java.security.AccessController.checkPermission(AccessController.java:401)
16:40:21,843 ERROR [STDERR] at
java.lang.SecurityManager.checkPermission(SecurityManager.java:524)
16:40:21,859 ERROR [STDERR] at
java.lang.SecurityManager.checkConnect(SecurityManager.java:1026)
16:40:21,859 ERROR [STDERR] at java.net.Socket.connect(Socket.java:446)
16:40:21,859 ERROR [STDERR] at java.net.Socket.connect(Socket.java:402)
16:40:21,859 ERROR [STDERR] ...
I can produce the same exception with a normal Java client, if I don't refer to a
java.policy file with the argument -Djava.security.policy when I start the client.
So here is my question: Where and how do I have to specify the security policy for
this case in JBOSS 3.2.3. I wasn't able to find anything about this special topic.
Perhaps I missed something, because I'm an EJB newbee.
I would be very pleased, if somebody knows an answer. I'm searching for a solution for
quite a while.
Featured Articles
Building Dynamic Web sites with WebSphere Studio
Building database applications with WebSphere and DB2
Easy, breezy EJB tooling in WebSphere Studio
Building a J2EE application with Lotus Domino and WebSphere
Related Links
EJB FAQ
EJB Forum
Sun's EJB FAQ
EJBNow.com
O'Reilly Book by guru Richard Monson-Haefel
Wish List
Features
About jGuru
Contact Us
jGuru Privacy Policy Copyright/Legal Notices
View the original post :
http://www.jboss.org/index.html?module=bb&op=viewtopic&p=3837771#3837771
Reply to the post :
http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=3837771
-------------------------------------------------------
This SF.Net email is sponsored by the new InstallShield X.
>From Windows to Linux, servers to mobile, InstallShield X is the one
installation-authoring solution that does it all. Learn more and
evaluate today! http://www.installshield.com/Dev2Dev/0504
_______________________________________________
JBoss-user mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-user