main.wsdl not accessible after deploying WSDL to servicemix-http component
--------------------------------------------------------------------------

                 Key: SM-499
                 URL: https://issues.apache.org/activemq/browse/SM-499
             Project: ServiceMix
          Issue Type: Bug
          Components: servicemix-http
    Affects Versions: 3.0-M1
            Reporter: Joe Kutner


When trying to deploy a Service Assembly with a WSDL to the servicemix-http 
component (as described on the servicemix-http page) the SA deploys OK, and the 
services are listed at http://localhost:8080

     Error 404 - Not Found.
     No service matched or handled this request.
     Known services are:
         * http://localhost:8080/InOnly
         * http://localhost:8080/InOut


But when trying to access the WSDL (ex. http://localhost:8080/InOnly/?wsdl) the 
following error is returned:

     HTTP ERROR: 404
     No wsdl is available for this service
     RequestURI=/InOnly/main.wsdl

However, the WSDL can be accessed by using the JMX console to execute the 
getWsdl() method of the EndpointMBean.

An example case is a Service Assembly containing a JBI descriptior and a 
Service Unit with contents as follows:
     ./main.wsdl
     ./META-INF/jbi.xml

The main.wsdl file has content as described on the servicemix-http page:

<definitions name='Consumer'
             targetNamespace='http://http.servicemix.org/Test'
             xmlns:tns='http://http.servicemix.org/Test'
             xmlns:http='http://schemas.xmlsoap.org/wsdl/http/'
             xmlns:soap='http://schemas.xmlsoap.org/wsdl/soap/'
             xmlns='http://schemas.xmlsoap.org/wsdl/'
             xmlns:jbi='http://servicemix.org/wsdl/jbi/'>

    <portType name='ConsumerInterface'>
    </portType>

    <binding name='ConsumerSoapBinding' type='tns:ConsumerInterface'>
        <soap:binding transport="http"/>
    </binding>

    <binding name='ConsumerHttpBinding' type='tns:ConsumerInterface'>
        <http:binding verb="POST"></http:binding>
    </binding>

    <service name='ConsumerInOnly'>
        <port name='TestEndpoint' binding='tns:ConsumerSoapBinding'>
            <soap:address location="http://localhost:8080/InOnly"/>
            <jbi:endpoint role="consumer" defaultMep='in-only'/>
        </port>
    </service>

    <service name='ConsumerInOut'>
        <port name='TestEndpoint' binding='tns:ConsumerHttpBinding'>
            <http:address location="http://localhost:8080/InOut"/>
            <jbi:endpoint role="consumer" defaultMep='in-out'/>
        </port>
    </service>
   
</definitions>

The Endpoint.setDescription() and Endpoint.setDefinition() are being called by 
the Deployer.  Then, when the Endpoint.activate() is called (and in turn the 
SoapEndpoint.loadWsdl() method), the WSDL is not added to the HttpEndpoint.wsdl 
HashMap because those two values were set (!= null).


-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
https://issues.apache.org/activemq/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to