[esb-issues] [JBoss JIRA] Closed: (JBESB-1557) JBossRemotingGateway listener should support multiple listeners for the same host port combination
Mark Little (JIRA)
jira-events at lists.jboss.org
Mon Dec 22 03:10:06 EST 2008
[ https://jira.jboss.org/jira/browse/JBESB-1557?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Mark Little closed JBESB-1557.
------------------------------
Fix Version/s: 4.5
(was: 4.x)
Resolution: Done
> JBossRemotingGateway listener should support multiple listeners for the same host port combination
> --------------------------------------------------------------------------------------------------
>
> Key: JBESB-1557
> URL: https://jira.jboss.org/jira/browse/JBESB-1557
> Project: JBoss ESB
> Issue Type: Feature Request
> Security Level: Public(Everyone can see)
> Components: Transports
> Affects Versions: 4.3
> Reporter: Daniel Bevenius
> Assignee: Mark Little
> Fix For: 4.5
>
> Attachments: jboss-remoting.jar, jbossesb-config-model-1.0.1.jar, jbossesb-rosetta.jar, webservice_producer.jar
>
>
> Add support for having multiple jbr listeners listen to the same host port combination:
> <jbr-provider name="JBR-Http" protocol="http" host="localhost" path="service1">
> <jbr-bus busid="Http-1" port="8765" />
> </jbr-provider>
> <jbr-provider name="JBR-Http2" protocol="http" host="localhost" path="service2">
> <jbr-bus busid="Http-2" port="8765"/>
> </jbr-provider>
> Also notice the addition of the path configuration parameter. This is intended to identify the path that will be used by a ws client that calls the service. Talked to Tom and he suggested placing the path property on the jbr-bus element so I'll change that. The attached example uses this way just as a proof-of-concept (too lazy to change it right now)
> The path is used by the JBossRemoteGatewayListener as the subsystem when adding InvokationHandlers to a Connector. So we are bascically keeping track of JBoss Remting Connectors that share the same host/port combination, and adding InvokationHandlers to them with the above specifed path as their subsystem.
> This solution requires that the JBoss Remoting ServerInvoker be modified and adding something like this:
> String subsystem = invocation.getSubsystem();
> String clientId = invocation.getSessionId();
> Map requestPayload = invocation.getRequestPayload();
> if ( subsystem == null && requestPayload != null )
> {
> String path = (String) requestPayload.get( HTTPMetadataConstants.PATH );
> subsystem = path.substring( path.indexOf( '/' ) + 1 );
> }
> log.info( "subsystem : " + subsystem );
> This is needed so it can set the incoming path as the target subsystem.
> I'm not sure if this is the best way to do this but I'll ask in the Remoting forum if they have a better suggestion.
> Really, the gain with this is that we can have multiple webservice running in a ESB instance using the same port. This is important because we it becomes difficult opening a separate port for every web service. This is the issue we are facing at the moment.
> Note that this solution does not work when running multiple ESB instances on the same machine, as this would still cause a port conflict. The solution is specific to a single JVM.
> Any thought or comments on this?
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the esb-issues
mailing list