Improving JAXWS WSDL generation
-------------------------------
Key: AXIS2-4284
URL: https://issues.apache.org/jira/browse/AXIS2-4284
Project: Axis 2.0 (Axis2)
Issue Type: Improvement
Components: jaxws
Reporter: Isuru Eranga Suriarachchi
Fix For: 1.5
Attachments: jaxws-fix-24-3-2009.txt
In the current Axis2 JAXWS implementation, WSDL is generated through a separate
WSDLSupplier. It doesn't use the AxisService object at all. If someone
programatically adds a policy into a JAXWS service, this policy is not shown in
the WSDL when ?wsdl is called. Therefore a client won't be able to invoke this
service.
In JAXWS service deployment, there are 2 cases
1. buildAxisServiceFromWSDL
2. buildAxisServiceFromAnnotations
In case 1, AxisService is built using WSDL11ToAxisServiceBuilder. Therefore in
this case, WSDL can be generated in the normal way without using this
WSDLSupplier. But in case 2, AxisService object doesn't contain a schema in it
and the WSDL can't be generated in the normal way. I think that's why this
WSDLSupplier is used.
In order to fix this issue, I've generated the WSDL from this WSDLSupplier in
the deployment time and then used the WSDL11ToAxisServiceBuilder to build the
AxisService. Now we don't want this WSDLSupplier (when ?wsdl is called) in both
the above cases and policies are shown in the WSDL properly.
I've added a parameter into axis2.xml as "useGeneratedWSDLinJAXWS". By default
it is false and the behavior is exactly as it was before this fix. If it is set
to true, this new behavior is turned on and the WSDLSupplier is not registered.
I'm attaching the patch to this JIRA
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.