Hi,
I think you have to set java permission on applet side. Probably need to
sign the applet.
Also, when doing a remote lookup you need to obtain the remote interface
(QdbBeanRemote), not the local.


Paolo 


-----Messaggio originale-----
Da: mgyh [mailto:mgi...@comsys.com] 
Inviato: venerdì 13 febbraio 2009 17.27
A: users@openejb.apache.org
Oggetto: Re: Cannot instantiate class:
org.openejb.client.LocalInitialContextFactory


Your suggestions did get me past my initial problem.  I guess that I did not
realize that the applet was running in a separate VM.  I don't think that I
completely understand that.  I'll do some reading on the side to get a
better grasp of this.

However, once I made these changes, I get an AccessControlException as
follows:

java.security.AccessControlException: access denied
(java.util.PropertyPermission /QdbBeanLocal read)

could you offer suggestions to get past this?  QdbBeanLocal is my JNDI name
for my bean, which is located successfully from jsp.  I have tried the
following unsuccessfully:
1) I tried the JNDI name QdbBeanRemote also
2) I added the following permissions to Tomcat's catalina.policy file
    permission  org.apache.naming.JndiPermission 
"jndi://localhost/QdbBean", "read";
    permission  org.apache.naming.JndiPermission 
"jndi://localhost/QdbBeanLocal", "read";
    permission  org.apache.naming.JndiPermission 
"jndi://localhost/QdbBeanRemote", "read";
3) restarted Tomcat

no luck. I am not particularly good at understanding security policy.  What
am I missing?



KMalhi wrote:
> 
> Hi,
> 
> Here is what you would need to do to make it work. Firstly, you would need
> to add the following jars in the root directory of your webapp --
> javaee-api.jar and  openejb-client.jar (you can copy these from
> <Tomcat-install>/webapps/openejb/lib ).
> Update the Applet code as shown (notice that we are not using
> LocalInitialContextFactory here)
> 
>             Properties props = new Properties();
> 
>
props.put(Context.INITIAL_CONTEXT_FACTORY,"org.apache.openejb.client.RemoteI
nitialContextFactory");
>             props.put(Context.PROVIDER_URL,    "
> http://127.0.0.1:8080/openejb/ejb";);
>             Context ctx = new InitialContext(props);
> Update the HTML as shown -- notice the archive attribute which has the
> comma
> separated list of jars needed by the applet (the version of jars on your
> machine might be different than mine- but that should not matter)
> <applet
>  codebase = "."
>  code     = "qdbapplets.MyApplet.class"
>  name     = "TestApplet"
>  width    = "400"
>  height   = "300"
>  hspace   = "0"
>  vspace   = "0"
>  align    = "top"
> archive="openejb-client-3.1.1-SNAPSHOT.jar,javaee-api-5.0-1.jar"
>>
> </applet>
> 
> 
> 
>> What is the
>> > difference between the successful JSP code and the unsuccessful java
>> > applet?  I did add the openejb-core-3.1.jar to my classpath, but this
>> > didn't work.  Any ideas?
>>
> JSP is running in the same VM as openejb, hence you can use
> LocalInitialContextFactory. Applet runs in a separate VM, hence it would
> need RemoteInitialContextFactory
> 
> In order to get more information, please refer to this page --
> http://openejb.apache.org/3.0/clients.html
> 
> -- 
> Karan Singh Malhi
> 
> 

-- 
View this message in context:
http://www.nabble.com/Cannot-instantiate-class%3A-org.openejb.client.LocalIn
itialContextFactory-tp21965469p21999832.html
Sent from the OpenEJB User mailing list archive at Nabble.com.


Reply via email to