You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@servicemix.apache.org by "Philipp Rossmanith (JIRA)" <ji...@apache.org> on 2007/08/22 12:29:23 UTC

[jira] Created: (SM-1039) Publication of a consumer HTTP endpoint with classpath-provided WSDL file doesn't publish WSDL file

Publication of a consumer HTTP endpoint with classpath-provided WSDL file doesn't publish WSDL file
---------------------------------------------------------------------------------------------------

                 Key: SM-1039
                 URL: https://issues.apache.org/activemq/browse/SM-1039
             Project: ServiceMix
          Issue Type: Bug
          Components: servicemix-http
         Environment: ServiceMix 3.1.1, Windows
            Reporter: Philipp Rossmanith
            Priority: Minor


Trying to publish an HTTP consumer endpoint with a classpath-supplied WSDL connecting to a servicemix.xml-configured publisher, the WSDL file doesn't show at the corresponding URL http://localhost:8192/IMMessageNotificationService/main.wsdl.

Proposed solution:
================
It seems the problem comes from the HttpEndpoint#getTargetPortType method.

This method tries to find the *target* PortType.  And the problem is that the target PortType (or interface QName) is not the same as the one exposed by servicemix-http. Somehow, they need to be matched.

Maybe the getTargetPortType should be a series of
   if (portType == null && xxx) {
      ...
   }
rather than if / else if.

See also:
========
Thread http://www.nabble.com/servicemix-http---classpath-supplied-WSDL-file-not-visible-tf4286826s12049.html (subject: servicemix-http - classpath-supplied WSDL file not visible)

Additional information:
==================
The setup is:
HTTP consumer EP --> publisher EP

Deployment units have been created with Maven. Service and endpoint supplied in the servicemix-http xbean.xml*) match the ones supplied in the WSDL file**), setting the service name to <namespace prefix>:<WSDL service name> and setting the endpoint name to the value of the port's name. The WSDL file is present at the top-level in the ZIP-file for the SU.

*)
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:http="http://servicemix.apache.org/http/1.0"
	xmlns:mag="http://mag.icing.eu/notification/1.0"
	
xmlns:csapi="http://www.csapi.org/wsdl/parlayx/multimedia_messaging/noti
fication/v2_0/service"
	xmlns:pub="http://iisys.icing.eu/publisher/1.0"
	
xmlns:impl="http://www.csapi.org/wsdl/parlayx/multimedia_messaging/notif
ication/v2_0/service">
	<classpath>
		<location>.</location>
	</classpath>

	<http:endpoint service="impl:IMMessageNotificationService"
		endpoint="IMMessageNotification" role="consumer"
	
locationURI="http://0.0.0.0:8192/IMMessageNotificationService/"
		soap="true"
wsdlResource="classpath:IMMessageNotification.wsdl"
		targetService="pub:IMMessagePublisher"
targetEndpoint="ep" />
</beans>

**)
<wsdl:definitions
	
targetNamespace="http://www.csapi.org/wsdl/parlayx/multimedia_messaging/
notification/v2_0/service" ...>
...
      <wsdl:service name="IMMessageNotificationService">
		<wsdl:port
binding="impl:IMMessageNotificationSoapBinding"
			name="IMMessageNotification">
			<wsdlsoap:address
location="http://0.0.0.0:8192/IMMessageNotificationService/" />
		</wsdl:port>
	</wsdl:service>
...
</ wsdl:definitions>


-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (SM-1039) Publication of a consumer HTTP endpoint with classpath-provided WSDL file doesn't publish WSDL file

Posted by "Philipp Rossmanith (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/activemq/browse/SM-1039?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_39992 ] 

Philipp Rossmanith commented on SM-1039:
----------------------------------------

Workaround: Give the publishing endpoint the same service and endpoint name as specified for servicemix-http service unit and WSDL file.

> Publication of a consumer HTTP endpoint with classpath-provided WSDL file doesn't publish WSDL file
> ---------------------------------------------------------------------------------------------------
>
>                 Key: SM-1039
>                 URL: https://issues.apache.org/activemq/browse/SM-1039
>             Project: ServiceMix
>          Issue Type: Bug
>          Components: servicemix-http
>         Environment: ServiceMix 3.1.1, Windows
>            Reporter: Philipp Rossmanith
>            Priority: Minor
>
> Trying to publish an HTTP consumer endpoint with a classpath-supplied WSDL connecting to a servicemix.xml-configured publisher, the WSDL file doesn't show at the corresponding URL http://localhost:8192/IMMessageNotificationService/main.wsdl.
> Proposed solution:
> ================
> It seems the problem comes from the HttpEndpoint#getTargetPortType method.
> This method tries to find the *target* PortType.  And the problem is that the target PortType (or interface QName) is not the same as the one exposed by servicemix-http. Somehow, they need to be matched.
> Maybe the getTargetPortType should be a series of
>    if (portType == null && xxx) {
>       ...
>    }
> rather than if / else if.
> See also:
> ========
> Thread http://www.nabble.com/servicemix-http---classpath-supplied-WSDL-file-not-visible-tf4286826s12049.html (subject: servicemix-http - classpath-supplied WSDL file not visible)
> Additional information:
> ==================
> The setup is:
> HTTP consumer EP --> publisher EP
> Deployment units have been created with Maven. Service and endpoint supplied in the servicemix-http xbean.xml*) match the ones supplied in the WSDL file**), setting the service name to <namespace prefix>:<WSDL service name> and setting the endpoint name to the value of the port's name. The WSDL file is present at the top-level in the ZIP-file for the SU.
> *)
> <?xml version="1.0" encoding="UTF-8"?>
> <beans xmlns:http="http://servicemix.apache.org/http/1.0"
> 	xmlns:mag="http://mag.icing.eu/notification/1.0"
> 	
> xmlns:csapi="http://www.csapi.org/wsdl/parlayx/multimedia_messaging/noti
> fication/v2_0/service"
> 	xmlns:pub="http://iisys.icing.eu/publisher/1.0"
> 	
> xmlns:impl="http://www.csapi.org/wsdl/parlayx/multimedia_messaging/notif
> ication/v2_0/service">
> 	<classpath>
> 		<location>.</location>
> 	</classpath>
> 	<http:endpoint service="impl:IMMessageNotificationService"
> 		endpoint="IMMessageNotification" role="consumer"
> 	
> locationURI="http://0.0.0.0:8192/IMMessageNotificationService/"
> 		soap="true"
> wsdlResource="classpath:IMMessageNotification.wsdl"
> 		targetService="pub:IMMessagePublisher"
> targetEndpoint="ep" />
> </beans>
> **)
> <wsdl:definitions
> 	
> targetNamespace="http://www.csapi.org/wsdl/parlayx/multimedia_messaging/
> notification/v2_0/service" ...>
> ...
>       <wsdl:service name="IMMessageNotificationService">
> 		<wsdl:port
> binding="impl:IMMessageNotificationSoapBinding"
> 			name="IMMessageNotification">
> 			<wsdlsoap:address
> location="http://0.0.0.0:8192/IMMessageNotificationService/" />
> 		</wsdl:port>
> 	</wsdl:service>
> ...
> </ wsdl:definitions>

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.