users@glassfish.java.net

Re: connectionfactory lookup through appletbrowser

From: <glassfish_at_javadesktop.org>
Date: Mon, 07 Jun 2010 16:38:58 PDT

after further investigation
i made the applet running successfull with the appletviewer comand
what i did was to grant all security permission to the policy file

now the matter is : how to get it work on webbrowser ?

i did change the code for the html

for those who understand a little bit french : hier is all the history:


bon bref ....
cependant J'ai un petit souci a executer properly le code d'un standalone applet client.
en fait c'est une applet qui effectue un jndi lookup aux ressource jms
( l'applet recois des message qui sont ensuite entassées dans une queue pr apres a l'aide d'une MDB etre refilé a un topic écouté par d' autres clients )


voici un snippet du code applet


[code]

public class myApplet extends JApplet {

// declaration des panels textfield, listener et blablaba ...


private void Lookup(java.awt.event.ActionEvent evt) {

                try {

InitialContext ctx = new InitialContext();

ConnectionFactory factory = (ConnectionFactory) ctx
                                        .lookup("ConnectionFactory");

                        javax.jms.Queue queue = (javax.jms.Queue) ctx
                                        .lookup("queue/testQueue");

/**
do your thang here ...
....
*/
                }
catch(...) {//traite tes exceptions here ...}

}
                        
}
[/code]

le html code de l'applet est simple

[code]
<html>
<body>
<applet>

<PARAM NAME="codebase" VALUE="${SERVER_HOME}/../lib">
<PARAM NAME="code" VALUE="myApplet">
<PARAM NAME="archive" VALUE="server.jar, myApplet.jar">

 no Java-enabled browser

</applet>

</body>

</html>

[/code]

je recois en fait des security exceptions a cause des restrictions du sandbox [b]meme apres avoir signé l'applet[/b] mais sinon tt se passe bien qud je lance la commande appletviewer apres avoir octroyé la permission
[code]
grant {
        permission java.security.AllPermission;
};
[/code]

seulement le client est remote dc l'applet doit s'executer sur un webbrowser tournant avec une JVM differente du server. comment contourner les permissions ? si t'as une idée ou alors si t'as déja eu a ecrire des ejb clients standalone fais en part please :o

au fait le code du MDB ressemble a ca

[code]
@MessageDriven(
                activationConfig = { @ActivationConfigProperty(
                                propertyName = "destinationType", propertyValue = "javax.jms.Queue"
                ) },
                mappedName = "queue/testQueue")

public class MDBBean implements MessageListener {
        
        
        @Resource(mappedName = "ConnectionFactory")
        ConnectionFactory factory;

        @Resource(mappedName = "topic/testTopic")
        Topic topic;

   
    public void onMessage(Message message) {
            try {
                        TextMessage txtMsg = (TextMessage) message;
                        
// some stuff...
                        }
                } catch (JMSException ex) {
                        //.... stuff
                }
        
    }

}
[/code]
[Message sent by forum member 'unistern']

http://forums.java.net/jive/thread.jspa?messageID=473241