Hi Michael,
I've finished implementing the endpoint interface support for
WsmReflectionAnnotationProcessor.
As you said, only java class name is allowed
for WsmReflectionAnnotationProcessor to use in
@WebService.endpointInterface annotation.
> Also, keep in mind that all methods defined in a service endpoint
> interface are automatically considered @WebMethods -- whether they are
> annotated or not.
I've added the implementation of this for both
WsmReflectionAnnotationProcessor and WsmAnnotationProcessor.
I was supposed to implement this before, but totally forgot. :(
sorry... anyways, it's done now.
I got a new question.
If the service implementation bean or the service endpoint interface has
a method( annotated with @WebMethod ) having a parameter which is NOT
annotated with @WebParam like below,
-------------------------
@WebMethod
public int addPersion(@WebParam String name, int age);
-------------------------
(NOTICE: the parameter age is not annotated with @WebParam.)
Will the parameter age be exposed ? In the other words, should the
parameter age be included in an object model ?
Or the existence of a non-annotated parameter of a method annotated with
@WebMethod is illegal to JSR-181 ?
JSR-181 doesn't state about this as far as I read it...
I'm sorry to ask you several times and took a long time to implement
such a little stuff...
Let me explain the attachment.
-WebServiceMETHODMetadata.java
It used to throw an exception if a @WebMethod annotation is not used on
a method declaration and the method is passed to the constructor of
this
class.
Modified this class not to throw an exception even though the annotation
is not found since the methods of the service endpoint interface are
not
promised to be annotated with @WebMethod, but must be included in an
object
model.
NOTE: This modification causes failure of
org.apache.beehive.wsm.jsr181.model.Jsr181ModelTest test case.
-Cheetorama.java
Added a "public int dropMoney(int amount);" method.
This class is not annotated with any annotations.
-BarTestCase.java
Added a test case that tests the dropMoney method of the Cheetorama
class
which is a service endpoint interface is included in an object model.
-WsmAnnotationProcessor.java
Modified this class to satisfy that all methods defined in a service
endpoint
interface are automatically considered @WebMethods.
-WsmReflectionAnnotationProcessor.java
Modified this class to support the endpoint interface.
Add two classes below.
-WsmAnnotationProcessorEndpointInterfaceTest.java
This class is a test case for checking the endpoint interface created by
reflection.
-WebServiceMetadataViewer.java
This class is just a utility that displays the object model tree for
debug.
NOTE:
org.apache.beehive.wsm.jsr181.model.Jsr181ModelTest will fail.
This is because of the modification to WebServiceMETHODMetadata.java.
Thanks in advance.
Wolfgang