You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by John Grantham <jg...@shawlink.ca> on 2006/06/09 20:54:31 UTC

Problem with WSDL2Java Generated Code using JiBX bindings


I wonder if anybody has encountered this issue, and might know if i  
am doing something wrong, or if this is a bug?

I am using WSDL2Java, which works ok with regular ADB bindings.  I  
want to use my own java value objects, however, and have been trying  
out JiBX.  My jibx bindings test out ok, and the WSDL2Java code  
generation using jibx works somewhat, but it generates a  
MessageReceiverInOut class that has a compilation problem where it  
catches my custom exception and calls toOm(...).

also, none of the /resources files are getting generated, including  
services.xml.

intel mac
Eclipse 3.2.0
java 1.5.0-06
jibx 1.1


----------------------------------------------------

Here are my schemas:


<?xml version="1.0" encoding="UTF-8" ?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
   targetNamespace="http://nextgen.ubc/schema/Dictionary"
   xmlns:dict="http://nextgen.ubc/schema/Dictionary">

   <xsd:simpleType name="StudentNumber">
     <xsd:restriction base="xsd:string">
       <xsd:length value="8"/>
     </xsd:restriction>
   </xsd:simpleType>

   <xsd:simpleType name="LastName">
     <xsd:restriction base="xsd:string">
       <xsd:maxLength value="20"/>
     </xsd:restriction>
   </xsd:simpleType>

   <xsd:simpleType name="GivenName">
     <xsd:restriction base="xsd:string">
       <xsd:maxLength value="20"/>
     </xsd:restriction>
   </xsd:simpleType>

   <xsd:simpleType name="Program">
     <xsd:restriction base="xsd:string">
       <xsd:minLength value="2"/>
       <xsd:maxLength value="4"/>
     </xsd:restriction>
   </xsd:simpleType>

   <xsd:simpleType name="Campus">
     <xsd:restriction base="xsd:string">
       <xsd:enumeration value="VAN"/>
       <xsd:enumeration value="OKAN"/>
     </xsd:restriction>
   </xsd:simpleType>

   <xsd:simpleType name="Street">
     <xsd:restriction base="xsd:string">
       <xsd:maxLength value="30"/>
     </xsd:restriction>
   </xsd:simpleType>

   <xsd:simpleType name="City">
     <xsd:restriction base="xsd:string">
       <xsd:maxLength value="30"/>
     </xsd:restriction>
   </xsd:simpleType>

   <xsd:simpleType name="Province">
     <xsd:restriction base="xsd:string">
       <xsd:enumeration value="BC"/>
       <xsd:enumeration value="AB"/>
       <xsd:enumeration value="SK"/>
       <xsd:enumeration value="MB"/>
       <xsd:enumeration value="ON"/>
       <xsd:enumeration value="PQ"/>
       <xsd:enumeration value="NB"/>
       <xsd:enumeration value="NS"/>
       <xsd:enumeration value="PE"/>
       <xsd:enumeration value="NF"/>
       <xsd:enumeration value="YT"/>
       <xsd:enumeration value="NT"/>
     </xsd:restriction>
   </xsd:simpleType>

   <xsd:simpleType name="PostalCode">
     <xsd:restriction base="xsd:string">
       <xsd:pattern value="([A-Z]\d[A-Z]\d[A-Z]\d)"/>
     </xsd:restriction>
   </xsd:simpleType>

   <xsd:simpleType name="ErrorMessage">
     <xsd:restriction base="xsd:string">
       <xsd:maxLength value="30"/>
     </xsd:restriction>
   </xsd:simpleType>

   <xsd:simpleType name="ErrorCode">
     <xsd:restriction base="xsd:string">
       <xsd:length value="4"/>
     </xsd:restriction>
   </xsd:simpleType>
</xsd:schema>



<?xml version="1.0" encoding="UTF-8" ?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
   targetNamespace="http://nextgen.ubc/schema/StudentKey"
   xmlns:key="http://nextgen.ubc/schema/StudentKey"
   xmlns:dict="http://nextgen.ubc/schema/Dictionary">

   <xsd:import namespace="http://nextgen.ubc/schema/Dictionary"  
schemaLocation="Dictionary.xsd"/>

   <xsd:element name="StudentNumber" type="dict:StudentNumber"/>

   <xsd:element name="StudentKey">
     <xsd:complexType>
       <xsd:sequence>
         <xsd:element ref="key:StudentNumber" minOccurs="1"  
maxOccurs="1"/>
       </xsd:sequence>
     </xsd:complexType>
   </xsd:element>
</xsd:schema>



<?xml version="1.0" encoding="UTF-8" ?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
   targetNamespace="http://nextgen.ubc/schema/Address"
   xmlns:addr="http://nextgen.ubc/schema/Address"
   xmlns:dict="http://nextgen.ubc/schema/Dictionary">

   <xsd:import namespace="http://nextgen.ubc/schema/Dictionary"  
schemaLocation="Dictionary.xsd"/>

   <xsd:element name="StudentNumber" type="dict:StudentNumber"/>
   <xsd:element name="Street" type="dict:Street"/>
   <xsd:element name="City" type="dict:City"/>
   <xsd:element name="Province" type="dict:Province"/>
   <xsd:element name="PostalCode" type="dict:PostalCode"/>

   <xsd:element name="Address">
     <xsd:complexType>
       <xsd:sequence>
         <xsd:element ref="addr:StudentNumber" minOccurs="1"  
maxOccurs="1"/>
         <xsd:element ref="addr:Street" minOccurs="1" maxOccurs="1"/>
         <xsd:element ref="addr:City" minOccurs="1" maxOccurs="1"/>
         <xsd:element ref="addr:Province" minOccurs="1" maxOccurs="1"/>
         <xsd:element ref="addr:PostalCode" minOccurs="1"  
maxOccurs="1"/>
       </xsd:sequence>
     </xsd:complexType>
   </xsd:element>
</xsd:schema>



<?xml version="1.0" encoding="UTF-8" ?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
   targetNamespace="http://nextgen.ubc/schema/StandardError"
   xmlns:err="http://nextgen.ubc/schema/StandardError"
   xmlns:dict="http://nextgen.ubc/schema/Dictionary">

   <xsd:import namespace="http://nextgen.ubc/schema/Dictionary"  
schemaLocation="Dictionary.xsd"/>

   <xsd:element name="ErrorMessage" type="dict:ErrorMessage"/>
   <xsd:element name="ErrorCode" type="dict:ErrorCode"/>

   <xsd:element name="StandardError">
     <xsd:complexType>
       <xsd:sequence>
         <xsd:element ref="err:ErrorMessage" minOccurs="1"  
