You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@servicemix.apache.org by bamafirebird <jp...@gmail.com> on 2006/07/25 16:46:14 UTC

WSDL Deployment: "No wsdl is available for this service"

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.


Re: WSDL Deployment: "No wsdl is available for this service"

Posted by bamafirebird <jp...@gmail.com>.
JIRA raised: https://issues.apache.org/activemq/browse/SM-499

That suggestion will work, thanks 
-- 
View this message in context: http://www.nabble.com/WSDL-Deployment%3A-%22No-wsdl-is-available-for-this-service%22-tf1998652.html#a5487696
Sent from the ServiceMix - User forum at Nabble.com.


Re: WSDL Deployment: "No wsdl is available for this service"

Posted by Guillaume Nodet <gn...@gmail.com>.
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 <jp...@gmail.com> 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.
>
>