1 Reply Latest reply on Jan 10, 2006 5:38 AM by bgrieder

    interface javax.xml.rpc.Stub is not visible from class loade

      Hi,

      This seems to be a JNDI classloader issue but I do not know where to start.

      I have a portlet
      ->which looks up via JNDI a Module (extending org.jboss.system.ServiceMBeanSupport)
      ->which looks up via JNDI an wsee application client
      ->which in turns call a webservice

      All this happens on the same server (Jboss 4.0.2), same JVM (jdk 1.4.2 - j2ee 1.4)

      All the JNDI lookups work fine however when I try to access the port, the following exception is thrown:

      javax.xml.rpc.ServiceException: java.lang.IllegalArgumentException: interface javax.xml.rpc.Stub is not visible from class loader
      at org.jboss.axis.client.Service.getPort(Service.java:559)
      at org.jboss.axis.client.Service.getPort(Service.java:460)
      at org.jboss.webservice.client.ServiceImpl.getPort(ServiceImpl.java:180)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:324)
      at org.jboss.webservice.client.ServiceProxy.invoke(ServiceProxy.java:124)
      at $Proxy232.getMyPort(Unknown Source)
      ....

      Interestingly enough, another module located in the same jar an calling the same application-client does not throw this exception. This other module however is not looked up from a portlet (but rather the Jaas Securiy Manager).

      javax.xml.rpc.Stub seems however to be a pretty basic interface that I would assume would be visible from anywhere on the server.

      Do you have any clue where this issue could be coming from?

      Bruno

        • 1. Re: interface javax.xml.rpc.Stub is not visible from class l

          To add to above, the problematic lines in org.jboss.axis.client.Service.getPort are

          ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
          
          return (Remote)Proxy.newProxyInstance(
           classLoader,
           new Class[]{proxyInterface, javax.xml.rpc.Stub.class},
           new AxisClientProxy(call, portName)
          );
          


          Why in the case described above does the Context classLoader not "see" javax.xml.rpc.Stub?

          Bruno.