DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT <http://nagoya.apache.org/bugzilla/show_bug.cgi?id=17172>. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND INSERTED IN THE BUG DATABASE.
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=17172 WSDL2Java mistakenly produces javax.activation.holders.DataHandlerHolder Summary: WSDL2Java mistakenly produces javax.activation.holders.DataHandlerHolder Product: Axis Version: 1.0-rc1 Platform: PC OS/Version: Windows NT/2K Status: NEW Severity: Normal Priority: Other Component: WSDL processing AssignedTo: [EMAIL PROTECTED] ReportedBy: [EMAIL PROTECTED] WSDL2Java mistakenly produces javax.activation.holders.DataHandlerHolder If a webservice has an IN/OUT referenced attachment parameter (DataHandler), WSDL2Java produces a reference to a non-existent class: javax.activation.holders.DataHandlerHolder Sample WSDL that will reproduce this follows... -------------------------------------------------- <?xml version="1.0" encoding="UTF-8"?> <wsdl:definitions targetNamespace="urn:E3ReferencedAttachmentService" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="urn:E3ReferencedAttachmentService" xmlns:intf="urn:E3ReferencedAttachmentService" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><wsdl:types><schema targetNamespace="urn:E3ReferencedAttachmentService" xmlns="http://www.w3.org/2001/XMLSchema"><import namespace="http://schemas.xmlsoap.org/soap/encoding/"/><complexType name="NameValuePair"><sequence><element name="name" nillable="true" type="xsd:string"/><element name="value" nillable="true" type="xsd:string"/></sequence></complexType><complexType name="ArrayOfNameValuePair"><complexContent><restriction base="soapenc:Array"><attribute ref="soapenc:arrayType" wsdl:arrayType="impl:NameValuePair []"/></restriction></complexContent></complexType><element name="ArrayOfNameValuePair" nillable="true" type="impl:ArrayOfNameValuePair"/></schema><schema targetNamespace="http://xml.apache.org/xml-soap" xmlns="http://www.w3.org/2001/XMLSchema"><import namespace="http://schemas.xmlsoap.org/soap/encoding/"/><element name="DataHandler" nillable="true" type="apachesoap:DataHandler"/></schema></wsdl:types> <wsdl:message name="callE3EncodedResponse"> <wsdl:part name="headers" type="xsd:string"/> <wsdl:part name="body" type="apachesoap:DataHandler"/> </wsdl:message> <wsdl:message name="callE3EncodedRequest"> <wsdl:part name="parameters" type="xsd:string"/> <wsdl:part name="headers" type="xsd:string"/> <wsdl:part name="body" type="apachesoap:DataHandler"/> </wsdl:message> <wsdl:message name="callE3Response"> <wsdl:part name="headers" type="intf:ArrayOfNameValuePair"/> <wsdl:part name="body" type="apachesoap:DataHandler"/> </wsdl:message> <wsdl:message name="callE3Request"> <wsdl:part name="parameters" type="intf:ArrayOfNameValuePair"/> <wsdl:part name="headers" type="intf:ArrayOfNameValuePair"/> <wsdl:part name="body" type="apachesoap:DataHandler"/> </wsdl:message> <wsdl:portType name="E3ReferencedAttachment"> <wsdl:operation name="callE3" parameterOrder="parameters headers body"> <wsdl:input message="intf:callE3Request" name="callE3Request"/> <wsdl:output message="intf:callE3Response" name="callE3Response"/> </wsdl:operation> <wsdl:operation name="callE3Encoded" parameterOrder="parameters headers body"> <wsdl:input message="intf:callE3EncodedRequest" name="callE3EncodedRequest"/> <wsdl:output message="intf:callE3EncodedResponse" name="callE3EncodedResponse"/> </wsdl:operation> </wsdl:portType> <wsdl:binding name="E3ReferencedAttachmentSoapBinding" type="intf:E3ReferencedAttachment"> <wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/> <wsdl:operation name="callE3"> <wsdlsoap:operation soapAction=""/> <wsdl:input name="callE3Request"> <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:E3ReferencedAttachmentService" use="encoded"/> </wsdl:input> <wsdl:output name="callE3Response"> <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:E3ReferencedAttachmentService" use="encoded"/> </wsdl:output> </wsdl:operation> <wsdl:operation name="callE3Encoded"> <wsdlsoap:operation soapAction=""/> <wsdl:input name="callE3EncodedRequest"> <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:E3ReferencedAttachmentService" use="encoded"/> </wsdl:input> <wsdl:output name="callE3EncodedResponse"> <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:E3ReferencedAttachmentService" use="encoded"/> </wsdl:output> </wsdl:operation> </wsdl:binding> <wsdl:service name="E3ReferencedAttachmentService"> <wsdl:port binding="intf:E3ReferencedAttachmentSoapBinding" name="E3ReferencedAttachment"> <wsdlsoap:address location="http://sbrow1d/e3/services/E3ReferencedAttachment"/> </wsdl:port> </wsdl:service> </wsdl:definitions> -------------------------------------------------- Note the parameter named "body" is present in the request and response. When fed to WSDL2Java, this WSDL file produces references to a non-existent class: javax.activation.holders.DataHandlerHolder. This should, instead, probably produce the DataHandlerHolder source (though probably not in the javax.activation package) and reference the one it built. Alternatively, a "holder" class for DataHandler could be distributed with AXIS and then WSDL2Java could just reference that one. Of course, the generated code *can* be made to work by writing a DataHandlerHolder class and changing the auto-generated code to reference it, but I feel the "holder" for the DataHandler should be automatically handled by WSDL2Java. Thanks -Sam