Dies, there are several if's and but's :) so the bottom line is to start with a wsdl and run the code generator (wsdl2java) that's guaranteed to work.
thanks, dims On 1/10/06, Dies Koper <[EMAIL PROTECTED]> wrote: > Hello Jarmo, Dims, > > About your #1 issue, I think it is a problem with the sample. > > The exception extends java.rmi.RemoteException. > This superclass has a public Throwable "detail" field. > So when you run java2wsdl, it'll try to map the detail field that your > exception class inherited to XML. However, there is no standard mapping > for fields of type Throwable, so it warns you to register a custom > mapper, and continues by mapping the field to an xsd:anyType (optional > mapping according to the JAX-RPC1.1 spec). > > When you create your client classes from the WSDL you'll end up with a > "detail" field of java.lang.Object or SOAPElement, not sure which, as > again there is no default mapping for this type. > > The JAX-RPC 1.1 spec speaks of service specific Java exception (declared > as checked exceptions) and RemoteExceptions (and its subclasses), with > the latter being used for problems related to remote method invocations > (java.rmi.ConnectionException when you forgot to start the webserver, etc.). > > The sample's exception name is NoSuchEmployeeFault, which I think is a > service specific exception, and therefore should extend > java.lang.Exception, not java.lang.RemoteException. > > Dims, > According to the following bug report you committed this sample. > > http://issues.apache.org/bugzilla/show_bug.cgi?id=19682 > > I'd like to hear your comments about my comments above. > > Regards, > Dies > > > Jarmo Doc wrote: > > I do use document/literal. > > > > On the #1 issue below, I see the following from java2wsdl: > > > > - Please register a typemapping/beanmapping for 'xyz.myexception' > > - The class java.lang.Throwable is defined in a java or javax package > > and cannot be converted into an xml schema type. An xml schema anyType > > will be used to define this class in the wsdl file. > > > > How do I 'tweak' the WSDL to correct these issues? > > > > On the #2 issue below, I eventually found a workaround which is instead > > of writing the following: > > > > public class Employer > > { > > public int employerID; > > public Employee [] employees; > > } > > > > just write the following: > > > > public class Employer > > { > > public int employerID; > > public Employee [] employees; // could be private > > > > public Employee [] getEmployees() > > { > > return this.employees; > > } > > > > public void setEmployees(Employee [] employees) > > { > > this.employees = employees; > > } > > } > > > > This 'hack' solved all my problems to do with having to use > > ArrayOfEmployee in boith the Axis server and Axis clients. > > > > On #3, I don't have a solution yet so may have to create an intermediate > > class that contains the Booleans and then pass that class to the > > operation rather than passing the contained Booleans. > > > >> From: Davanum Srinivas <[EMAIL PROTECTED]> > >> Reply-To: [EMAIL PROTECTED] > >> To: axis-user@ws.apache.org > >> Subject: Re: Axis 1.3 suitable for production env? > >> Date: Tue, 10 Jan 2006 11:58:31 -0500 > >> > >> for 1/2/3. You need to use java2wsdl ONLY once, then tweak it. Make > >> sure u use document/literal and not rpc/encoded. > >> > >> thanks, > >> dims > >> > >> On 1/10/06, Jarmo Doc <[EMAIL PROTECTED]> wrote: > >> > Is Axis 1.3 suitable for a production environment? And is it the most > >> > suitable Axis version for a production environment? > >> > > >> > I ask because some very, very basic things appear to cause major > >> headaches: > >> > > >> > 1. exceptions descending from java.rmi.RemoteException (as per the Axis > >> > sample NoSuchEmployeeFault) cause java2wsdl to report "The class > >> > java.lang.Throwable is defined in a java or javax package and cannot be > >> > converted into an xml schema type. An xml schema anyType will be > >> used to > >> > define this class in the wsdl file." > >> > > >> > 2. you have to jump through hoops to avoid intermediate ArrayOfxxxx > >> classes. > >> > > >> > 3. Boolean parameters to operations appear to be converted to intrinsic > >> > booleans (note lowercase) in an Axis client so you can only pass > >> true/false > >> > when you need to be able to pass true/false/null. > > > > > > _________________________________________________________________ > > Express yourself instantly with MSN Messenger! Download today - it's > > FREE! http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/ > > > > > > -- Davanum Srinivas : http://wso2.com/blogs/