It turns out your WSDL isn't valid. Tell me if this is correct::
For the addPhoto operation, you want to pass in - the customer name (string) - a photo ID (int) - a photo (as an attachment) And you want to get in return - status (string) (currently you're trying to return this as an attachment, but I think you want to return it in the SOAP Body) For the replacePhoto operation, you want to pass in - the customer name (string) - a photo ID (int) - a photo (as an attachment) And you want to get in return - status (string) (currently you have this defined as type="wsi:swaRef", which doesn't make sense here. I assume that you want this to be a string returned in the SOAP Body) If that's the case, then here's a corrected WSDL: <wsdl:definitions name="PhotoCatalogService" targetNamespace="http://examples.com/PhotoCatalog" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:types="http://examples.com/PhotoCatalog/types" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:tns="http://examples.com/PhotoCatalog"> <wsdl:types> <!-- ws-i schema --> <xsd:schema targetNamespace="http://ws-i.org/profiles/basic/1.1/xsd"> <xsd:simpleType name="swaRef"> <xsd:restriction base="xsd:anyURI" /> </xsd:simpleType> </xsd:schema> <!-- types namespace for this service --> <xsd:schema targetNamespace="http://examples.com/PhotoCatalog/types" xmlns:wsi="http://ws-i.org/profiles/basic/1.1/xsd" xmlns:types="http://examples.com/PhotoCatalog/types"> <!-- Import the ws-i namespace --> <xsd:import namespace="http://ws-i.org/profiles/basic/1.1/xsd" /> <!-- schemaLocation="WS-ISwA.xsd"/> --> <!-- Wrapper elements to provide unique signatures for the addPhoto and replacePhoto operations --> <xsd:element name="addPhoto"> <xsd:complexType> <xsd:sequence> <xsd:element ref="types:photoInfo"/> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="replacePhoto"> <xsd:complexType> <xsd:sequence> <xsd:element ref="types:photoInfo"/> </xsd:sequence> </xsd:complexType> </xsd:element> <!-- Output for the addPhoto and replacePhoto operations. --> <xsd:element name="status" type="xsd:string" /> <!-- Input for the addPhoto and replacePhoto operations. --> <xsd:element name="photoInfo"> <xsd:complexType> <xsd:sequence> <xsd:element name="customerName" type="xsd:string"/> <xsd:element name="photoID" type="xsd:int"/> <xsd:element name="photoRef" type="wsi:swaRef"/> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:schema> </wsdl:types> <wsdl:message name="addPhotoRequest"> <!-- first part is the SOAP body --> <wsdl:part name="body" element="types:addPhoto"/> <!-- second part is the attachment --> <wsdl:part name="photo" type="xsd:base64Binary"/> </wsdl:message> <wsdl:message name="addPhotoResponse"> <wsdl:part name="body" element="types:status"/> </wsdl:message> <wsdl:message name="replacePhotoRequest"> <wsdl:part name="body" element="types:replacePhoto"/> <wsdl:part name="newPhoto" type="xsd:base64Binary"/> </wsdl:message> <wsdl:message name="replacePhotoResponse"> <wsdl:part name="status" element="types:status"/> </wsdl:message> <wsdl:portType name="PhotoCatalog"> <wsdl:operation name="addPhoto"> <wsdl:input message="tns:addPhotoRequest"/> <wsdl:output message="tns:addPhotoResponse"/> </wsdl:operation> <wsdl:operation name="replacePhoto"> <wsdl:input message="tns:replacePhotoRequest"/> <wsdl:output message="tns:replacePhotoResponse"/> </wsdl:operation> </wsdl:portType> <wsdl:binding name="PhotoCatalogBinding" type="tns:PhotoCatalog"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> <wsdl:operation name="addPhoto"> <soap:operation soapAction="addPhoto"/> <wsdl:input> <mime:multipartRelated> <mime:part> <soap:body parts="body" use="literal"/> </mime:part> <mime:part> <mime:content part="photo" type="image/jpeg"/> </mime:part> </mime:multipartRelated> </wsdl:input> <wsdl:output> <soap:body use="literal"/> </wsdl:output> </wsdl:operation> <wsdl:operation name="replacePhoto"> <soap:operation soapAction="replacePhoto"/> <wsdl:input> <mime:multipartRelated> <mime:part> <soap:body parts="body" use="literal"/> </mime:part> <mime:part> <mime:content part="newPhoto" type="image/jpeg"/> </mime:part> </mime:multipartRelated> </wsdl:input> <wsdl:output> <soap:body use="literal"/> </wsdl:output> </wsdl:operation> </wsdl:binding> <wsdl:service name="PhotoCatalogService"> <wsdl:port name="PhotoCatalogPort" binding="tns:PhotoCatalogBinding"> <soap:address location="http://localhost:8080/jaxrpc-AttachmentsSample/photocatalog"/> </wsdl:port> </wsdl:service> </wsdl:definitions> On 4/15/05, Anne Thomas Manes <[EMAIL PROTECTED]> wrote: > Karl, > > I probably wouldn't select a SOAP w/ Attachments WSDL as my first test > case, but perhaps you enjoy self abuse... (I'm not sure that Axis > supports the WS-I Attachments profile.) > > In any case, the first error is caused by the fact that Axis generated > an RPC style message (it generated the "addPhoto" wrapper element), > which it wasn't supposed to do. > > I'd appreciate it if you could post the code generated by Axis before > you made the change to the WSDL. Axis should be able to consume any > valid WSDL, and you shouldn't need to add the <xsd:any> element. (And > the service wouldn't know how to process the contents of the <xsd:any> > anyway.) > > Regards, > Anne > > On 4/14/05, Schwarz, Karl <[EMAIL PROTECTED]> wrote: > > > > > > > > Hi, > > > > I need a little help getting started with AXIS. > > > > > > > > I've done some SOAP web services development a few years back using SUN > > JAXM, but I will be using AXIS for a webservice project in the near term. > > > > > > > > In order to get familiar with AXIS I did the GOOGLE thing and aquired a > > sample WDSL to try out. > > > > > > > > I am using 1.2RC3 version of AXIS with Tomcat 5.0.28. > > > > > > > > Here is the WSDL I first used: > > > > > > > > <wsdl:definitions > > > > name="PhotoCatalogService" > > > > targetNamespace="http://examples.com/PhotoCatalog" > > > > xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" > > > > xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" > > > > xmlns:xsd="http://www.w3.org/2001/XMLSchema" > > > > xmlns:types="http://examples.com/PhotoCatalog/types" > > > > xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" > > > > xmlns:tns="http://examples.com/PhotoCatalog"> > > > > <wsdl:types> > > > > <xsd:schema > > targetNamespace="http://examples.com/PhotoCatalog/types" > > > > xmlns:wsi="http://ws-i.org/profiles/basic/1.1/xsd" > > > > xmlns:types="http://examples.com/PhotoCatalog/types"> > > > > <xsd:import > > namespace="http://ws-i.org/profiles/basic/1.1/xsd" > > schemaLocation="WS-ISwA.xsd"/> > > > > <!-- Status contains the references the old photo available as attachment. > > --> > > > > <xsd:element name="Status" type="wsi:swaRef" /> > > > > <!-- passed in as parameter of replacePhoto operation, contains the order. > > --> > > > > <xsd:element name="PhotoInfo"> > > > > <xsd:complexType> > > > > <xsd:sequence> > > > > <xsd:element name="customerName" type="xsd:string"/> > > > > <xsd:element name="photoID" type="xsd:int"/> > > > > </xsd:sequence> > > > > </xsd:complexType> > > > > </xsd:element> > > > > </xsd:schema> > > > > </wsdl:types> > > > > <wsdl:message name="addPhotoRequest"> > > > > <wsdl:part name="oldPhoto" element="types:PhotoInfo"/> > > > > <wsdl:part name="photo" type="xsd:hexBinary"/> > > > > </wsdl:message> > > > > <wsdl:message name="addPhotoResponse"> > > > > <wsdl:part name="status" type="xsd:string"/> > > > > </wsdl:message> > > > > <wsdl:message name="replacePhotoRequest"> > > > > <wsdl:part name="oldPhoto" element="types:PhotoInfo"/> > > > > <wsdl:part name="newPhoto" type="xsd:hexBinary"/> > > > > </wsdl:message> > > > > <wsdl:message name="replacePhotoResponse"> > > > > <wsdl:part name="status" element="types:Status"/> > > > > </wsdl:message> > > > > <wsdl:portType name="PhotoCatalog"> > > > > <wsdl:operation name="addPhoto"> > > > > <wsdl:input message="tns:addPhotoRequest"/> > > > > <wsdl:output message="tns:addPhotoResponse"/> > > > > </wsdl:operation> > > > > <wsdl:operation name="replacePhoto"> > > > > <wsdl:input message="tns:replacePhotoRequest"/> > > > > <wsdl:output message="tns:replacePhotoResponse"/> > > > > </wsdl:operation> > > > > </wsdl:portType> > > > > <wsdl:binding name="PhotoCatalogBinding" type="tns:PhotoCatalog"> > > > > <soap:binding style="document" > > transport="http://schemas.xmlsoap.org/soap/http"/> > > > > <wsdl:operation name="addPhoto"> > > > > <wsdl:input> > > > > <mime:multipartRelated> > > > > <mime:part> > > > > <soap:body parts="oldPhoto" use="literal"/> > > > > </mime:part> > > > > <mime:part> > > > > <mime:content part="photo" type="image/jpeg"/> > > > > </mime:part> > > > > </mime:multipartRelated> > > > > </wsdl:input> > > > > <wsdl:output> > > > > <mime:multipartRelated> > > > > <mime:part> > > > > <soap:body use="literal"/> > > > > </mime:part> > > > > <mime:part> > > > > <mime:content part="status" type="text/plain"/> > > > > <mime:content part="status" type="text/xml"/> > > > > </mime:part> > > > > </mime:multipartRelated> > > > > </wsdl:output> > > > > </wsdl:operation> > > > > <wsdl:operation name="replacePhoto"> > > > > <wsdl:input> > > > > <mime:multipartRelated> > > > > <mime:part> > > > > <soap:body parts="oldPhoto" use="literal"/> > > > > </mime:part> > > > > <mime:part> > > > > <mime:content part="newPhoto" type="image/jpeg"/> > > > > </mime:part> > > > > </mime:multipartRelated> > > > > </wsdl:input> > > > > <wsdl:output> > > > > <mime:multipartRelated> > > > > <mime:part> > > > > <soap:body parts="status" use="literal"/> > > > > </mime:part> > > > > </mime:multipartRelated> > > > > </wsdl:output> > > > > </wsdl:operation> > > > > </wsdl:binding> > > > > <wsdl:service name="PhotoCatalogService"> > > > > <wsdl:port name="PhotoCatalogPort" > > binding="tns:PhotoCatalogBinding"> > > > > <soap:address > > location="http://localhost:8080/jaxrpc-AttachmentsSample/photocatalog"/> > > > > </wsdl:port> > > > > </wsdl:service> > > > > </wsdl:definitions> > > > > > > > > When I used the previous WSDL to generate a service and then a client I got > > the following error on the client side when trying the "addPhoto" service: > > > > > > > > AxisFault > > > > faultCode: > > {http://schemas.xmlsoap.org/soap/envelope/}Server.userException > > > > faultSubcode: > > > > faultString: org.xml.sax.SAXException: Invalid element in > > com.examples.PhotoCatalog.types.PhotoInfo - PhotoInfo > > > > faultActor: > > > > faultNode: > > > > faultDetail: > > > > {http://xml.apache.org/axis/}hostname:tislaptop > > > > org.xml.sax.SAXException: Invalid element in > > com.examples.PhotoCatalog.types.PhotoInfo - PhotoInfo > > > > at > > org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:221) > > > > at > > org.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.java:128) > > > > at > > org.apache.axis.encoding.DeserializationContext.endElement(DeserializationContext.java:1087) > > > > at > > org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown > > Source) > > > > at > > org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown > > Source) > > > > at > > org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown > > Source) > > > > at > > org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown > > Source) > > > > at > > org.apache.xerces.parsers.XML11Configuration.parse(Unknown > > Source) > > > > at > > org.apache.xerces.parsers.XML11Configuration.parse(Unknown > > Source) > > > > at org.apache.xerces.parsers.XMLParser.parse(Unknown > > Source) > > > > at > > org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown > > Source) > > > > at javax.xml.parsers.SAXParser.parse(SAXParser.java:345) > > > > at > > org.apache.axis.encoding.DeserializationContext.parse(DeserializationContext.java:227) > > > > at > > org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:696) > > > > at > > org.apache.axis.Message.getSOAPEnvelope(Message.java:424) > > > > at > > org.apache.axis.transport.http.HTTPSender.readFromSocket(HTTPSender.java:745) > > > > at > > org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:141) > > > > at > > org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32) > > > > at > > org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118) > > > > at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83) > > > > at > > org.apache.axis.client.AxisClient.invoke(AxisClient.java:165) > > > > at org.apache.axis.client.Call.invokeEngine(Call.java:2754) > > > > at org.apache.axis.client.Call.invoke(Call.java:2737) > > > > at org.apache.axis.client.Call.invoke(Call.java:2413) > > > > at org.apache.axis.client.Call.invoke(Call.java:2336) > > > > at org.apache.axis.client.Call.invoke(Call.java:1793) > > > > at > > com.examples.PhotoCatalog.PhotoCatalogBindingStub.addPhoto(PhotoCatalogBindingStub.java:190) > > > > at > > com.examples.PhotoCatalog.PhotoCatalogProxy.addPhoto(PhotoCatalogProxy.java:45) > > > > at > > com.examples.PhotoCatalog.TestPhotoService.main(TestPhotoService.java:41) > > > > > > > > Here is an abridged network trace of the SOAP request sent from client to > > server... > > > > POST /axis/services/PhotoCatalogPort HTTP/ 1.0 > > > > Content-Type: > > multipart/related;type="text/xml";start="<DBB2B5537065926A4CBC8F8ED8D88F15>";boundary="----=_Part_0_20983130.1113483759295" > > > > Accept: application/soap+xml, application/dime, multipart/related, text/* > > > > User-Agent:Axis/1.2RC3 > > > > Host: xxx.xxx.xxx.xxx:8080 > > > > Cache-Control: no-cache > > > > Pragma: no-cache > > > > SOAPAction: "" > > > > Content-Length: 8466 > > > > ------=_Part_0_209831301113483759295 > > > > Content-Type: text/xml; charset=UTF-8 > > > > Content-Transfer-Encoding: binary > > > > Content-Id: <DBB2B5537065926A4CBC8F8ED8D88F15> > > > > <?xml version="1.0" encoding="UTF-8" ?> > > > > <soapenv:Envelope > > xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" > > xmlns:xsd="http://www.w3.org/2001/XMLSchema" > > xmlns:xsi="http://www.w3.org/2001/XML Schema-instance"> > > > > <soapenv:Body> > > > > <addPhoto xmlns=""> > > > > <ns1:PhotoInfo > > xmlns:ns1="http://examples.com/PhotoCatalog/types"> > > > > <customerName>karl</customerName> > > > > <photoID>100</photoID> > > > > </ns1:PhotoInfo> > > > > <photo href="cid:9AD6390B491EF0EE0B0FCEA7AA945655" > > xsi:type="ns2:Image" > > xmlns:ns2="http://xml.apache.org/xml-soap"/> > > > > </addPhoto> > > > > </soapenv:Body> > > > > </soapenv:Envelope> > > > > ------=_ Part_0_20983130.1113483759295 > > > > Content-Type:image/jpeg > > > > Content -Transfer-Encoding:binary > > > > Content-Id: <F2369DA809C4B1B0ADBA8538372E6F23> > > > > ...QE..QE....... > > > > ------=_Part_0_20983130.1113483759295 > > > > > > > > > > > > After a little searching I found some info that led me to change the WSDL a > > little. I redefined the "PhotoInfo" type as follows > > > > > > > > > > > > <xsd:element name="PhotoInfo"> > > > > <xsd:complexType> > > > > <xsd:sequence> > > > > <xsd:element name="customerName" type="xsd:string"/> > > > > <xsd:element name="photoID" type="xsd:int"/> > > > > <xsd:any processContents = "lax"/> > > > > </xsd:sequence> > > > > </xsd:complexType> > > > > </xsd:element> > > > > Now there is no exception thrown, but the PhotoInfo and photo objects are > > not deserialized. I get null values passed to the PhotoCatalogBindingImpl > > class. > > > > I noticed that an org.apache.axis.message.MessageElement[] > > object and associated methods was added to the PhotoInfo class, which I > > assume is due to adding the <xsd:any processContents = "lax"/> line to the > > WSDL. > > > > > > > > Here is the PhotoInfo and PhotoCatalogBindingImpl class source for > > reference: > > > > /** > > > > * PhotoCatalogBindingImpl.java > > > > * > > > > * This file was auto-generated from WSDL > > > > * by the Apache Axis 1.2RC3 Feb 28, 2005 (10:15:14 EST) WSDL2Java emitter. > > > > */ > > > > package com.examples.PhotoCatalog; > > > > import javax.xml.transform.Source; > > > > public class PhotoCatalogBindingImpl implements > > com.examples.PhotoCatalog.PhotoCatalog{ > > > > public javax.xml.transform.Source > > > > addPhoto(com.examples.PhotoCatalog.types.PhotoInfo > > oldPhoto, java.awt.Image photo) throws java.rmi.RemoteException { > > > > > > > > > > > > return null; > > > > } > > > > public org.apache.axis.types.URI > > replacePhoto(com.examples.PhotoCatalog.types.PhotoInfo > > oldPhoto, java.awt.Image newPhoto) throws java.rmi.RemoteException { > > > > return null; > > > > } > > > > } > > > > > > > > > > > > /** > > > > * PhotoInfo.java > > > > * > > > > * This file was auto-generated from WSDL > > > > * by the Apache Axis 1.2RC3 Feb 28, 2005 (10:15:14 EST) WSDL2Java emitter. > > > > */ > > > > package com.examples.PhotoCatalog.types; > > > > public class PhotoInfo implements java.io.Serializable, > > org.apache.axis.encoding.AnyContentType { > > > > private java.lang.String customerName; > > > > private int photoID; > > > > private org.apache.axis.message.MessageElement [] _any; > > > > public PhotoInfo() { > > > > } > > > > public PhotoInfo( > > > > org.apache.axis.message.MessageElement [] _any, > > > > java.lang.String customerName, > > > > int photoID) { > > > > this.customerName = customerName; > > > > this.photoID = photoID; > > > > this._any = _any; > > > > } > > > > > > > > /** > > > > * Gets the customerName value for this PhotoInfo. > > > > * > > > > * @return customerName > > > > */ > > > > public java.lang.String getCustomerName() { > > > > return customerName; > > > > } > > > > > > > > /** > > > > * Sets the customerName value for this PhotoInfo. > > > > * > > > > * @param customerName > > > > */ > > > > public void setCustomerName(java.lang.String customerName) { > > > > this.customerName = customerName; > > > > } > > > > > > > > /** > > > > * Gets the photoID value for this PhotoInfo. > > > > * > > > > * @return photoID > > > > */ > > > > public int getPhotoID() { > > > > return photoID; > > > > } > > > > > > > > /** > > > > * Sets the photoID value for this PhotoInfo. > > > > * > > > > * @param photoID > > > > */ > > > > public void setPhotoID(int photoID) { > > > > this.photoID = photoID; > > > > } > > > > > > > > /** > > > > * Gets the _any value for this PhotoInfo. > > > > * > > > > * @return _any > > > > */ > > > > public org.apache.axis.message.MessageElement [] get_any() > > { > > > > return _any; > > > > } > > > > > > > > /** > > > > * Sets the _any value for this PhotoInfo. > > > > * > > > > * @param _any > > > > */ > > > > public void set_any(org.apache.axis.message.MessageElement > > [] _any) { > > > > this._any = _any; > > > > } > > > > private java.lang.Object __equalsCalc = null; > > > > public synchronized boolean equals(java.lang.Object obj) { > > > > if (!(obj instanceof PhotoInfo)) return false; > > > > PhotoInfo other = (PhotoInfo) obj; > > > > if (obj == null) return false; > > > > if (this == obj) return true; > > > > if (__equalsCalc != null) { > > > > return (__equalsCalc == obj); > > > > } > > > > __equalsCalc = obj; > > > > boolean _equals; > > > > _equals = true && > > > > ((this.customerName==null && other.getCustomerName()==null) || > > > > (this.customerName!=null && > > > > this.customerName.equals(other.getCustomerName()))) && > > > > this.photoID == other.getPhotoID() && > > > > ((this._any==null && other.get_any()==null) || > > > > (this._any!=null && > > > > java.util.Arrays.equals(this._any, other.get_any()))); > > > > __equalsCalc = null; > > > > return _equals; > > > > } > > > > private boolean __hashCodeCalc = false; > > > > public synchronized int hashCode() { > > > > if (__hashCodeCalc) { > > > > return 0; > > > > } > > > > __hashCodeCalc = true; > > > > int _hashCode = 1; > > > > if (getCustomerName() != null) { > > > > _hashCode += getCustomerName().hashCode(); > > > > } > > > > _hashCode += getPhotoID(); > > > > if (get_any() != null) { > > > > for (int i=0; > > > > i<java.lang.reflect.Array.getLength(get_any()); > > > > i++) { > > > > java.lang.Object obj = java.lang.reflect.Array.get(get_any(), i); > > > > if (obj != null && > > > > !obj.getClass().isArray()) { > > > > _hashCode += obj.hashCode(); > > > > } > > > > } > > > > } > > > > __hashCodeCalc = false; > > > > return _hashCode; > > > > } > > > > // Type metadata > > > > private static org.apache.axis.description.TypeDesc > > typeDesc = > > > > new org.apache.axis.description.TypeDesc(PhotoInfo.class, > > true); > > > > static { > > > > typeDesc.setXmlType(new > > javax.xml.namespace.QName("http://examples.com/PhotoCatalog/types", > > ">PhotoInfo")); > > > > org.apache.axis.description.ElementDesc elemField = new > > org.apache.axis.description.ElementDesc(); > > > > elemField.setFieldName("customerName"); > > > > elemField.setXmlName(new javax.xml.namespace.QName("", "customerName")); > > > > elemField.setXmlType(new > > javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", > > "string")); > > > > typeDesc.addFieldDesc(elemField); > > > > elemField = new org.apache.axis.description.ElementDesc(); > > > > elemField.setFieldName("photoID"); > > > > elemField.setXmlName(new javax.xml.namespace.QName("", "photoID")); > > > > elemField.setXmlType(new > > javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", > > "int")); > > > > typeDesc.addFieldDesc(elemField); > > > > } > > > > /** > > > > * Return type metadata object > > > > */ > > > > public static org.apache.axis.description.TypeDesc > > getTypeDesc() { > > > > return typeDesc; > > > > } > > > > /** > > > > * Get Custom Serializer > > > > */ > > > > public static org.apache.axis.encoding.Serializer > > getSerializer( > > > > java.lang.String mechType, > > > > java.lang.Class _javaType, > > > > javax.xml.namespace.QName _xmlType) { > > > > return > > > > new org.apache.axis.encoding.ser.BeanSerializer( > > > > _javaType, _xmlType, typeDesc); > > > > } > > > > /** > > > > * Get Custom Deserializer > > > > */ > > > > public static org.apache.axis.encoding.Deserializer > > getDeserializer( > > > > java.lang.String mechType, > > > > java.lang.Class _javaType, > > > > javax.xml.namespace.QName _xmlType) { > > > > return > > > > new org.apache.axis.encoding.ser.BeanDeserializer( > > > > _javaType, _xmlType, typeDesc); > > > > } > > > > } > > > > > > > > I guess my questions are as follows: > > > > 1. Why is exception thrown in the first scenario? Is there something wrong > > with the WSDL? I guess there is, but I can't figure it out. > > > > 2. When the change is made to the WDSL(adding <xsd:any processContents = > > "lax"/>) is there something that I need to add to the PhotoInfo class > > > > to process the org.apache.axis.message.MessageElement[] > > object. Do I need to "manually" parse that object in the > > PhotoCatalogBindingImpl class to get > > > > the values of customerName and photoID? > > > > > > > > Any other help would be appreciated.. > > > > > > > > thanks, > > > > Karl Schwarz > > > > System Architect > > > > Northrop Grumman > > > > > > > > > > > > >