axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Shameera Rathnayaka (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (AXIS2-5602) RequestURIBasedServiceDispatcher#findService is returning wrong axis service
Date Sun, 11 Aug 2013 14:17:48 GMT

    [ https://issues.apache.org/jira/browse/AXIS2-5602?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13736286#comment-13736286
] 

Shameera Rathnayaka commented on AXIS2-5602:
--------------------------------------------

Yes reversing the logic which find the service name would solve the problem, On the other
hand that is the correct way to map with URI to resources. In REST world it select the longest
URI match resource therefore our approach best fit for that model. As a best practice we use
first letter capital path segment for services. and first letter simple path segment for operation
names. In that way we can differentiate operations and service names. for your example "Foo/Bar/Test"
map to a service and "Foo/Bar/test" map to a operation "test" in "Foo/Bar" service. 

Thanks,
Shameera.
                
> RequestURIBasedServiceDispatcher#findService is returning wrong axis service
> ----------------------------------------------------------------------------
>
>                 Key: AXIS2-5602
>                 URL: https://issues.apache.org/jira/browse/AXIS2-5602
>             Project: Axis2
>          Issue Type: Bug
>    Affects Versions: 1.6.2
>            Reporter: Jayant Vaish
>            Priority: Blocker
>         Attachments: AXIS_5602.patch
>
>
> I am having two services deployed on axis2-1.6.2 having following axisServiceName:
> 1. Service1/Start/WFmagic_cksXMrobEd2Fe4Kb1Aqw9Q
> 2. Service1/Start
> Passing messageContext in org.apache.axis2.dispatchers.RequestURIBasedServiceDispatcher.findService(MessageContext)

> has following epr address:
>  
> EndpointReference toEPR = messageContext.getTo();
> toEPR.getAddress() is 
> http://localhost:8080/axis2/services/Service1/Start/WFmagic_cksXMrobEd2Fe4Kb1Aqw9Q
> So, expected axis service returned by org.apache.axis2.dispatchers.RequestURIBasedServiceDispatcher.findService(MessageContext)
> should be : "Service1/Start/WFmagic_cksXMrobEd2Fe4Kb1Aqw9Q"
> But I am getting "Service1/Start" which is wrong !!!
> Further looking into the code found the following snippet which seems to be the culprit:
> org.apache.axis2.dispatchers.RequestURIBasedServiceDispatcher.java
>               while (axisService == null && count < parts.length &&
>                         count < Constants.MAX_HIERARCHICAL_DEPTH) {
>                     serviceName = count == 0 ? serviceName + parts[count] :
>                             serviceName + "/" + parts[count];
>                     axisService = registry.getService(serviceName);
>                     count++;
>                 }

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

---------------------------------------------------------------------
To unsubscribe, e-mail: java-dev-unsubscribe@axis.apache.org
For additional commands, e-mail: java-dev-help@axis.apache.org


Mime
View raw message