2 Replies Latest reply on Feb 22, 2012 10:42 AM by simplex-software

    Unsupported protocol: 'classpath' in SOAPClient




      Trying to use a SOAPClient action with a local, non published WSDL, as follows


      <action class="org.jboss.soa.esb.actions.soap.SOAPClient" name="soapui-client-action">
      <property name="wsdl" value="classpath:///META-INF/ZSearchData025.wsdl"/>
      <property name="SOAPAction" value="getProject1"/>
      <property name="responseAsOgnlMap" value="true"/>


      raises thr following exception:


      16:42:38,861 ERROR [WsdlContext] Loading of definition failed for [classpath:///META-INF/ZSearchData025.wsdl]; java.lang.IllegalStateException: unsupported protocol: 'classpath'


      However, the documentation states that


      "In JBossESB 4.7, the value can reference a location based on  five different schemes: http, https, file, classpath or internal (JBossWS jmx mbean object name)."


      So, how could I use my WSDL with SOAPClient ?


      Many thanks in advance,



        • 1. Re: Unsupported protocol: 'classpath' in SOAPClient

          I'm not sure that this is the right answer, but I do notice that your classpath URL has three leading "/".    Can you try with two?


          <property name="wsdl" value="classpath:///META-INF/ZSearchData025.wsdl"/>




          <property name="wsdl" value="classpath://META-INF/ZSearchData025.wsdl"/>


          And of course check that ZSearchData025.wsdl exists in the .esb archive's META-INF and that case-sensitivity of the filename isn't an issue.

          • 2. Re: Unsupported protocol: 'classpath' in SOAPClient

            No, unfortunatelly this is not the correct answer as the classpath protocol, like the file one, needs 3 slashes and, anyway, it doesn't work better with only two. If it was an XML parsing problem the exception wouldn't say "protocol classpath not supported". And yes, the wsdl exists of course. No, it's simply that, as oposed as the documentation states, this protocol is not supported for the soapUI SOAPClient. It's only supported for the SOAPProxy, which might make sense as one cannot consume a service which WSDL is not published, while it is possible to proxy a service which WSDL is not published but stored locally.