[
https://issues.apache.org/jira/browse/TUSCANY-3625?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12893595#action_12893595
]
Simon Laws commented on TUSCANY-3625:
-------------------------------------
Looking at the JAXWS spec is does support this asymmetry but in reality when
Java is generated the operation names are decorate with JAXWS annotations
indicating what the original WSDL name was. As Scott pointed out in his orignal
post. So after much pondering I think we're OK from an interface comparison
point of view. I'll extend the WSDL first test to demonstrate this point.
Now to the original issue. I suspect any infrastructure that doesn't take
account of the mapping between the JAXWS annotation and actual Java operation
name is at risk. Another likely candidate is the rmi binding but this does
assume that it's a java interface so I don't know what happens if you specify a
WSDL interface on the reference or service.
On the face of it the patch looks OK so I say we apply it as a starting point
and look at other bindings to see where the same issue might exist.
> Issue converting case on methodName for WSDL-derived operation used with
> binding.ejb reference
> ----------------------------------------------------------------------------------------------
>
> Key: TUSCANY-3625
> URL: https://issues.apache.org/jira/browse/TUSCANY-3625
> Project: Tuscany
> Issue Type: Bug
> Components: Java SCA Java Implementation Extension
> Affects Versions: Java-SCA-1.6
> Environment: sca-java-1.x, r959098
> Reporter: Scott Kurz
> Priority: Minor
> Attachments: 3625.fix.1.patch, 3625.recreate.patch
>
>
> So the scenario here is I start with a WSDL with upper-case operation name,
> say "Add", and then generate Java from it. Well, JAX-WS says to generate
> with a name starting with lower-case, such as:
> @WebService
> public interface AddServiceRemote {
> @WebMethod(operationName = "Add")
> double add(double n1, double n2);
> Say that someone implements an EJB using this Java interface, and now I'm
> trying to use this same Java interface to build an SCA client of this EJB
> using a reference with binding.ejb.
> The problem I'll run into in the current Tuscany impl (1.x.. haven't looked
> at 2.x) is that our runtime will use the JAXWSJavaInterfaceProcessor to
> calculate the operation name as "Add" (starts with capital 'A'). It will
> pass that name to the binding-ejb-runtime code which will blow up with
> NoSuchMethodException.
> I think the right thing to do here is to "work backwards" from the operation
> name to the real Java method name we want to invoke over. In other words,
> treat this as a bug and fix it.
> Since Java<-> WSDL mapping questions are always interesting, however...
> I'll put this out there for comment.
> Thanks,
> Scott
> -----------
> Not sure how to make a new test so I'll tweak an existing test and attach to
> show a recreate....
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.