Bonjour,
J'ai voulu faire uun programme de test sur les EJB, pour cela j'ai suivi le tutorial de jm.doudou sur les EJB le est que quand j'execute le code j'obtient un erreur au niveau de la récuperation du home au niveau du context
est ce que qq1 peut m'aider mon erreur est un probleme d'accès apparement
Elle intervient des que je fais
ref = context.lookup("TestEJB");
Mon fichier de config ejb-jar.xml
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46 <ejb-jar> <description>Descripteur de déploiement du compteur</description> <display-name>TestEJB</display-name> <enterprise-beans> <session> <description>TestEJB</description> <display-name>TestEJB</display-name> <ejb-name>TestEJB</ejb-name> <home>com.ujoodha.test.ejb.MonPremierEJBHome</home> <remote>com.ujoodha.test.ejb.MonPremierEJB</remote> <ejb-class>com.ujoodha.test.ejb.MonPremierEJBBean</ejb-class> <session-type>Stateful</session-type> <transaction-type>Container</transaction-type> </session> </enterprise-beans> <assembly-descriptor> <container-transaction> <method> <ejb-name>TestEJB</ejb-name> <method-name>*</method-name> </method> <trans-attribute>Required</trans-attribute> </container-transaction> </assembly-descriptor> </ejb-jar> et jboos.xml [code] <jboss> <unauthenticated-principal>nobody</unauthenticated-principal> <enterprise-beans> <session> <ejb-name>TestEJB</ejb-name> <jndi-name>ejb/TestEJB</jndi-name> <configuration-name>Standard Stateless SessionBean</configuration-name> </session> </enterprise-beans> <resource-managers> </resource-managers> </jboss> [/code]Le code de test est le suivant
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 Exception in thread "main" java.security.AccessControlException: access denied (java.net.SocketPermission 230.0.0.4 connect,accept,resolve) at java.security.AccessControlContext.checkPermission(AccessControlContext.java:264) at java.security.AccessController.checkPermission(AccessController.java:427) at java.lang.SecurityManager.checkPermission(SecurityManager.java:532) at java.lang.SecurityManager.checkMulticast(SecurityManager.java:1188) at java.net.MulticastSocket.joinGroup(MulticastSocket.java:269) at org.jnp.interfaces.NamingContext.discoverServer(NamingContext.java:1254) at org.jnp.interfaces.NamingContext.checkRef(NamingContext.java:1382) at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:579) at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:572) at javax.naming.InitialContext.lookup(InitialContext.java:351) at com.ujoodha.test.ejb.TestClient.main(TestClient.java:42)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60 Properties prop = null; Context context = null; Object ref = null; MonPremierEJBHome home = null; MonPremierEJBBean bean = null; //System.setProperty("java.security.policy", "client.policy"); if (System.getSecurityManager() == null) System.setSecurityManager(new RMISecurityManager()); prop = new Properties(); prop.put(Context.INITIAL_CONTEXT_FACTORY,"org.jnp.interfaces.NamingContextFactory"); prop.put(Context.PROVIDER_URL,"localhost:1099"); try { context = new InitialContext(prop); if(context != null) System.out.println("OK"); else System.err.println("NO OK"); ref = context.lookup("TestEJB"); // gestion du cycle de vie try { if( javax.rmi.PortableRemoteObject.narrow(ref,MonPremierEJBHome.class) == null ) System.out.println("La construvtion du home est impossible)"); home = (MonPremierEJBHome) javax.rmi.PortableRemoteObject.narrow(ref,MonPremierEJBHome.class); try { if(home != null) { System.out.println("OK"); home.create(); } else System.out.println("TestClient.main()"); } catch (RemoteException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (CreateException e) { // TODO Auto-generated catch block e.printStackTrace(); } } catch (ClassCastException e) { // TODO Auto-generated catch block e.printStackTrace(); } // bean = // System.out.println(bean.message()); //bean.r } catch (NamingException e) { // TODO Auto-generated catch block e.printStackTrace(); }
[Modéré par Didier] : ajout de tag dans le titre - Les règles du forum Java
Partager