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