maxOccurs="1"/>
         <xsd:element ref="err:ErrorCode" minOccurs="1" maxOccurs="1"/>
       </xsd:sequence>
     </xsd:complexType>
   </xsd:element>
</xsd:schema>


----------------------------------

This is my wsdl file:

<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions name="AddressRetrieval"
	xmlns:xsd="http://www.w3.org/2001/XMLSchema"
   xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
   xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding"
	xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
	xmlns:key="http://nextgen.ubc/schema/StudentKey"
	xmlns:addr="http://nextgen.ubc/schema/Address"	
	xmlns:err="http://nextgen.ubc/schema/StandardError"	
	xmlns:service="http://nextgen.ubc/wsdl/AddressRetrieval"
	targetNamespace="http://nextgen.ubc/wsdl/AddressRetrieval">
	
	<wsdl:types>
     <xsd:schema>
       <xsd:import namespace="http://nextgen.ubc/schema/StudentKey"  
schemaLocation="../schemas/StudentKey.xsd"/>
       <xsd:import namespace="http://nextgen.ubc/schema/Address"  
schemaLocation="../schemas/Address.xsd"/>
       <xsd:import namespace="http://nextgen.ubc/schema/ 
StandardError" schemaLocation="../schemas/StandardError.xsd"/>
     </xsd:schema>
	</wsdl:types>

	<wsdl:message name="AddressRequest">
		<wsdl:part element="key:StudentKey" name="AddressRequest" />
	</wsdl:message>

	<wsdl:message name="AddressResponse">
		<wsdl:part element="addr:Address" name="AddressResponse" />
	</wsdl:message>

   <wsdl:message name="StandardError">
     <wsdl:part element="err:StandardError" name="StandardError" />
   </wsdl:message>

	<wsdl:portType name="AddressRetrieval">
		<wsdl:operation name="getAddress">
			<wsdl:input message="service:AddressRequest" />
			<wsdl:output message="service:AddressResponse" />
       <wsdl:fault message="service:StandardError"  
name="StandardError" />
		</wsdl:operation>
	</wsdl:portType>

	<wsdl:binding name="AddressRetrievalSOAPBinding"
	  type="service:AddressRetrieval">
		<soap:binding style="document"
		  transport="http://schemas.xmlsoap.org/soap/http" />
		<wsdl:operation name="getAddress">
			<soap:operation soapAction="http://nextgen.ubc/wsdl/operation/ 
getAddress" />
			<wsdl:input>
				<soap:body parts="AddressRequest" use="literal" />
			</wsdl:input>
			<wsdl:output>
				<soap:body parts="AddressResponse"	use="literal" />
			</wsdl:output>
       <wsdl:fault name="StandardError" >
         <soap:fault name="StandardError" use="literal" />
       </wsdl:fault>
		</wsdl:operation>
	</wsdl:binding>

	<wsdl:service name="AddressRetrievalService">
		<wsdl:port binding="service:AddressRetrievalSOAPBinding"
		  name="AddressRetrieval">
			<soap:address	location="http://www4.students.ubc.ca:9180/axis2/ 
services/AddressRetrievalService" />
		</wsdl:port>
	</wsdl:service>
</wsdl:definitions>


---------------------------------------------

These are my dto classes:


package ubc.nextgen.dto;

public class StudentKey {

   private String studentNumber = null;

   private StudentKey() {} // required by jibx compiler

   public StudentKey(String studentNumber) {
     this.studentNumber = studentNumber;
   }

   public String getStudentNumber() {
     return studentNumber;
   }
}



package ubc.nextgen.dto;

public class Address {

   private String studentNumber = null;
   private String street = null;
   private String city = null;
   private String province = null;
   private String postalCode = null;

   private Address() {} // necessary for jibx binding compiler

   public Address(String studentNumber, String street, String city,  
String province, String postalCode) {
     this.studentNumber = studentNumber;
     this.street = street;
     this.city = city;
     this.province = province;
     this.postalCode = postalCode;
   }

   public String getCity() {
     return city;
   }

   public String getPostalCode() {
     return postalCode;
   }

   public String getProvince() {
     return province;
   }

   public String getStreet() {
     return street;
   }

   public String getStudentNumber() {
     return studentNumber;
   }
}




package ubc.nextgen.dto;

public class StandardError {

   private String errorCode = null;
   private String errorMessage = null;

   private StandardError() {}

   public StandardError(String errorCode, String errorMessage) {
     this.errorCode = errorCode;
     this.errorMessage = errorMessage;
   }

   public String getErrorCode() {
     return errorCode;
   }

   public String getErrorMessage() {
     return errorMessage;
   }
}


----------------------------------------


This is my jibx binding file:


<binding>
   <mapping name="Address" class="ubc.nextgen.dto.Address">
     <namespace uri="http://nextgen.ubc/schema/Address"  
default="elements"/>
     <value name="StudentNumber" field="studentNumber"/>
     <value name="Street" field="street"/>
     <value name="City" field="city"/>
     <value name="Province" field="province"/>
     <value name="PostalCode" field="postalCode"/>
   </mapping>

   <mapping name="StudentKey" class="ubc.nextgen.dto.StudentKey">
     <namespace uri="http://nextgen.ubc/schema/StudentKey"  
default="elements"/>
     <value name="StudentNumber" field="studentNumber"/>
   </mapping>

   <mapping name="StandardError" class="ubc.nextgen.dto.StandardError">
     <namespace uri="http://nextgen.ubc/schema/StandardError"  
default="elements"/>
     <value name="ErrorCode" field="errorCode"/>
     <value name="ErrorMessage" field="errorMessage"/>
   </mapping>
</binding>


----------------------------------------

This is my Java2Wsdl command:

./WSDL2Java.sh -uri Workspace/nextgen/server/xml/wsdl/ 
AddressRetrieval.wsdl -s -ss -g -ssi -sd -d jibx -p  
ubc.nextgen.service.address -o Workspace/nextgen/server -Ebindingfile  
Workspace/nextgen/server/xml/binding/binding.xml

-----------------------------------------

And these are the generated service classes:

/**
* AddressRetrievalServiceMessageReceiverInOut.java This file was
* auto-generated from WSDL by the Apache Axis2 version: 1.0 May 04, 2006
* (09:21:04 IST)
*/
package ubc.nextgen.service.address;

/**
* AddressRetrievalServiceMessageReceiverInOut message receiver
*/
public class AddressRetrievalServiceMessageReceiverInOut
     extends  
