Have you created a JIRA bug report? (make sure u try Axis 1.2 Beta first) -- dims
--- [EMAIL PROTECTED] wrote: > >>Now, the task doing schemas first, makes sense..That way you won't get > >>tempted to expose platform specific stuff..Great. > > Yeah, that's what I thought...wrong! Boy, I don't mean to complain (here > it comes), but the folks developing web services have somehow missed the > boat! > > Ok, you say that you should implement your schema first so you don't get > bogged down in any particular implementation's specifics. Sounds good, I > thought the same thing. Here's what I found. I found a nice program I > liked for modeling my WSDL. Problem was, what does it matter how the > schema is modeled if no development toolkit can properly generate from it? > This is a big problem. For example, I tried Sun One Studio and found > that when it generated proxy code, it dropped argument names from the > methods/operations. What good is this? For example, say you have a > method to reverse a string and optionally convert the case. Say it looks > like: > > string StringHandler(string input, int caseConversionOption); > > Now, if the proxy had a method that looked like that, it would be fairly > intuitive! But, alas, the names that ended up were more like: > > string StringHandler(string string1, int int1); > > Well, what good is that? How will a user know what the arguments are? > Yeah right...I ain't doing any stinking doc, it should be self > documenting! > > Next, I haven't used a toolkit yet that handles adding restrictions on > arguments. For example, instead of merely having string arguments, I used > simple types that inherited from base types (xsd:string in this example) > that provided length restrictions. WSDL supports a maxLength restriction > so I thought, and the WSDL modeling tool I used supported, specifying > these would be good to enforce strings of the proper length. But, this > has been nothing but a hassle. First, none of the generated proxy code > classes to handle these types are very intuitive. For example, while the > WSDL specifies that my special restricted types inherit from strings, the > generated proxy classes for these special types do not inherit from their > available string classes. Why? Because the languages I am working in > (java, .NET), have final/sealed string classes preventing inheritance. > Never noticed it before I started having trouble with it. I would love to > hear why the language designers chose to prevent developers from > inheriting from a string! And, even once you discover how to use the > proxy generated class, still not a one of them has actually generated any > code to enforce the restriction! I thought though, maybe one day the > toolkits will be caught up and then it would have been good for me to > design the schema that way...yeah right! So far for me, using > complexTypes (not sure this is the correct term, but any type inheriting > from a primitive type) has been nothing but a mistake. Avoid it like the > plague. > > Next, I originally implemented my web service about 9 months ago in Axis > 1.1. I don't really remember consciously choosing rpc/encoded versus > doc/literal, but I ended up with rpc/encoded. Since I was implementing in > Axis, this was probably a good choice. I have test clients in java that > work just fine with it. But, woe is me, the time came I needed to consume > my own web service in .NET. I thought, no problem. I have already > consumed several others with Visual Studio.NET 2003, so no problem. When > it works, I haven't seen a dev env yet that is easier to consume a web > service with...yeah, I said "when it works". Ok, so I try to consume my > own web service...and I can't. It doesn't work. How embarrassing, I > can't even consume my own web service...but I expect everyone else to! I > guess this answers the age old conundrum... "can God create a rock so > heavy he can't lift it?" Yes, if he is using web services! ;-) > > I search message boards to no avail. So, I decide to use one of our > precious free (included with MSDN subscription really) Microsoft support > calls on this one. That was three weeks ago. After the second support > guy toyed with my emotions by leading me to believe I could get a hotfix > to remedy this, I had the rug pulled out from under me and now, no hotfix. > I have been told that the basic problem is .NET will not support an > rpc/encoded web service with argument types like I have. They look like: > > <xsd:simpleType name="messageText_t"> > <xsd:restriction base="xsd:string"> > <xsd:maxLength value="200"/> > </xsd:restriction> > </xsd:simpleType> > > in the original modeled wsdl, but they look like: > > <complexType name="messageText_t"> > <simpleContent> > <extension base="xsd:string" /> > </simpleContent> > </complexType> > > in the WSDL that Axis 1.1 spits out. If you end up with types that look > like these, run! > > I have tried using both WSDLs (modeled and Axis generated) in VS.NET to > generate proxy code, but neither works. So, 3 weeks after opening the > support call, I have no other choice but to change my web service from > rpc/encoded to doc/literal!!! MS says WS-I no longer supports rpc/encoded > anyway. What a pain, I have to change the web service! Great, now we > have a client redistribution problem. > > So, I decide alright, I'll changed the web service to doc/literal. Guess > what, it doesn't work in Axis 1.1. The code generator works. I get no > error. But, when I try to see the Axis produced WSDL by going to > URL?wsdl, I get a java.lang.reflect.InvocationTargetException exception. > Then I read where Axis 1.1 doesn't really support doc/literal that well, > so I download Axis 1.2alpha. Guess what? It still doesn't work!!! > > So, now I have a MS/.NET environment that only likes doc/literal web > services and a java environment that only likes rpc/encoded web services! > And what are web services specifically meant to solve? Wasn't it > interoperability? Good job, folks!!! I don't need a web service so my MS > can talk to my MS and my java can talk to my java, but thanks for making > it more complicated. ;-) > > So, you want suggestions? All animosity aside (thank God I am not > bitter), here are my suggestions for web service success: > > 1. Do not use any types other than simple, primitive, types. > 2. Co-develop in all required platforms at least the calling mechanism to > ensure the web services can be called from all client platforms important > to you. Otherwise you may end up stuck like I am. > 3. Try to get paid by the hour while working on web services! > > > > > > ----- Original Message ----- > > Anne, > > Thanx for the fast info..Just the thing I needed. > > Now, the task doing schemas first, makes sense..That way you won't get > tempted to expose platform specific stuff..Great. > > Maybe for once in a lifetime I should follow the .NET guides and do things > the MS way :-) > I can see that Axis 1.2 is alpha...Anyone knows of the beta or final > release > plans..? > > Best regards > > Henrik > > > > ----- Original Message ----- > From: "Anne Thomas Manes" <[EMAIL PROTECTED]> > To: <[EMAIL PROTECTED]> > Sent: Wednesday, April 14, 2004 3:38 PM > Subject: RE: Need suggestions on web service interop and design > > > > Henrik, > > > > The WS-I Basic Profile disallows the use of SOAP Encoding. It allows > only > > Document/Literal and RPC/Literal. Technically, WS-I BP doesn't *require* > > support for RPC/Literal, though. Microsoft fought long and hard to > exclude > > RPC-style from the WS-I BP, but they lost that vote. In any case, > Microsoft > > does not support RPC/Literal, and my guess is that they will never > support > > RPC/Literal. (Please note, though, that the JAX-RPC specification > requires > > support for RPC/Literal.) > > > > If you want to design for interoperability, you should use > Document/Literal. > > Axis 1.2 provides much better support for Document/Literal than previous > > releases. > > > > I suggest that you follow the .NET guides and define your schema first > -- > > then generate your beans from the schema. This approach ensures that you > > won't attempt to expose Java collections through your WS interface. > > > > For best interoperability, your interface should consist of simple > types, > > arrays (defined using minOccurs/maxOccurs), and complex types defined as > > sequence structures of simple types, arrays, and/or sequence structures. > > > > Anne > > > > -----Original Message----- > > From: HG [mailto:[EMAIL PROTECTED] > > Sent: Wednesday, April 14, 2004 3:43 AM > > To: [EMAIL PROTECTED] > > Subject: Need suggestions on web service interop and design > > > > Hi all > > > > I have developed some WebServices using Axis...nothing big...just a > couple > > of examples serializing beans and so between a java (Axis) server and a > java > > client...however...now a project is arising where web services is going > to > > be used in large scale... > > > === message truncated === ===== Davanum Srinivas - http://webservices.apache.org/~dims/