[Help] CommunicationException and AccessControlException: th
shadens Aug 2, 2006 11:53 AMHi JBoss Community :P
I've obtained two errors very famous, but I don't understand how to solve them by reading other posts. (example: http://www.jboss.org/?module=bb&op=viewtopic&t=68828
These exception are bind to java 's world (RMI ??), so I think someone here just has solution :)
Here exceptions (and then my ejb3 client... Ejb exposes a web services):
[java] javax.naming.CommunicationException: Could not obtain connection to any of these urls: localhost:1099 a
nd discovery failed with error: java.security.AccessControlException: access denied (java.net.SocketPermission 230.
0.0.4 connect,accept,resolve) [Root exception is javax.naming.CommunicationException: Failed to connect to server l
ocalhost:1099 [Root exception is java.security.AccessControlException: access denied (java.net.SocketPermission 127
.0.0.1:1099 connect,resolve)]]
[java] at org.jnp.interfaces.NamingContext.checkRef(NamingContext.java:1414)
[java] at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:594)
[java] at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:587)
[java] at javax.naming.InitialContext.lookup(InitialContext.java:351)
[java] at bean.client.ClientToDeployBean.testWhatTimeAccess(ClientToDeployBean.java:20)
[java] at bean.client.ClientToDeployBean.main(ClientToDeployBean.java:63)
[java] Caused by: javax.naming.CommunicationException: Failed to connect to server localhost:1099 [Root except
ion is java.security.AccessControlException: access denied (java.net.SocketPermission 127.0.0.1:1099 connect,resolv
e)]
[java] at org.jnp.interfaces.NamingContext.getServer(NamingContext.java:269)
[java] at org.jnp.interfaces.NamingContext.checkRef(NamingContext.java:1385)
[java] ... 5 more
[java] Caused by: java.security.AccessControlException: access denied (java.net.SocketPermission 127.0.0.1:109
9 connect,resolve)
[java] at java.security.AccessControlContext.checkPermission(AccessControlContext.java:264)
[java] at java.security.AccessController.checkPermission(AccessController.java:427)
[java] at java.lang.SecurityManager.checkPermission(SecurityManager.java:532)
[java] at java.lang.SecurityManager.checkConnect(SecurityManager.java:1034)
[java] at java.net.Socket.connect(Socket.java:501)
[java] at java.net.Socket.connect(Socket.java:457)
[java] at java.net.Socket.<init>(Socket.java:365)
[java] at java.net.Socket.<init>(Socket.java:265)
[java] at org.jnp.interfaces.TimedSocketFactory.createSocket(TimedSocketFactory.java:84)
[java] at org.jnp.interfaces.TimedSocketFactory.createSocket(TimedSocketFactory.java:77)
[java] at org.jnp.interfaces.NamingContext.getServer(NamingContext.java:239)
[java] ... 6 more
My client:
package bean.client; import java.rmi.RMISecurityManager; import java.util.Hashtable; import javax.ejb.Stateless; import javax.naming.Context; import javax.naming.InitialContext; import javax.naming.NamingException; import javax.xml.rpc.Service; import src.jaws.WhatTimeService; import bean.client.ClientToDeploy; public @Stateless class ClientToDeployBean implements ClientToDeploy { public void testWhatTimeAccess() throws Exception { Context jndiContext = getInitialContext(); WhatTimeService service = (WhatTimeService) jndiContext.lookup("TimeAgentRemote"); System.out.println("dopo lookup!"); /*InitialContext iniCtx = getInitialContext(); System.out.println("PASSO!"); Service service = (Service)iniCtx.lookup("java:comp/env/service/TimeBean"); System.out.println("PASSO2!"); // WhatTime port = (WhatTime)service.getPort(WhatTime.class); WhatTime service1 = (WhatTime)service; EndpointInterface end = service1.getEndpointInterfacePort(); String ret = end.whatTimeIsIt("Dr. Emmett Brown"); System.out.println(ret);*/ } protected InitialContext getInitialContext() throws NamingException{ //return new javax.naming.InitialContext(); System.setProperty("java.security.policy", "client.policy"); if (System.getSecurityManager() == null) System.setSecurityManager(new RMISecurityManager()); InitialContext iniCtx = new InitialContext(); iniCtx.addToEnvironment("java.naming.factory.initial","org.jnp.interfaces.NamingContextFactory"); Hashtable env = iniCtx.getEnvironment(); // env.put(Context.INITIAL_CONTEXT_FACTORY,"org.jnp.interfaces.NamingContextFactory"); //env.put(Context.URL_PKG_PREFIXES, "org.jboss.naming.client"); env.put("java.naming.factory.initial","org.jnp.interfaces.NamingContextFactory"); env.put("java.naming.factory.url.pkgs","org.jboss.naming:org.jnp.interfaces"); env.put("j2ee.clientName", "jbossws-client"); env.put("java.naming.provider.url","localhost:1099"); env.put("java.naming.factory.url.pkgs","org.jboss.naming.client"); return new InitialContext(env); } public static void main(String [] args){ ClientToDeployBean ct = new ClientToDeployBean(); try{ ct.testWhatTimeAccess(); }catch(Exception e){ System.out.println("MAIN!"); e.printStackTrace(); } } }
Client explodes on this line:
WhatTimeService service = (WhatTimeService) jndiContext.lookup("TimeAgentRemote");
Thank you everyone! :_)