org.apache.axis2.receivers.AbstractInOutSyncMessageReceiver {
     //
     private static javax.xml.namespace.QName[] qNameArray = {  };
     private static final org.jibx.runtime.IBindingFactory  
bindingFactory;

     static {
         org.jibx.runtime.IBindingFactory factory = null;

         try {
             factory = org.jibx.runtime.BindingDirectory.getFactory 
(ubc.nextgen.dto.Address.class);
         } catch (Exception e) {
             /**
              * intentionally empty - report error on usage attempt
              */
         }

         bindingFactory = factory;
     }

     public void invokeBusinessLogic(
         org.apache.axis2.context.MessageContext msgContext,
         org.apache.axis2.context.MessageContext newMsgContext)
         throws org.apache.axis2.AxisFault {
         try {
             // get the implementation class for the Web Service
             Object obj = getTheImplementationObject(msgContext);

             //Inject the Message Context if it is asked for
              
org.apache.axis2.engine.DependencyManager.configureBusinessLogicProvider 
(obj,
                 msgContext.getOperationContext());

             AddressRetrievalServiceSkeletonInterface skel =  
(AddressRetrievalServiceSkeletonInterface) obj;

             //Out Envelop
             org.apache.axiom.soap.SOAPEnvelope envelope = null;

             //Find the axisOperation that has been set by the  
Dispatch phase.
             org.apache.axis2.description.AxisOperation op =  
msgContext.getOperationContext()
                                                                       . 
getAxisOperation();

             if (op == null) {
                 throw new org.apache.axis2.AxisFault(
                     "Operation is not located, if this is doclit  
style the SOAP-ACTION should specified via the SOAP Action to use the  
RawXMLProvider");
             }

             String methodName;

             if ((op.getName() != null) &
                     ((methodName = op.getName().getLocalPart()) !=  
null)) {
                 if ("getAddress".equals(methodName)) {
                     ubc.nextgen.dto.Address param5 = null;

                     //doc style
                     param5 = skel.getAddress 
((ubc.nextgen.dto.StudentKey) fromOM(
                                 msgContext.getEnvelope().getBody()
                                           .getFirstElement(),
                                 ubc.nextgen.dto.StudentKey.class,
                                 getEnvelopeNamespaces 
(msgContext.getEnvelope())));

                     envelope = toEnvelope(getSOAPFactory 
(msgContext), param5,
                             false);
                 }

                 newMsgContext.setEnvelope(envelope);
             }
         } catch  
(ubc.nextgen.service.address.AddressRetrievalServiceSkeleton.StandardErr 
orException e) {
             org.apache.axis2.AxisFault f = new  
org.apache.axis2.AxisFault(
                     "StandardErrorException");
             f.setDetail(toOM(e.getFaultMessage(), false));
             throw f;
         }
         catch (Exception e) {
             throw org.apache.axis2.AxisFault.makeFault(e);
         }
     }

     private org.apache.axiom.om.OMElement toOM 
(ubc.nextgen.dto.Address param,
         org.apache.axiom.soap.SOAPFactory factory, boolean  
optimizeContent) {
         if (param instanceof org.jibx.runtime.IMarshallable) {
             if (bindingFactory == null) {
                 throw new RuntimeException(
                     "Could not find JiBX binding information for  
ubc.nextgen.dto.Address, JiBX binding unusable");
             }

             org.jibx.runtime.IMarshallable marshallable =  
(org.jibx.runtime.IMarshallable) param;
             int index = marshallable.JiBX_getIndex();
             org.apache.axis2.jibx.JiBXDataSource source = new  
org.apache.axis2.jibx.JiBXDataSource(marshallable,
                     bindingFactory);
             org.apache.axiom.om.OMNamespace namespace =  
factory.createOMNamespace(bindingFactory.getElementNamespaces()[index],
                     null);

             return factory.createOMElement(source,
                 bindingFactory.getElementNames()[index], namespace);
         } else {
             throw new RuntimeException(
                 "No JiBX <mapping> defined for class  
ubc.nextgen.dto.Address");
         }
     }

     private org.apache.axiom.soap.SOAPEnvelope toEnvelope(
         org.apache.axiom.soap.SOAPFactory factory,
         ubc.nextgen.dto.Address param, boolean optimizeContent) {
         org.apache.axiom.soap.SOAPEnvelope envelope =  
factory.getDefaultEnvelope();

         if (param != null) {
             envelope.getBody().addChild(toOM(param, factory,  
optimizeContent));
         }

         return envelope;
     }

     private org.apache.axiom.om.OMElement toOM(
         org.apache.axiom.om.OMElement param,
         org.apache.axiom.soap.SOAPFactory factory, boolean  
optimizeContent) {
         if (param instanceof org.jibx.runtime.IMarshallable) {
             if (bindingFactory == null) {
                 throw new RuntimeException(
                     "Could not find JiBX binding information for  
ubc.nextgen.dto.Address, JiBX binding unusable");
             }

             org.jibx.runtime.IMarshallable marshallable =  
(org.jibx.runtime.IMarshallable) param;
             int index = marshallable.JiBX_getIndex();
             org.apache.axis2.jibx.JiBXDataSource source = new  
org.apache.axis2.jibx.JiBXDataSource(marshallable,
                     bindingFactory);
             org.apache.axiom.om.OMNamespace namespace =  
factory.createOMNamespace(bindingFactory.getElementNamespaces()[index],
                     null);

             return factory.createOMElement(source,
                 bindingFactory.getElementNames()[index], namespace);
         } else {
             throw new RuntimeException(
                 "No JiBX <mapping> defined for class  
org.apache.axiom.om.OMElement");
         }
     }

     private org.apache.axiom.soap.SOAPEnvelope toEnvelope(
         org.apache.axiom.soap.SOAPFactory factory,
         org.apache.axiom.om.OMElement param, boolean optimizeContent) {
         org.apache.axiom.soap.SOAPEnvelope envelope =  
factory.getDefaultEnvelope();

         if (param != null) {
             envelope.getBody().addChild(toOM(param, factory,  
optimizeContent));
         }

         return envelope;
     }

     private org.apache.axiom.om.OMElement toOM(
         ubc.nextgen.dto.StudentKey param,
         org.apache.axiom.soap.SOAPFactory factory, boolean  
optimizeContent) {
         if (param instanceof org.jibx.runtime.IMarshallable) {
             if (bindingFactory == null) {
                 throw new RuntimeException(
                     "Could not find JiBX binding information for  
ubc.nextgen.dto.Address, JiBX binding unusable");
             }

             org.jibx.runtime.IMarshallable marshallable =  
(org.jibx.runtime.IMarshallable) param;
             int index = marshallable.JiBX_getIndex();
             org.apache.axis2.jibx.JiBXDataSource source = new  
org.apache.axis2.jibx.JiBXDataSource(marshallable,
                     bindingFactory);
             org.apache.axiom.om.OMNamespace namespace =  
factory.createOMNamespace(bindingFactory.getElementNamespaces()[index],
                     null);

             return factory.createOMElement(source,
                 bindingFactory.getElementNames()[index], namespace);
         } else {
             throw new RuntimeException(
                 "No JiBX <mapping> defined for class  
ubc.nextgen.dto.StudentKey");
         }
     }

     private org.apache.axiom.soap.SOAPEnvelope toEnvelope(
         org.apache.axiom.soap.SOAPFactory factory,
         ubc.nextgen.dto.StudentKey param, boolean optimizeContent) {
         org.apache.axiom.soap.SOAPEnvelope envelope =  
factory.getDefaultEnvelope();

         if (param != null) {
             envelope.getBody().addChild(toOM(param, factory,  
optimizeContent));
         }

         return envelope;
     }

     /**
      * get the default envelope
      */
     private org.apache.axiom.soap.SOAPEnvelope toEnvelope(
         org.apache.axiom.soap.SOAPFactory factory) {
         return factory.getDefaultEnvelope();
     }

     private java.lang.Object fromOM(org.apache.axiom.om.OMElement  
param,
         java.lang.Class type, java.util.Map extraNamespaces) {
         try {
             if (bindingFactory == null) {
                 throw new RuntimeException(
                     "Could not find JiBX binding information for  
com.sosnoski.seismic.jibxsoap.Query, JiBX binding unusable");
             }

             org.jibx.runtime.impl.UnmarshallingContext ctx =  
(org.jibx.runtime.impl.UnmarshallingContext)  
bindingFactory.createUnmarshallingContext();
             org.jibx.runtime.IXMLReader reader = new  
org.jibx.runtime.impl.StAXReaderWrapper 
(param.getXMLStreamReaderWithoutCaching(),
                     "SOAP-message", true);
             ctx.setDocument(reader);

             return ctx.unmarshalElement(type);
         } catch (Exception e) {
             throw new RuntimeException(e);
         }
     }

     /**
      * A utility method that copies the namepaces from the SOAPEnvelope
      */
     private java.util.Map getEnvelopeNamespaces(
         org.apache.axiom.soap.SOAPEnvelope env) {
         java.util.Map returnMap = new java.util.HashMap();
         java.util.Iterator namespaceIterator =  
env.getAllDeclaredNamespaces();

         while (namespaceIterator.hasNext()) {
             org.apache.axiom.om.OMNamespace ns =  
(org.apache.axiom.om.OMNamespace) namespaceIterator.next();
             returnMap.put(ns.getPrefix(), ns.getName());
         }

         return returnMap;
     }
} //end of class


/**
* AddressRetrievalServiceSkeleton.java This file was auto-generated  
from WSDL
* by the Apache Axis2 version: 1.0 May 04, 2006 (09:21:04 IST)
*/
package ubc.nextgen.service.address;

/**
* AddressRetrievalServiceSkeleton java skeleton for the axisService
*/
public class AddressRetrievalServiceSkeleton
     implements AddressRetrievalServiceSkeletonInterface {
     /**
      * Auto generated method signature
      *
      * @param param2
      */
     public ubc.nextgen.dto.Address getAddress 
(ubc.nextgen.dto.StudentKey param2)
         throws  
ubc.nextgen.service.address.AddressRetrievalServiceSkeleton.StandardErro 
rException {
         //Todo fill this with the necessary business logic
         throw new java.lang.UnsupportedOperationException();
     }

     public static class StandardErrorException extends  
java.rmi.RemoteException {
         private org.apache.axiom.om.OMElement faultMessage;

         public void setFaultMessage(org.apache.axiom.om.OMElement  
msg) {
             faultMessage = msg;
         }

         public org.apache.axiom.om.OMElement getFaultMessage() {
             return faultMessage;
         }
     }
}



/**
* AddressRetrievalServiceSkeletonInterface.java This file was auto- 
generated
* from WSDL by the Apache Axis2 version: 1.0 May 04, 2006 (09:21:04 IST)
*/
package ubc.nextgen.service.address;

/**
* AddressRetrievalServiceSkeletonInterface java skeleton interface  
for the
* axisService
*/
public interface AddressRetrievalServiceSkeletonInterface {
     /**
      * Auto generated method signature
      *
      * @param param0
      */
     public ubc.nextgen.dto.Address getAddress 
(ubc.nextgen.dto.StudentKey param0)
         throws  
ubc.nextgen.service.address.AddressRetrievalServiceSkeleton.StandardErro 
rException;
}




Re: Problem with WSDL2Java Generated Code using JiBX bindings

Posted by Dennis Sosnoski <dm...@sosnoski.com>.
Hi John,

I'd suspect the problem here is in the use of a fault - this is 
something I hadn't tried out, and it looks like it's confusing things 
because of the special way Axis2 code generation handles the exception. 
I'm not even sure what's actually appropriate in this case - should your 
StandardError class actually be an exception, or should there be a 
generated exception class that has a StandardError field? In any case, 
you should enter this in Jira and attach the files. I'm hoping to get 
the code in place for unwrapping message elements using JiBX binding 
over the next week or so, and will try to get this fixed at the same time.

Incidentally, you no longer need to supply default constructors in your 
data classes, you can instead use the add-constructors='true' attribute 
on your <binding> element (added as part of the JiBX 1.1 changes).

Thanks for including "JiBX" in the subject line of your email. I don't 
try to follow all the Axis(1) messages on these lists, so unless the 
subject line mentions Axis2 or JiBX I'm probably not going to read it.

  - Dennis

Dennis M. Sosnoski
SOA, Web Services, and XML
Training and Consulting
http://www.sosnoski.com - http://www.sosnoski.co.nz
Seattle, WA +1-425-296-6194 - Wellington, NZ +64-4-298-6117



John Grantham wrote:
>
>
> I wonder if anybody has encountered this issue, and might know if i am 
> doing something wrong, or if this is a bug?
>
> I am using WSDL2Java, which works ok with regular ADB bindings.  I 
> want to use my own java value objects, however, and have been trying 
> out JiBX.  My jibx bindings test out ok, and the WSDL2Java code 
> generation using jibx works somewhat, but it generates a 
> MessageReceiverInOut class that has a compilation problem where it 
> catches my custom exception and calls toOm(...).
>
> also, none of the /resources files are getting generated, including 
> services.xml.
>
> intel mac
> Eclipse 3.2.0
> java 1.5.0-06
> jibx 1.1
>
>
> ----------------------------------------------------
>
> Here are my schemas:
>
>
> <?xml version="1.0" encoding="UTF-8" ?>
> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>   targetNamespace="http://nextgen.ubc/schema/Dictionary" 
>   xmlns:dict="http://nextgen.ubc/schema/Dictionary">
>
>   <xsd:simpleType name="StudentNumber">
>     <xsd:restriction base="xsd:string">
>       <xsd:length value="8"/>
>     </xsd:restriction>
>   </xsd:simpleType>
>
>   <xsd:simpleType name="LastName">
>     <xsd:restriction base="xsd:string">
>       <xsd:maxLength value="20"/>
>     </xsd:restriction>
>   </xsd:simpleType>
>
>   <xsd:simpleType name="GivenName">
>     <xsd:restriction base="xsd:string">
>       <xsd:maxLength value="20"/>
>     </xsd:restriction>
>   </xsd:simpleType>
>
>   <xsd:simpleType name="Program">
>     <xsd:restriction base="xsd:string">
>       <xsd:minLength value="2"/>
>       <xsd:maxLength value="4"/>
>     </xsd:restriction>
>   </xsd:simpleType>
>
>   <xsd:simpleType name="Campus">
>     <xsd:restriction base="xsd:string">
>       <xsd:enumeration value="VAN"/>
>       <xsd:enumeration value="OKAN"/>
>     </xsd:restriction>
>   </xsd:simpleType>
>
>   <xsd:simpleType name="Street">
>     <xsd:restriction base="xsd:string">
>       <xsd:maxLength value="30"/>
>     </xsd:restriction>
>   </xsd:simpleType>
>
>   <xsd:simpleType name="City">
>     <xsd:restriction base="xsd:string">
>       <xsd:maxLength value="30"/>
>     </xsd:restriction>
>   </xsd:simpleType>
>
>   <xsd:simpleType name="Province">
>     <xsd:restriction base="xsd:string">
>       <xsd:enumeration value="BC"/>
>       <xsd:enumeration value="AB"/>
>       <xsd:enumeration value="SK"/>
>       <xsd:enumeration value="MB"/>
>       <xsd:enumeration value="ON"/>
>       <xsd:enumeration value="PQ"/>
>       <xsd:enumeration value="NB"/>
>       <xsd:enumeration value="NS"/>
>       <xsd:enumeration value="PE"/>
>       <xsd:enumeration value="NF"/>
>       <xsd:enumeration value="YT"/>
>       <xsd:enumeration value="NT"/>
>     </xsd:restriction>
>   </xsd:simpleType>
>
>   <xsd:simpleType name="PostalCode">
>     <xsd:restriction base="xsd:string">
>       <xsd:pattern value="([A-Z]\d[A-Z]\d[A-Z]\d)"/>
>     </xsd:restriction>
>   </xsd:simpleType>
>
>   <xsd:simpleType name="ErrorMessage">
>     <xsd:restriction base="xsd:string">
>       <xsd:maxLength value="30"/>
>     </xsd:restriction>
>   </xsd:simpleType>
>
>   <xsd:simpleType name="ErrorCode">
>     <xsd:restriction base="xsd:string">
>       <xsd:length value="4"/>
>     </xsd:restriction>
>   </xsd:simpleType>
> </xsd:schema>
>
>
>
> <?xml version="1.0" encoding="UTF-8" ?>
> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>   targetNamespace="http://nextgen.ubc/schema/StudentKey" 
>   xmlns:key="http://nextgen.ubc/schema/StudentKey"
>   xmlns:dict="http://nextgen.ubc/schema/Dictionary">
>
>   <xsd:import namespace="http://nextgen.ubc/schema/Dictionary" 
> schemaLocation="Dictionary.xsd"/>
>
>   <xsd:element name="StudentNumber" type="dict:StudentNumber"/>
>
>   <xsd:element name="StudentKey">
>     <xsd:complexType>
>       <xsd:sequence>
>         <xsd:element ref="key:StudentNumber" minOccurs="1" maxOccurs="1"/>
>       </xsd:sequence>
>     </xsd:complexType>
>   </xsd:element>
> </xsd:schema>
>
>
>
> <?xml version="1.0" encoding="UTF-8" ?>
> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>   targetNamespace="http://nextgen.ubc/schema/Address" 
>   xmlns:addr="http://nextgen.ubc/schema/Address"
>   xmlns:dict="http://nextgen.ubc/schema/Dictionary">
>
>   <xsd:import namespace="http://nextgen.ubc/schema/Dictionary" 
> schemaLocation="Dictionary.xsd"/>
>
>   <xsd:element name="StudentNumber" type="dict:StudentNumber"/>
>   <xsd:element name="Street" type="dict:Street"/>
>   <xsd:element name="City" type="dict:City"/>
>   <xsd:element name="Province" type="dict:Province"/>
>   <xsd:element name="PostalCode" type="dict:PostalCode"/>
>
>   <xsd:element name="Address">
>     <xsd:complexType>
>       <xsd:sequence>
>         <xsd:element ref="addr:StudentNumber" minOccurs="1" 
> maxOccurs="1"/>
>         <xsd:element ref="addr:Street" minOccurs="1" maxOccurs="1"/>
>         <xsd:element ref="addr:City" minOccurs="1" maxOccurs="1"/>
>         <xsd:element ref="addr:Province" minOccurs="1" maxOccurs="1"/>
>         <xsd:element ref="addr:PostalCode" minOccurs="1" maxOccurs="1"/>
>       </xsd:sequence>
>     </xsd:complexType>
>   </xsd:element>
> </xsd:schema>
>
>
>
> <?xml version="1.0" encoding="UTF-8" ?>
> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>   targetNamespace="http://nextgen.ubc/schema/StandardError" 
>   xmlns:err="http://nextgen.ubc/schema/StandardError"
>   xmlns:dict="http://nextgen.ubc/schema/Dictionary">
>
>   <xsd:import namespace="http://nextgen.ubc/schema/Dictionary" 
> schemaLocation="Dictionary.xsd"/>
>
>   <xsd:element name="ErrorMessage" type="dict:ErrorMessage"/>
>   <xsd:element name="ErrorCode" type="dict:ErrorCode"/>
>
>   <xsd:element name="StandardError">
>     <xsd:complexType>
>       <xsd:sequence>
>         <xsd:element ref="err:ErrorMessage" minOccurs="1" maxOccurs="1"/>
>         <xsd:element ref="err:ErrorCode" minOccurs="1" maxOccurs="1"/>
>       </xsd:sequence>
>     </xsd:complexType>
>   </xsd:element>
> </xsd:schema>
>
>
> ----------------------------------
>
> This is my wsdl file:
>
> <?xml version="1.0" encoding="UTF-8"?>
> <wsdl:definitions name="AddressRetrieval"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
>   xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
>   xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding"
> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
> xmlns:key="http://nextgen.ubc/schema/StudentKey"
> xmlns:addr="http://nextgen.ubc/schema/Address"
> xmlns:err="http://nextgen.ubc/schema/StandardError"
> xmlns:service="http://nextgen.ubc/wsdl/AddressRetrieval"
> targetNamespace="http://nextgen.ubc/wsdl/AddressRetrieval">
>
>
> <wsdl:types>
>     <xsd:schema>
>       <xsd:import namespace="http://nextgen.ubc/schema/StudentKey" 
> schemaLocation="../schemas/StudentKey.xsd"/>
>       <xsd:import namespace="http://nextgen.ubc/schema/Address" 
> schemaLocation="../schemas/Address.xsd"/>
>       <xsd:import namespace="http://nextgen.ubc/schema/StandardError" 
> schemaLocation="../schemas/StandardError.xsd"/>
>     </xsd:schema>
> </wsdl:types>
>
> <wsdl:message name="AddressRequest">
> <wsdl:part element="key:StudentKey" name="AddressRequest" />
> </wsdl:message>
>
> <wsdl:message name="AddressResponse">
> <wsdl:part element="addr:Address" name="AddressResponse" />
> </wsdl:message>
>
>   <wsdl:message name="StandardError">
>     <wsdl:part element="err:StandardError" name="StandardError" />
>   </wsdl:message>
>
> <wsdl:portType name="AddressRetrieval">
> <wsdl:operation name="getAddress">
> <wsdl:input message="service:AddressRequest" />
> <wsdl:output message="service:AddressResponse" />
>       <wsdl:fault message="service:StandardError" name="StandardError" />
> </wsdl:operation>
> </wsdl:portType>
>
> <wsdl:binding name="AddressRetrievalSOAPBinding" 
>   type="service:AddressRetrieval">
> <soap:binding style="document" 
>   transport="http://schemas.xmlsoap.org/soap/http" />
> <wsdl:operation name="getAddress">
> <soap:operation 
> soapAction="http://nextgen.ubc/wsdl/operation/getAddress" />
> <wsdl:input>
> <soap:body parts="AddressRequest" use="literal" />
> </wsdl:input>
> <wsdl:output>
> <soap:body parts="AddressResponse" use="literal" />
> </wsdl:output>
>       <wsdl:fault name="StandardError" >
>         <soap:fault name="StandardError" use="literal" />
>       </wsdl:fault>
> </wsdl:operation>
> </wsdl:binding>
>
> <wsdl:service name="AddressRetrievalService">
> <wsdl:port binding="service:AddressRetrievalSOAPBinding" 
>   name="AddressRetrieval">
> <soap:address 
> location="http://www4.students.ubc.ca:9180/axis2/services/AddressRetrievalService" 
> />
> </wsdl:port>
> </wsdl:service>
> </wsdl:definitions>
>
>
> ---------------------------------------------
>
> These are my dto classes:
>
>
> package ubc.nextgen.dto;
>
> public class StudentKey {
>
>   private String studentNumber = null;
>
>   
>
>   private StudentKey() {} // required by jibx compiler
>
>   
>
>   public StudentKey(String studentNumber) {
>     this.studentNumber = studentNumber;
>   }
>
>   
>
>   public String getStudentNumber() {
>     return studentNumber;
>   }
> }
>
>
>
> package ubc.nextgen.dto;
>
> public class Address {
>
>   
>
>   private String studentNumber = null;
>   private String street = null;
>   private String city = null;
>   private String province = null;
>   private String postalCode = null;
>
>   private Address() {} // necessary for jibx binding compiler
>
>   
>
>   public Address(String studentNumber, String street, String city, 
> String province, String postalCode) {
>     this.studentNumber = studentNumber;
>     this.street = street;
>     this.city = city;
>     this.province = province;
>     this.postalCode = postalCode;
>   }
>
>   public String getCity() {
>     return city;
>   }
>
>   public String getPostalCode() {
>     return postalCode;
>   }
>
>   public String getProvince() {
>     return province;
>   }
>
>   public String getStreet() {
>     return street;
>   }
>
>   public String getStudentNumber() {
>     return studentNumber;
>   }
> }
>
>
>
>
> package ubc.nextgen.dto;
>
> public class StandardError {
>
>   
>
>   private String errorCode = null;
>   private String errorMessage = null;
>
>   
>
>   private StandardError() {}
>
>   
>
>   public StandardError(String errorCode, String errorMessage) {
>     this.errorCode = errorCode;
>     this.errorMessage = errorMessage;
>   }
>
>   public String getErrorCode() {
>     return errorCode;
>   }
>
>   public String getErrorMessage() {
>     return errorMessage;
>   }
> }
>
>
> ----------------------------------------
>
>
> This is my jibx binding file:
>
>
> <binding>
>   <mapping name="Address" class="ubc.nextgen.dto.Address">
>     <namespace uri="http://nextgen.ubc/schema/Address" 
> default="elements"/>
>     <value name="StudentNumber" field="studentNumber"/>
>     <value name="Street" field="street"/>
>     <value name="City" field="city"/>
>     <value name="Province" field="province"/>
>     <value name="PostalCode" field="postalCode"/>
>   </mapping>
>
>   <mapping name="StudentKey" class="ubc.nextgen.dto.StudentKey">
>     <namespace uri="http://nextgen.ubc/schema/StudentKey" 
> default="elements"/>
>     <value name="StudentNumber" field="studentNumber"/>
>   </mapping>
>
>   <mapping name="StandardError" class="ubc.nextgen.dto.StandardError">
>     <namespace uri="http://nextgen.ubc/schema/StandardError" 
> default="elements"/>
>     <value name="ErrorCode" field="errorCode"/>
>     <value name="ErrorMessage" field="errorMessage"/>
>   </mapping>
> </binding>
>
>
> ----------------------------------------
>
> This is my Java2Wsdl command:
>
> ./WSDL2Java.sh -uri 
> Workspace/nextgen/server/xml/wsdl/AddressRetrieval.wsdl -s -ss -g -ssi 
> -sd -d jibx -p ubc.nextgen.service.address -o Workspace/nextgen/server 
> -Ebindingfile Workspace/nextgen/server/xml/binding/binding.xml
>
> -----------------------------------------
>
> And these are the generated service classes:
>
> /**
> * AddressRetrievalServiceMessageReceiverInOut.java This file was
> * auto-generated from WSDL by the Apache Axis2 version: 1.0 May 04, 2006
> * (09:21:04 IST)
> */
> package ubc.nextgen.service.address;
>
> /**
> * AddressRetrievalServiceMessageReceiverInOut message receiver
> */
> public class AddressRetrievalServiceMessageReceiverInOut
>     extends org.apache.axis2.receivers.AbstractInOutSyncMessageReceiver {
>     //
>     private static javax.xml.namespace.QName[] qNameArray = {  };
>     private static final org.jibx.runtime.IBindingFactory bindingFactory;
>
>     static {
>         org.jibx.runtime.IBindingFactory factory = null;
>
>         try {
>             factory = 
> org.jibx.runtime.BindingDirectory.getFactory(ubc.nextgen.dto.Address.class);
>         } catch (Exception e) {
>             /**
>              * intentionally empty - report error on usage attempt
>              */
>         }
>
>         bindingFactory = factory;
>     }
>
>     public void invokeBusinessLogic(
>         org.apache.axis2.context.MessageContext msgContext,
>         org.apache.axis2.context.MessageContext newMsgContext)
>         throws org.apache.axis2.AxisFault {
>         try {
>             // get the implementation class for the Web Service
>             Object obj = getTheImplementationObject(msgContext);
>
>             //Inject the Message Context if it is asked for
>             
> org.apache.axis2.engine.DependencyManager.configureBusinessLogicProvider(obj,
>                 msgContext.getOperationContext());
>
>             AddressRetrievalServiceSkeletonInterface skel = 
> (AddressRetrievalServiceSkeletonInterface) obj;
>
>             //Out Envelop
>             org.apache.axiom.soap.SOAPEnvelope envelope = null;
>
>             //Find the axisOperation that has been set by the Dispatch 
> phase.
>             org.apache.axis2.description.AxisOperation op = 
> msgContext.getOperationContext()
>                                                                       
> .getAxisOperation();
>
>             if (op == null) {
>                 throw new org.apache.axis2.AxisFault(
>                     "Operation is not located, if this is doclit style 
> the SOAP-ACTION should specified via the SOAP Action to use the 
> RawXMLProvider");
>             }
>
>             String methodName;
>
>             if ((op.getName() != null) &
>                     ((methodName = op.getName().getLocalPart()) != 
> null)) {
>                 if ("getAddress".equals(methodName)) {
>                     ubc.nextgen.dto.Address param5 = null;
>
>                     //doc style
>                     param5 = 
> skel.getAddress((ubc.nextgen.dto.StudentKey) fromOM(
>                                 msgContext.getEnvelope().getBody()
>                                           .getFirstElement(),
>                                 ubc.nextgen.dto.StudentKey.class,
>                                 
> getEnvelopeNamespaces(msgContext.getEnvelope())));
>
>                     envelope = toEnvelope(getSOAPFactory(msgContext), 
> param5,
>                             false);
>                 }
>
>                 newMsgContext.setEnvelope(envelope);
>             }
>         } catch 
> (ubc.nextgen.service.address.AddressRetrievalServiceSkeleton.StandardErrorException 
> e) {
>             org.apache.axis2.AxisFault f = new org.apache.axis2.AxisFault(
>                     "StandardErrorException");
>             f.setDetail(toOM(e.getFaultMessage(), false));
>             throw f;
>         }
>         catch (Exception e) {
>             throw org.apache.axis2.AxisFault.makeFault(e);
>         }
>     }
>
>     private org.apache.axiom.om.OMElement toOM(ubc.nextgen.dto.Address 
> param,
>         org.apache.axiom.soap.SOAPFactory factory, boolean 
> optimizeContent) {
>         if (param instanceof org.jibx.runtime.IMarshallable) {
>             if (bindingFactory == null) {
>                 throw new RuntimeException(
>                     "Could not find JiBX binding information for 
> ubc.nextgen.dto.Address, JiBX binding unusable");
>             }
>
>             org.jibx.runtime.IMarshallable marshallable = 
> (org.jibx.runtime.IMarshallable) param;
>             int index = marshallable.JiBX_getIndex();
>             org.apache.axis2.jibx.JiBXDataSource source = new 
> org.apache.axis2.jibx.JiBXDataSource(marshallable,
>                     bindingFactory);
>             org.apache.axiom.om.OMNamespace namespace = 
> factory.createOMNamespace(bindingFactory.getElementNamespaces()[index],
>                     null);
>
>             return factory.createOMElement(source,
>                 bindingFactory.getElementNames()[index], namespace);
>         } else {
>             throw new RuntimeException(
>                 "No JiBX <mapping> defined for class 
> ubc.nextgen.dto.Address");
>         }
>     }
>
>     private org.apache.axiom.soap.SOAPEnvelope toEnvelope(
>         org.apache.axiom.soap.SOAPFactory factory,
>         ubc.nextgen.dto.Address param, boolean optimizeContent) {
>         org.apache.axiom.soap.SOAPEnvelope envelope = 
> factory.getDefaultEnvelope();
>
>         if (param != null) {
>             envelope.getBody().addChild(toOM(param, factory, 
> optimizeContent));
>         }
>
>         return envelope;
>     }
>
>     private org.apache.axiom.om.OMElement toOM(
>         org.apache.axiom.om.OMElement param,
>         org.apache.axiom.soap.SOAPFactory factory, boolean 
> optimizeContent) {
>         if (param instanceof org.jibx.runtime.IMarshallable) {
>             if (bindingFactory == null) {
>                 throw new RuntimeException(
>                     "Could not find JiBX binding information for 
> ubc.nextgen.dto.Address, JiBX binding unusable");
>             }
>
>             org.jibx.runtime.IMarshallable marshallable = 
> (org.jibx.runtime.IMarshallable) param;
>             int index = marshallable.JiBX_getIndex();
>             org.apache.axis2.jibx.JiBXDataSource source = new 
> org.apache.axis2.jibx.JiBXDataSource(marshallable,
>                     bindingFactory);
>             org.apache.axiom.om.OMNamespace namespace = 
> factory.createOMNamespace(bindingFactory.getElementNamespaces()[index],
>                     null);
>
>             return factory.createOMElement(source,
>                 bindingFactory.getElementNames()[index], namespace);
>         } else {
>             throw new RuntimeException(
>                 "No JiBX <mapping> defined for class 
> org.apache.axiom.om.OMElement");
>         }
>     }
>
>     private org.apache.axiom.soap.SOAPEnvelope toEnvelope(
>         org.apache.axiom.soap.SOAPFactory factory,
>         org.apache.axiom.om.OMElement param, boolean optimizeContent) {
>         org.apache.axiom.soap.SOAPEnvelope envelope = 
> factory.getDefaultEnvelope();
>
>         if (param != null) {
>             envelope.getBody().addChild(toOM(param, factory, 
> optimizeContent));
>         }
>
>         return envelope;
>     }
>
>     private org.apache.axiom.om.OMElement toOM(
>         ubc.nextgen.dto.StudentKey param,
>         org.apache.axiom.soap.SOAPFactory factory, boolean 
> optimizeContent) {
>         if (param instanceof org.jibx.runtime.IMarshallable) {
>             if (bindingFactory == null) {
>                 throw new RuntimeException(
>                     "Could not find JiBX binding information for 
> ubc.nextgen.dto.Address, JiBX binding unusable");
>             }
>
>             org.jibx.runtime.IMarshallable marshallable = 
> (org.jibx.runtime.IMarshallable) param;
>             int index = marshallable.JiBX_getIndex();
>             org.apache.axis2.jibx.JiBXDataSource source = new 
> org.apache.axis2.jibx.JiBXDataSource(marshallable,
>                     bindingFactory);
>             org.apache.axiom.om.OMNamespace namespace = 
> factory.createOMNamespace(bindingFactory.getElementNamespaces()[index],
>                     null);
>
>             return factory.createOMElement(source,
>                 bindingFactory.getElementNames()[index], namespace);
>         } else {
>             throw new RuntimeException(
>                 "No JiBX <mapping> defined for class 
> ubc.nextgen.dto.StudentKey");
>         }
>     }
>
>     private org.apache.axiom.soap.SOAPEnvelope toEnvelope(
>         org.apache.axiom.soap.SOAPFactory factory,
>         ubc.nextgen.dto.StudentKey param, boolean optimizeContent) {
>         org.apache.axiom.soap.SOAPEnvelope envelope = 
> factory.getDefaultEnvelope();
>
>         if (param != null) {
>             envelope.getBody().addChild(toOM(param, factory, 
> optimizeContent));
>         }
>
>         return envelope;
>     }
>
>     /**
>      * get the default envelope
>      */
>     private org.apache.axiom.soap.SOAPEnvelope toEnvelope(
>         org.apache.axiom.soap.SOAPFactory factory) {
>         return factory.getDefaultEnvelope();
>     }
>
>     private java.lang.Object fromOM(org.apache.axiom.om.OMElement param,
>         java.lang.Class type, java.util.Map extraNamespaces) {
>         try {
>             if (bindingFactory == null) {
>                 throw new RuntimeException(
>                     "Could not find JiBX binding information for 
> com.sosnoski.seismic.jibxsoap.Query, JiBX binding unusable");
>             }
>
>             org.jibx.runtime.impl.UnmarshallingContext ctx = 
> (org.jibx.runtime.impl.UnmarshallingContext) 
> bindingFactory.createUnmarshallingContext();
>             org.jibx.runtime.IXMLReader reader = new 
> org.jibx.runtime.impl.StAXReaderWrapper(param.getXMLStreamReaderWithoutCaching(),
>                     "SOAP-message", true);
>             ctx.setDocument(reader);
>
>             return ctx.unmarshalElement(type);
>         } catch (Exception e) {
>             throw new RuntimeException(e);
>         }
>     }
>
>     /**
>      * A utility method that copies the namepaces from the SOAPEnvelope
>      */
>     private java.util.Map getEnvelopeNamespaces(
>         org.apache.axiom.soap.SOAPEnvelope env) {
>         java.util.Map returnMap = new java.util.HashMap();
>         java.util.Iterator namespaceIterator = 
> env.getAllDeclaredNamespaces();
>
>         while (namespaceIterator.hasNext()) {
>             org.apache.axiom.om.OMNamespace ns = 
> (org.apache.axiom.om.OMNamespace) namespaceIterator.next();
>             returnMap.put(ns.getPrefix(), ns.getName());
>         }
>
>         return returnMap;
>     }
> } //end of class
>
>
> /**
> * AddressRetrievalServiceSkeleton.java This file was auto-generated 
> from WSDL
> * by the Apache Axis2 version: 1.0 May 04, 2006 (09:21:04 IST)
> */
> package ubc.nextgen.service.address;
>
> /**
> * AddressRetrievalServiceSkeleton java skeleton for the axisService
> */
> public class AddressRetrievalServiceSkeleton
>     implements AddressRetrievalServiceSkeletonInterface {
>     /**
>      * Auto generated method signature
>      *
>      * @param param2
>      */
>     public ubc.nextgen.dto.Address 
> getAddress(ubc.nextgen.dto.StudentKey param2)
>         throws 
> ubc.nextgen.service.address.AddressRetrievalServiceSkeleton.StandardErrorException 
> {
>         //Todo fill this with the necessary business logic
>         throw new java.lang.UnsupportedOperationException();
>     }
>
>     public static class StandardErrorException extends 
> java.rmi.RemoteException {
>         private org.apache.axiom.om.OMElement faultMessage;
>
>         public void setFaultMessage(org.apache.axiom.om.OMElement msg) {
>             faultMessage = msg;
>         }
>
>         public org.apache.axiom.om.OMElement getFaultMessage() {
>             return faultMessage;
>         }
>     }
> }
>
>
>
> /**
> * AddressRetrievalServiceSkeletonInterface.java This file was 
> auto-generated
> * from WSDL by the Apache Axis2 version: 1.0 May 04, 2006 (09:21:04 IST)
> */
> package ubc.nextgen.service.address;
>
> /**
> * AddressRetrievalServiceSkeletonInterface java skeleton interface for the
> * axisService
> */
> public interface AddressRetrievalServiceSkeletonInterface {
>     /**
>      * Auto generated method signature
>      *
>      * @param param0
>      */
>     public ubc.nextgen.dto.Address 
> getAddress(ubc.nextgen.dto.StudentKey param0)
>         throws 
> ubc.nextgen.service.address.AddressRetrievalServiceSkeleton.StandardErrorException;
> }
>
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-user-help@ws.apache.org