Uploaded image for project: 'Beehive'
  1. Beehive
  2. BEEHIVE-769

WSM client control can not load WSDL file from @WSDL annotation

Details

    • New Feature
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • v1m1
    • 1.0.2
    • System Controls
    • None
    • Win XP SP2, JDK 1.5.03

    Description

      In WSM web service client control, I specified @WSDL(path="Skugen.wsdl"...) as I did before. But latest unit test failed with following error:

      -------------------------------------------------------------------------
      bcc
      java.lang.NullPointerException: bcc
      at java.beans.beancontext.BeanContextSupport.getResourceAsStream(BeanContextSupport.java:646)
      at org.apache.beehive.controls.system.webservice.jaxrpc.ServiceControlImpl.getWSDLStream(ServiceControlImpl.java:514)
      at org.apache.beehive.controls.system.webservice.jaxrpc.ServiceControlImpl.initialize(ServiceControlImpl.java:457)
      at org.apache.beehive.controls.system.webservice.jaxrpc.ServiceControlImpl.invoke(ServiceControlImpl.java:126)
      at com.bea.wlw.aa.skugen.ws.GenerateSKUBean.ping(GenerateSKUBean.java:124)
      at com.bea.wlw.aa.skugen.ws.SkuGeneratorClientControlTest.testPing(SkuGeneratorClientControlTest.java:80)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      at

      ----------------------------------------------------------------------------

      According to stack trace. In source code:
      org.apache.beehive.controls.system.webservice.jaxrpc.ServiceControlImpl.java,
      the private method getWSDLStream(String), at line 514:

      wsdlStream =cbContext.getBeanContext().getResourceAsStream(pathToWSDL, null);

      The second parameter is "null". But by checking JDK source code 1.5.03 in
      java.beans.beancontext.BeanContextSupport.java, at line 644, the method:

      public InputStream getResourceAsStream(String name, BeanContextChild bcc) {
      if (name == null) throw new NullPointerException("name");
      if (bcc == null) throw new NullPointerException("bcc");

      if (containsKey(bcc))

      { ClassLoader cl = bcc.getClass().getClassLoader(); return cl != null ? cl.getResourceAsStream(name) : ClassLoader.getSystemResourceAsStream(name); }

      else throw new IllegalArgumentException("Not a valid child");
      }

      "bcc" is required somehow, that is why the NullPointerException happened.

      Attachments

        Activity

          People

            jacobd Jacob Danner
            yongqxu Yongqin Xu
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment