I would say it is a bug.
Could you please raise a JIRA ?

As a workaround, you can use the xbean deployment and use the wsdlResource
attribute
to point to the wsdl in your SU.

Cheers,
Guillaume Nodet

On 7/25/06, bamafirebird <[EMAIL PROTECTED]> wrote:


I have installed the servicemix-http component, and am trying to deploy a
Service Assembly with a WSDL to it (as described
http://www.servicemix.org/site/servicemix-http.html on the servicemix-http
page ).  The SA deploys OK, and the services are listed when I go to
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 I try to access the WSDL (ex. http://localhost:8080/InOnly/?wsdl)
I
get the following error:

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

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

My Service Assembly contains 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>

Is my deployment package missing something?

I can tell by stepping through in a debugger that 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), my WSDL is not added to the
HttpEndpoint.wsdl
HashMap because those two values were set (!= null).

Is this behavior intended?

Thank you
--
View this message in context:
http://www.nabble.com/WSDL-Deployment%3A-%22No-wsdl-is-available-for-this-service%22-tf1998652.html#a5486628
Sent from the ServiceMix - User forum at Nabble.com.


Reply via email to