I recently started using request wrappers on my SOAP service to have more
control of how the method parameters are displayed in the WSDL. However, the
method with a request wrapper is getting its wsdl generated in a way that is
not friendly to wsdl2java.
My original service method declaration of this:
@RequestWrapper(localName = "getInterviewList", targetNamespace =
NAMESPACE, className =
"org.lds.platform.service.wrapper.GetInterviewListRequestWrapper")
@WebMethod(operationName="getInterviewList")
public List<InterviewInfo> getInterviewList(
@WebParam(name=Constants.UNIT_NBR)
Long unitNbr,
@WebParam(name=Constants.NAME_FORMAT)
String nameFormat) throws MluValidationException,
AvailabilityException;
Is getting turned into this wsdl (showing only the part having to do with the
wrapper):
<xs:complexType name="getInterviewList">
<xs:sequence>
<xs:element minOccurs="0" name="unitNbr" nillable="true"
type="xs:long"/>
<xs:element minOccurs="0" name="nameFormat" nillable="true"
type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:element name="getInterviewList" nillable="true"
type="tns:getInterviewList"/>
The complex type declaration is great, but the following line (with the element
declaration) is a problem. This is making it so that when I run wsdl2java off
of this, it generates a method with the Bare parameter style instead of the
Wrapped one we would like. It seems to be caused by the line where the element
named getInterviewList is being marked as nillable.
If I edit that one line manually to
<xs:element name="getInterviewList" type="tns:getInterviewList"/>
wsdl2java generates the code the way we want (with the wrapper style for the
parameters, like in our service declaration).
So my question is: when using a request wrapper, how can I avoid it getting
marked as nillable in the wsdl?
-Nick
NOTICE: This email message is for the sole use of the intended recipient(s)
and may contain confidential and privileged information. Any unauthorized
review, use, disclosure or distribution is prohibited. If you are not the
intended recipient, please contact the sender by reply email and destroy all
copies of the original message.