1.2.1 autogen WSDL seems to be wrong
I've written a simple web service (JWS) that includes a method that returns a complex type (well hardly complex, just a couple of strings and booleans). The auto-generated WSDL (using Axis 1_2_1 final) for this web service makes no sense to me. For example, I have two booleans in my complex type, something like this: class Person { public boolean istall; public boolean isrich; }; Yet the WSDL indicates: element name=istall type=xsd:anyType / element name=isrich type=tns3:boolean / Note the two different WSDL types for identical (boolean) Java types. Is this likely to be a bug in Axis 1_2_1 final? Should I be using a different version (which?) Thanks. _ Dont just search. Find. Check out the new MSN Search! http://search.msn.click-url.com/go/onm00200636ave/direct/01/
RE: 1.2.1 autogen WSDL seems to be wrong
Your class should be more consistent with the JavaBeans standard with private members that are 'tall' and 'rich' with getters 'isTall' and 'isRich' and setters 'setTall' and 'setRich' and I wager the Java2WSDL will be more consistent as well. Michael Oliver CTO Alarius Systems LLC 6800 E. Lake Mead Blvd, #1096 Las Vegas, NV 89156 Phone:(702)643-7425 Fax:(702)974-0341 *Note new email changed from [EMAIL PROTECTED] -Original Message- From: Jarmo Doc [mailto:[EMAIL PROTECTED] Sent: Wednesday, August 24, 2005 7:29 AM To: axis-user@ws.apache.org Subject: 1.2.1 autogen WSDL seems to be wrong I've written a simple web service (JWS) that includes a method that returns a complex type (well hardly complex, just a couple of strings and booleans). The auto-generated WSDL (using Axis 1_2_1 final) for this web service makes no sense to me. For example, I have two booleans in my complex type, something like this: class Person { public boolean istall; public boolean isrich; }; Yet the WSDL indicates: element name=istall type=xsd:anyType / element name=isrich type=tns3:boolean / Note the two different WSDL types for identical (boolean) Java types. Is this likely to be a bug in Axis 1_2_1 final? Should I be using a different version (which?) Thanks. _ Don't just search. Find. Check out the new MSN Search! http://search.msn.click-url.com/go/onm00200636ave/direct/01/
RE: 1.2.1 autogen WSDL seems to be wrong
Thanks for the quick reply Michael. I made that change but there is no improvement. Here are the relevant parts of my server-side class: public class MyMessage implements java.io.Serializable { private String uid; private String content; public MyMessage() {} public String getUid() { return uid; } public void setUid(String uid) { this.uid = uid; } public String getContent() { return content; } public void setContent(String content) { this.content = content; } }; I updated my JWS source file (and deleted the corresponding class file, just to be safe), restarted Tomcat, and requested the WSDL by invoking http://localhost:8080/axis/MyWebService.jws?wsdl and here are the (unexpected) results: complexType name=MyMessage sequence element name=content nillable=true type=xsd:anyType / element name=uid nillable=true type=tns2:String / /sequence /complexType Am I still writing my Java class incorrectly? From: Michael Oliver [EMAIL PROTECTED] Reply-To: [EMAIL PROTECTED] To: axis-user@ws.apache.org Subject: RE: 1.2.1 autogen WSDL seems to be wrong Date: Wed, 24 Aug 2005 07:34:23 -0700 Your class should be more consistent with the JavaBeans standard with private members that are 'tall' and 'rich' with getters 'isTall' and 'isRich' and setters 'setTall' and 'setRich' and I wager the Java2WSDL will be more consistent as well. Michael Oliver CTO Alarius Systems LLC 6800 E. Lake Mead Blvd, #1096 Las Vegas, NV 89156 Phone:(702)643-7425 Fax:(702)974-0341 *Note new email changed from [EMAIL PROTECTED] -Original Message- From: Jarmo Doc [mailto:[EMAIL PROTECTED] Sent: Wednesday, August 24, 2005 7:29 AM To: axis-user@ws.apache.org Subject: 1.2.1 autogen WSDL seems to be wrong I've written a simple web service (JWS) that includes a method that returns a complex type (well hardly complex, just a couple of strings and booleans). The auto-generated WSDL (using Axis 1_2_1 final) for this web service makes no sense to me. For example, I have two booleans in my complex type, something like this: class Person { public boolean istall; public boolean isrich; }; Yet the WSDL indicates: element name=istall type=xsd:anyType / element name=isrich type=tns3:boolean / Note the two different WSDL types for identical (boolean) Java types. Is this likely to be a bug in Axis 1_2_1 final? Should I be using a different version (which?) Thanks. _ Don't just search. Find. Check out the new MSN Search! http://search.msn.click-url.com/go/onm00200636ave/direct/01/ _ Dont just search. Find. Check out the new MSN Search! http://search.msn.click-url.com/go/onm00200636ave/direct/01/
RE: 1.2.1 autogen WSDL seems to be wrong
OK, good idea. I inserted a private String blah member above uid and added simple getter/setter methods and the deployed JWS yielded the following WSDL: complexType name=MyMessage sequence element name=blah nillable=true type=xsd:anyType / element name=content nillable=true type=tns2:String / element name=uid nillable=true type=tns2:String / /sequence /complexType So, that's obviously wrong and conceivably a significant bug in Axis 1_2_1 final. Then I ran java2wsdl manually with --style WRAPPED --use LITERAL options and it generated the following: complexType name=MyMessage sequence element name=blah nillable=true type=xsd:string/ element name=content nillable=true type=xsd:string/ element name=uid nillable=true type=xsd:string/ /sequence /complexType And that seems to be correct, given my nascent understanding of WSDL. So I'll continue to use java2wsdl rather than JWS deployment and see where it leads me. I'm quite sure that the ugly 'cannot deserialize java.lang.string' issue will be the next showstopper but we can discuss that in a new thread ;-) Thanks a lot for your help. From: Michael Oliver [EMAIL PROTECTED] Reply-To: [EMAIL PROTECTED] To: 'Jarmo Doc' [EMAIL PROTECTED] Subject: RE: 1.2.1 autogen WSDL seems to be wrong Date: Wed, 24 Aug 2005 09:40:43 -0700 Wow, it looks like a bug. Make one small change to your class and add a new member variable String any and the accessors getAny() and setAny() and see what happens. My guess is that the first variable no matter what it is, is getting the any type, but the rest are getting interpreted correctly. I don't use JWS myself and prefer to use ant and Java2WSDL and WSDL2Java for the added control and a more persistent implementation. Michael Oliver CTO Alarius Systems LLC 6800 E. Lake Mead Blvd, #1096 Las Vegas, NV 89156 Phone:(702)643-7425 Fax:(702)974-0341 *Note new email changed from [EMAIL PROTECTED] -Original Message- From: Jarmo Doc [mailto:[EMAIL PROTECTED] Sent: Wednesday, August 24, 2005 8:34 AM To: [EMAIL PROTECTED]; axis-user@ws.apache.org Subject: RE: 1.2.1 autogen WSDL seems to be wrong Thanks for the quick reply Michael. I made that change but there is no improvement. Here are the relevant parts of my server-side class: public class MyMessage implements java.io.Serializable { private String uid; private String content; public MyMessage() {} public String getUid() { return uid; } public void setUid(String uid) { this.uid = uid; } public String getContent() { return content; } public void setContent(String content) { this.content = content; } }; I updated my JWS source file (and deleted the corresponding class file, just to be safe), restarted Tomcat, and requested the WSDL by invoking http://localhost:8080/axis/MyWebService.jws?wsdl and here are the (unexpected) results: complexType name=MyMessage sequence element name=content nillable=true type=xsd:anyType / element name=uid nillable=true type=tns2:String / /sequence /complexType Am I still writing my Java class incorrectly? From: Michael Oliver [EMAIL PROTECTED] Reply-To: [EMAIL PROTECTED] To: axis-user@ws.apache.org Subject: RE: 1.2.1 autogen WSDL seems to be wrong Date: Wed, 24 Aug 2005 07:34:23 -0700 Your class should be more consistent with the JavaBeans standard with private members that are 'tall' and 'rich' with getters 'isTall' and 'isRich' and setters 'setTall' and 'setRich' and I wager the Java2WSDL will be more consistent as well. Michael Oliver CTO Alarius Systems LLC 6800 E. Lake Mead Blvd, #1096 Las Vegas, NV 89156 Phone:(702)643-7425 Fax:(702)974-0341 *Note new email changed from [EMAIL PROTECTED] -Original Message- From: Jarmo Doc [mailto:[EMAIL PROTECTED] Sent: Wednesday, August 24, 2005 7:29 AM To: axis-user@ws.apache.org Subject: 1.2.1 autogen WSDL seems to be wrong I've written a simple web service (JWS) that includes a method that returns a complex type (well hardly complex, just a couple of strings and booleans). The auto-generated WSDL (using Axis 1_2_1 final) for this web service makes no sense to me. For example, I have two booleans in my complex type, something like this: class Person { public boolean istall; public boolean isrich; }; Yet the WSDL indicates: element name=istall type=xsd:anyType / element name=isrich type=tns3:boolean / Note the two different WSDL types for identical (boolean) Java types. Is this likely to be a bug in Axis 1_2_1 final? Should I be using a different version (which?) Thanks. _ Don't just search. Find. Check out the new MSN Search! http://search.msn.click-url.com/go/onm00200636ave/direct/01/ _ Don't just search. Find. Check out the new MSN Search! http://search.msn.click-url.com/go/onm00200636ave/direct/01