1 Reply Latest reply on Jun 12, 2009 10:18 AM by ezza ezaezazea

    Webstart complications

    ezza ezaezazea Novice

      One of the things i was hoping to simplify with JBoss was Webstart (our application has a rich client deployed via Webstart, which accesses the server's EJBs and receives JMS notifications).
      But so far, it looks more complicated; there are 2 issues:

      1/
      In 4.2.3, a jboss-remoting bug made it necessary to modify the policy file on client machines, adding

      permission java.util.PropertyPermission "legacyParsing", "read";
      to be able to receive JBM messages.

      This issue is resolved (i tested it) as expected in 5.1 which could be great since it would simplify the client machines installation.

      Unfortunately, to make it work in 5.1, i had to add 2 other permissions, which nullifies this gain:
      permission java.lang.RuntimePermission "accessDeclaredMembers";
       permission java.io.SerializablePermission "enableSubstitution";


      If i don't, i get
      java.security.AccessControlException: access denied (java.lang.RuntimePermission accessDeclaredMembers)
       at java.security.AccessControlContext.checkPermission(AccessControlContext.java:323)
       at java.security.AccessController.checkPermission(AccessController.java:546)
       at java.lang.SecurityManager.checkPermission(SecurityManager.java:532)
       at java.lang.SecurityManager.checkMemberAccess(SecurityManager.java:1662)
       at java.lang.Class.checkMemberAccess(Class.java:2157)
       at java.lang.Class.getDeclaredMethods(Class.java:1790)
       at org.jboss.invocation.MarshalledInvocation$DeclaredMethodsAction.run(MarshalledInvocation.java:691)
       at java.security.AccessController.doPrivileged(Native Method)
       at org.jboss.invocation.MarshalledInvocation.getFullInterfaceHashes(MarshalledInvocation.java:195)
       at org.jboss.invocation.MarshalledInvocation.calculateHash(MarshalledInvocation.java:341)
       at org.jboss.invocation.MarshalledInvocation.writeExternal(MarshalledInvocation.java:550)
       at java.io.ObjectOutputStream.writeExternalData(ObjectOutputStream.java:1418)
       at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1390)
       at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
       at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
       at sun.rmi.server.UnicastRef.marshalValue(UnicastRef.java:274)
       at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:133)
       at org.jboss.ha.framework.server.HARMIServerImpl_Stub.invoke(Unknown Source)
       at org.jboss.ha.framework.interfaces.HARMIClient.invokeRemote(HARMIClient.java:225)
       at org.jboss.ha.framework.interfaces.HARMIClient.invoke(HARMIClient.java:327)
       at $Proxy0.lookup(Unknown Source)
       at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:726)
       at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:686)
       at javax.naming.InitialContext.lookup(InitialContext.java:392)


      2/
      Why is jbossall-client empty? To make it work in Webstart i had to add to my .jnlp file a lot a files:
      <!-- Ajout JBoss5 -->
       <jar href="MMI/jnp-client.jar"/>
       <jar href="MMI/jboss-logging-spi.jar"/>
       <jar href="MMI/jboss-security-spi.jar"/>
       <jar href="MMI/jbosssx-client.jar"/>
       <jar href="MMI/jboss-ejb3-common-client.jar"/>
       <jar href="MMI/jboss-ejb3-core-client.jar"/>
       <jar href="MMI/jboss-ejb3-proxy-clustered-client.jar"/>
       <jar href="MMI/jboss-ejb3-proxy-impl-client.jar"/>
       <jar href="MMI/jboss-ejb3-proxy-spi-client.jar"/>
       <jar href="MMI/jboss-ejb3-security-client.jar"/>
       <jar href="MMI/jboss-ha-client.jar"/>
       <jar href="MMI/jboss-common-core.jar"/>
       <jar href="MMI/concurrent.jar"/>
       <jar href="MMI/jboss-mdr.jar"/>
       <jar href="MMI/jbosssx-as-client.jar"/>
       <jar href="MMI/jboss-integration.jar"/>
       <jar href="MMI/jboss-serialization.jar"/>