Ozzie, Can you please submit a stripped down complete sample that we can drop into say samples/castor directory in Axis 1.2 Beta release? (http://nagoya.apache.org/wiki/apachewiki.cgi?AxisProjectPages/SubmitPatches)
Thanks, dims --- "Gurkan, Ozzie (MAN-Corporate)" <[EMAIL PROTECTED]> wrote: > 1. Castor generates special classes when you use the "xs:restriction" for > simpleType in the schema. These special classes have no public constructors > and can only be created via the use of "valueOf" method. Since Java doesn't > provide "Enum" data types like C, C++ does, everyone has their own type-safe > Enum implementation, and Castor is one of them. > > 2. You only need to add custom typeMappings into wsdd for these Enum type > classes. The other generated classes are JavaBeans that have public no-arg > constructors and hence are mappable using beanMappings tags in the wsdd > file. > > 3. Yes. > > 4. Yes. The namespaces are read from the schema file and are not lost. The > only thing that happens is that you now have control over the java package > names. > > 5. Right, you don't need to give the client any custom > serializer/deserializers, since the WSDL file will automatically contain the > correct schema for generation. > > 6. Once you have the wsdd setup correctly on the server-side, generate the > WSDL file by running the server and pointing to ?wsdl URI. Then feed this > file into the Wsdl2Java class provided by Axis. As a matter of fact, you can > feed the URL to WSDL directly into the generator. Here is a batch file > snippet to run the Wsdl2Java generator: > > <snip> > set > axis.jar=%JAVALIBS%\jakarta\axis\1_1RC1\lib\axis.jar;%JAVALIBS%\jakarta\axis > \1_1RC1\lib\saaj.jar;%JAVALIBS%\jakarta\axis\1_1RC1\lib\jaxrpc.jar;%JAVALIBS > %\jakarta\axis\1_1RC1\lib\commons-logging.jar;%JAVALIBS%\jakarta\axis\1_1RC1 > \lib\commons-discovery.jar > set > xerces.jar=%JAVALIBS%\jakarta\xerces\2.2.1\lib\xercesImpl.jar;%JAVALIBS%\jak > arta\xerces\2.2.1\lib\xmlParserAPIs.jar > set cp=%classpath%;%axis.jar%;%xerces.jar% > > java -cp %cp% org.apache.axis.wsdl.WSDL2Java > http://localhost:8080/server/axis/Services?wsdl > </snip> > > There is also good documentation on the Axis website on how to use it, too. > > -----Original Message----- > From: Pradeep Jonnalagadda [mailto:[EMAIL PROTECTED] > Sent: Thursday, December 11, 2003 2:46 PM > To: [EMAIL PROTECTED] > Subject: RE: 1.2 alpha and castor serialization > > > > Hi Ozzie, > Thanks for the help. I have few questions based on ur > email reply. 1. What are castor enum type classes. 2. Do i have to change > typmapping for every entry in deploy.wsdd file to refer to > CastorEnumTypeSerializorFactory/CastorEnumTypeSerializorFactory or only few > selected castor classes files.If so what kind of castor files?? 3. Can we > use Doc/literal with ur approach. 4.When you define namespaces package > mappings in castorbuilder.properties file and generate source with source > generator do you see namespace references in Descriptor files??. For example > the descriptor code might look like this > public AliasDescriptor() { > super(); > nsURI = "http://beans"; > setExtendsWithoutFlatten(new beans.AliasTypeDescriptor()); > xmlName = "Alias"; > } //-- > > 5. Can i infer that i do not need to make any changes on client side .Can u > send ur client code??. 6. How do you generate client code from thw wsdl?. Ur > answers would help a, lot. thx pradeep. > > > ---------------------------------------------------------------------------- > ------------ > > This is a PRIVATE message. If you are not the intended recipient, please > delete without copying and kindly advise us by e-mail of the mistake in > delivery. NOTE: Regardless of content, this e-mail shall not operate to bind > CSC to any order or other contract unless pursuant to explicit written > agreement or government initiative expressly permitting the use of e-mail > for such purpose. > ---------------------------------------------------------------------------- > ------------ > > > > > > > "Gurkan, Ozzie > > (MAN-Corporate)" To: > "'[EMAIL PROTECTED]'" <[EMAIL PROTECTED]> > > <Ozzie.Gurkan cc: > > @cox.com> Subject: RE: 1.2 alpha and > castor serialization > > > 12/11/2003 01:04 > > PM > > Please respond > > to axis-user > > > > > > > > > > One other advantage to my approach is that the client side doesn't need the > Castor Serializer/Deserializers at all--not even the enum type. That is > because I allow the WSDL to be created by Axis Server automatically and > hence the WSDL2Java creates pure Bean Serializer/Deserialzer code. As a > matter of fact, I don't generate client code anymore. I just tell my clients > to get the WSDL and generate it themselves. They have no clue that I am > using Castor beans in the background! > > Ozzie > > -----Original Message----- > From: Gurkan, Ozzie (MAN-Corporate) [mailto:[EMAIL PROTECTED] > Sent: Thursday, December 11, 2003 1:37 PM > To: '[EMAIL PROTECTED]' > Subject: RE: 1.2 alpha and castor serialization > > > Unlike the article, I don't include the XSD in the WSDL file. I let the > automatic WSDL generation process that Axis does generate it for me. I do > generate the castor classes (along with the *Descriptor classes) from the > XSD file and define these as beanMappings: > > <!-- Custom serializer/deserializer for Castor Enum > types--> > <typeMapping > deserializer > ="org.apache.axis.encoding.ser.castor.CastorEnumTypeDeserializer > Factory" qname="ns19:creditBrokerSelected" > serializer > ="org.apache.axis.encoding.ser.castor.CastorEnumTypeSerializerFact > ory" > type=" > java:com.manheim.service.creditreport.schema.types.CreditBrokerSelecte > dType" xmlns:ns19="http://creditreport.service.portal.manheim.com/2003/8"/> > > <!-- Normal BeanMapping tag for a Castor bean class > --> > <beanMapping > languageSpecificType=" > java:com.manheim.service.creditreport.schema.CreditChe > ckRequest" qname="ns176:creditCheckRequest" > xmlns:ns176="http://creditreport.service.portal.manheim.com/2003/8"/> > <beanMapping > languageSpecificType=" > java:com.manheim.service.creditreport.schema.CreditChe > ckResponse" qname="ns176:creditCheckResponse" > xmlns:ns176="http://creditreport.service.portal.manheim.com/2003/8"/> > > I am using RPC/encoded style and had it successfully working with literal, > too. The only difference is that when you are doing "literal", you have to > set the "encodingStyle" on the typeMapping element to a "". > > So, the difference from the article is that I don't allow delegation of the > entire SOAP body to a CastorSerializer, which ends up using DOM--that is > incredibly bad! I can attach the code for the EnumType serializer, if you do > need it. > > A couple things to note on the code generation: > - I almost always use namespace mapping to generate proper class package > names. That is specified in castorbuilder.properties. > - I wrap my messages with request and response objects. See beanMapping > elements, CreditCheckRequest and CreditCheckResponse. These objects inherit > a ServiceRequest and ServiceResponse abstract class. > > Advantages: > - No hand modification to WSDL. Use the ?wsdl to auto generate with no > customization. > - Uses standard BeanSerializer/Deserializer methods, which are optimized to > use SAX pipeline. > - Minimal customization for EnumTypes, which doesn't use DOM, and > automatically generates the proper schema for WSDL. > - Works with RPC encoded/literal, etc. > > > Ozzie Gurkan > > -----Original Message----- > From: Pradeep Jonnalagadda [mailto:[EMAIL PROTECTED] > Sent: Thursday, December 11, 2003 11:12 AM > To: [EMAIL PROTECTED] > Subject: RE: 1.2 alpha and castor serialization > > > === message truncated === ===== Davanum Srinivas - http://webservices.apache.org/~dims/