Re: Client Code generator ..
> Hen, not to discourage since what I am working on is vapor since it hasn't > been released, but I am porting a WSDL2 Axis Client proxy (from another > source base) which I hope to have working with primitive types by the end of > the week (and damn that end is coming up fast :-(). I would be very interested to see a WSDL proxy generator. Since I specified SOAP as the reference platform for our services I have had a lot of success on the Microsoft platform (and quite a few services already in place), but now I am in real trouble with Java clients. I suggest you to try your tool against WSDL generated by the MS SOAP Toolkit 2.0 that is where the tools from Alphaworks do fail and hand coding is a bear. Are you also creating static types and mappers for complex types or is everything dynamic?
Issues in SOAP 2.2
Hello fellow developers(?) I'm running Apache SOAP 2.2 (not the nightly builds) and I'm having problem with the xsi:null attribute. I've found that xsi:null only works with the 99-xsi namespace. The problem is in the static method SoapEncUtils.isNull(Element element). Below is a quick fix I made to make this work with all namespaces for xsi. I have also included a new constant to make this method work with the Microsoft .Net Beta 2 who send xsi:null's as xsi:null="1". If this is allready fixed in the nightly builds please excuse this posting. cheers, -kims- org.apache.soap.encoding.soapenc.SoapEncUtils public static boolean isNull(Element element) { String nullValue = DOMUtils.getAttributeNS(element, Constants.NS_URI_1999_SCHEMA_XSI, Constants.ATTR_NULL); if( nullValue == null ) { nullValue = DOMUtils.getAttributeNS(element, Constants.NS_URI_2000_SCHEMA_XSI, Constants.ATTR_NULL); } if( nullValue == null ) { nullValue = DOMUtils.getAttributeNS(element, Constants.NS_URI_2001_SCHEMA_XSI, Constants.ATTR_NULL); } return (( nullValue != null ) && ( nullValue.equals(Constants.ATTRVAL_TRUE) || nullValue.equals(Constants.ATTRVAL_1))); } org.apache.soap.Constants public static String ATTRVAL_1 = "1";
I met an error
Hi, I'm Rocker Lee. I intalled SOAP tool kit and tested to find an error. When I use web browser to view, "http://localhost:8080/apache-soap/servlet/rpcrouter", which showed normal message in install guide. But I tried org.apache.soap.server.ServiceManagerClient, then " Ouch, the call failed: Fault Code = SOAP-ENV:Server.Exception: Fault String = java.lang.NoSuchMethodError " message appeared. My system is TOMCAT 3.2.2. SOAP 2.2 bsf2.2 activation 1.0.1 javamail 1.2 I used command like java -classpath C:\jdk1.3.1\lib\tools.jar;.;C:\jakarta-tomcat-3.2.2\lib\xerces.jar;C:\soap-2_2\lib\soap.jar;C:\jakarta-tomcat-3.2.2\lib\activation.jar;C:\jakarta-tomcat-3.2.2\lib\mail.jar;C:\soap-2_2\webapps\soap.war org.apache.soap.server.ServiceManagerClient http://localhost:8080/apache-soap/servlet/rpcrouter list What is the reason?
Re: Tomcat problem
Title: Please remove from list. I've just installed tomcat and when i'm running simple servlet everything goes fine, but at the end tomcat server closes himself. Is it something wrong with the configuration ? Please help me?
Re: Client Code generator ..
Michele, I am curious: have you tried WASP (http://www.idoox.com) or GLUE (http://www.themindelectric.com)? I have no experience with either, but both claim to support Java and WSDL. Scott - Original Message - From: "Michele Costabile" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]>; <[EMAIL PROTECTED]> Sent: Thursday, July 12, 2001 6:38 AM Subject: Re: Client Code generator .. > > Hen, not to discourage since what I am working on is vapor since it hasn't > > been released, but I am porting a WSDL2 Axis Client proxy (from another > > source base) which I hope to have working with primitive types by the end > of > > the week (and damn that end is coming up fast :-(). > > I would be very interested to see a WSDL proxy generator. Since I > specified SOAP as the reference platform for our services I have had a lot > of success on the Microsoft platform (and quite a few services already in > place), but now I am in real trouble with Java clients. > I suggest you to try your tool against WSDL generated by the MS SOAP Toolkit > 2.0 that is where the tools from Alphaworks do fail and hand coding is a > bear. > Are you also creating static types and mappers for complex types or is > everything dynamic? >
RE: Client Code generator ..
Hi Michele, At Cape Clear we have built a WSDL to Java (&VB) proxy generator as part of our CapeStudio toolset. This generator handles primitive & complex types, arrays etc. The tool also includes a graphical XSLT generator which performs bi-directional XML to XML, XML to SOAP and SOAP to SOAP mappings. A free early access version of the toolset is available from Tuesday 17th July (next week) on www.capeclear.com/capestudio. Cape Clear also have a Java,EJB and CORBA to WSDL generator as part of the CapeConnect Web Services platform. Hope this is useful, John -Original Message- From: Michele Costabile [mailto:[EMAIL PROTECTED]] Sent: 12 July 2001 11:39 To: [EMAIL PROTECTED]; [EMAIL PROTECTED] Subject: Re: Client Code generator .. > Hen, not to discourage since what I am working on is vapor since it hasn't > been released, but I am porting a WSDL2 Axis Client proxy (from another > source base) which I hope to have working with primitive types by the end of > the week (and damn that end is coming up fast :-(). I would be very interested to see a WSDL proxy generator. Since I specified SOAP as the reference platform for our services I have had a lot of success on the Microsoft platform (and quite a few services already in place), but now I am in real trouble with Java clients. I suggest you to try your tool against WSDL generated by the MS SOAP Toolkit 2.0 that is where the tools from Alphaworks do fail and hand coding is a bear. Are you also creating static types and mappers for complex types or is everything dynamic?
cvs commit: xml-soap/java/samples/interop EchoTestClient.java
rubys 01/07/12 08:59:11 Modified:java/samples/interop EchoTestClient.java Log: Make clear that faults and exceptions are not "OK" Revision ChangesPath 1.9 +5 -8 xml-soap/java/samples/interop/EchoTestClient.java Index: EchoTestClient.java === RCS file: /home/cvs/xml-soap/java/samples/interop/EchoTestClient.java,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- EchoTestClient.java 2001/07/10 13:06:57 1.8 +++ EchoTestClient.java 2001/07/12 15:59:08 1.9 @@ -233,7 +233,10 @@ Response resp = call.invoke(url, soapAction); // check response - if (!resp.generatedFault()) { + if (resp.generatedFault()) { +Fault fault = resp.getFault (); +System.out.println(methodName + "\t FAIL: " + fault.getFaultString()); + } else { Parameter ret = resp.getReturnValue(); Object output = (ret==null) ? null : ret.getValue(); Object input = (param==null) ? null : param.getValue(); @@ -244,15 +247,9 @@ System.out.println(methodName + "\t FAIL: " + output); } } - else { -Fault fault = resp.getFault (); -System.out.println (methodName + " generated fault: "); -System.out.println (" Fault Code = " + fault.getFaultCode()); -System.out.println (" Fault String = " + fault.getFaultString()); - } } catch (Exception e) { - e.printStackTrace(); + System.out.println(methodName + "\t FAIL: " + e); } } }
RE: Client Code generator ..
The Structs and arrays will have to wait another release. I am just trying to get the simplest thing out right now. The release after will be arrays, then at last Structs. It is planned that the Structs will be represented by classes with public fields. Those 'struct classes' are generated as inner classes of the Proxy. The word 'generated' here means java code generation. This gives the developer freedom to change the proxy to their hearts content. > > Are you also creating static types and mappers for complex types or is > everything dynamic? I am not certain what you mean by static types. I think the answer is yes since there is one given type established at the time the proxy generation tool is executed (at least that is how it works in the other source base). This could change since it appears that Axis's serialization is a bit more flexible. Cheers, ==>Lancer--- > -Original Message- > From: Michele Costabile [mailto:[EMAIL PROTECTED]] > Sent: Thursday, July 12, 2001 3:39 AM > To: [EMAIL PROTECTED]; [EMAIL PROTECTED] > Subject: Re: Client Code generator .. > > > > Hen, not to discourage since what I am working on is vapor > since it hasn't > > been released, but I am porting a WSDL2 Axis Client proxy > (from another > > source base) which I hope to have working with primitive > types by the end > of > > the week (and damn that end is coming up fast :-(). > > I would be very interested to see a WSDL proxy generator. Since I > specified SOAP as the reference platform for our services I > have had a lot > of success on the Microsoft platform (and quite a few > services already in > place), but now I am in real trouble with Java clients. > I suggest you to try your tool against WSDL generated by the > MS SOAP Toolkit > 2.0 that is where the tools from Alphaworks do fail and hand > coding is a > bear. > Are you also creating static types and mappers for complex types or is > everything dynamic? > KIND,LANCE (HP-FtCollins,ex1).vcf
cvs commit: xml-soap/java/samples/interop EchoTestClient.java
rubys 01/07/12 09:50:47 Modified:java/samples/interop EchoTestClient.java Log: Order the tests per http://www.whitemesa.com/interop/proposal2.html Revision ChangesPath 1.10 +22 -22xml-soap/java/samples/interop/EchoTestClient.java Index: EchoTestClient.java === RCS file: /home/cvs/xml-soap/java/samples/interop/EchoTestClient.java,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- EchoTestClient.java 2001/07/12 15:59:08 1.9 +++ EchoTestClient.java 2001/07/12 16:50:43 1.10 @@ -136,24 +136,25 @@ DecimalDeserializer decimalSer = new DecimalDeserializer(); BooleanDeserializer booleanSer = new BooleanDeserializer(); smr.mapTypes(Constants.NS_URI_SOAP_ENC, new QName(OBJECT_URI, "SOAPStruct"), Data.class, dataSer, dataSer); + +Parameter p = new Parameter("inputString", String.class, "Hi there!", null); +smr.mapTypes(Constants.NS_URI_SOAP_ENC, new QName("", "return"), null, null, stringDser); +doCall(url, "echoString", p); + +p = new Parameter("inputStringArray", String[].class, new String[]{ + "First", + "Second", + "Fifth (just kidding :))", + "Fourth", + "Last"}, null); +smr.mapTypes(Constants.NS_URI_SOAP_ENC, new QName("", "return"), null, null, arraySer); +doCall(url, "echoStringArray", p); Integer i = new Integer(5); -Parameter p = new Parameter("inputInteger", Integer.class, i, null); +p = new Parameter("inputInteger", Integer.class, i, null); smr.mapTypes(Constants.NS_URI_SOAP_ENC, new QName("", "return"), null, null, intDser); doCall(url, "echoInteger", p); -p = new Parameter("inputFloat", Float.class, new Float(55.5), null); -smr.mapTypes(Constants.NS_URI_SOAP_ENC, new QName("", "return"), null, null, floatDser); -doCall(url, "echoFloat", p); - -p = new Parameter("inputString", String.class, "Hi there!", null); -smr.mapTypes(Constants.NS_URI_SOAP_ENC, new QName("", "return"), null, null, stringDser); -doCall(url, "echoString", p); - -p = new Parameter("inputStruct", Data.class, new Data(5, "Hola, baby", (float)10.0), null); -smr.mapTypes(Constants.NS_URI_SOAP_ENC, new QName("", "return"), null, null, dataSer); -doCall(url, "echoStruct", p); - p = new Parameter("inputIntegerArray", Integer[].class, new Integer[]{ new Integer(5), new Integer(4), @@ -162,6 +163,10 @@ new Integer(1)}, null); smr.mapTypes(Constants.NS_URI_SOAP_ENC, new QName("", "return"), null, null, arraySer); doCall(url, "echoIntegerArray", p); + +p = new Parameter("inputFloat", Float.class, new Float(55.5), null); +smr.mapTypes(Constants.NS_URI_SOAP_ENC, new QName("", "return"), null, null, floatDser); +doCall(url, "echoFloat", p); p = new Parameter("inputFloatArray", Float[].class, new Float[]{ new Float(5.5), @@ -171,15 +176,10 @@ new Float(1.1)}, null); smr.mapTypes(Constants.NS_URI_SOAP_ENC, new QName("", "return"), null, null, arraySer); doCall(url, "echoFloatArray", p); - -p = new Parameter("inputStringArray", String[].class, new String[]{ - "First", - "Second", - "Fifth (just kidding :))", - "Fourth", - "Last"}, null); -smr.mapTypes(Constants.NS_URI_SOAP_ENC, new QName("", "return"), null, null, arraySer); -doCall(url, "echoStringArray", p); + +p = new Parameter("inputStruct", Data.class, new Data(5, "Hola, baby", (float)10.0), null); +smr.mapTypes(Constants.NS_URI_SOAP_ENC, new QName("", "return"), null, null, dataSer); +doCall(url, "echoStruct", p); p = new Parameter("inputStructArray", Data[].class, new Data[]{ new Data(5, "cinqo", new Float("5.5").floatValue()),
RE: Bugs in Soap 2.2 BeanSerializer?
How sad.. that nobody in Apache Soap Development community has the GUTS to acknowledge that either it is a bug or not a bug in Soap 2.2 BeanSerializer. Why should Soap 2.2 BeanSerialize run out of stack depth if class Employee contains a field 'subordinates' of type Employee[] or Vector of Employee? What purpose [EMAIL PROTECTED] serves if I am not able to get answer to this technical question from so called experts? Could anybody please suggest suitable forums where I may post technical question such as this regarding APACHE SOAP 2.2? Thanks in advance to anybody kind enough to reply. Regards, Soumen. > -Original Message- > From: Soumen Sarkar > Sent: Monday, July 09, 2001 11:11 AM > To: '[EMAIL PROTECTED]' > Subject: Bugs in Soap 2.2 BeanSerializer? > > Hi, > > I tried to exchange the following data structure over SOAP by using SOAP > 2.2 Bean Serializer class > public class Employee implements Serializable > { > // not null > public String name; > // null if no manager > public Employee manager; > // null if no subordinates,this is a Employee Vector > public Vector subordinates; > } > It runs into the following serialization problem: > > > java.lang.StackOverflowError > at java.lang.Class.toString(Class.java:82) > at java.lang.String.valueOf(String.java:1925) > at > org.apache.soap.util.xml.XMLJavaMappingRegistry.getKey(XMLJavaMappingRegis > try.java:265) > at > org.apache.soap.util.xml.XMLJavaMappingRegistry.queryElementType(XMLJavaMa > ppingRegistry.java:192) > at > org.apache.soap.encoding.SOAPMappingRegistry.queryElementType(SOAPMappingR > egistry.java:460) > at > org.apache.soap.encoding.soapenc.SoapEncUtils.generateStructureHeader(Soap > EncUtils.java:129) > at > org.apache.soap.encoding.soapenc.SoapEncUtils.generateStructureHeader(Soap > EncUtils.java:116) > at > org.apache.soap.encoding.soapenc.BeanSerializer.marshall(BeanSerializer.ja > va:86) > at > org.apache.soap.util.xml.XMLJavaMappingRegistry.marshall(XMLJavaMappingReg > istry.java:238) > at > org.apache.soap.encoding.soapenc.ArraySerializer.marshall(ArraySerializer. > java:133) > .. > .. > .. > at > org.apache.soap.encoding.soapenc.BeanSerializer.marshall(BeanSerializer.ja > va:131) > > > > > Basically I found out that SOAP 2.2 BeanSerializer can not handle Employee > class having > subordinate field as a Vector of Employee (or Employee[]). When I shanged > subordinates field > to Vector of String (or String[]) there was no StackOverflow problem. > There is no problem in > exchanging this data structure over EJB (i.e Java RMI). I also found out > that SOAP 2.2 XML > serialization does not implement reference semantics as it is done in > basic Java/RMI serialization. > What this means is that XML messages tend to be very large in situations > where Employee contains > reference to another Employee(i.e manager). What SOAP 2.2 BeanSerializer > does is to LITERALLY > INCLUDE ALL DETAILS OF MANAGER in EACH SUBORDINATE OF THAT MANAGER. > This is very naive implementation and will cause very large XML messages. > XML permits ID, IDERF, > why not use that? Why to literally REPEAT Manager details in each > Employee? > > Can somebody from SOAP development team confirm that these are indeed > BeanSerializer bug/shortcomings? > I am attaching complete Employee class below. > > Regards, > Soumen Sarkar > > Atoga Systems Inc. (http://www.atoga.com) > 510-743-0254 > > Employee class > > //Writing Employee as an ideal bean by providing get and set methods > package AnotherEmployeeSLBean; > import java.io.*; > import java.util.*; > public class Employee implements Serializable > { > // not null > public String name; > // null if no manager > public Employee manager; > // null if no subordinates,this is a Employee Vector > public Vector subordinates; > // not null > public String ssn; > public double salary; > // null if no dependents > public Dependent[] dependents; > public Employee() > { } > public Employee(String name,Employee manager,Employee[] > subordinates,String ssn,double salary,Dependent[] dependents) > { this.name = name; > this.manager = manager; > this.subordinates = subordinates; > this.ssn = ssn; > this.salary = salary; > this.dependents = dependents; > } > public String getName() { return name; } > public void setName(String name) { this.name = name; } > public Employee getManager() { return manager; } > public void setManager(Employee manager) { this.manager = manager; } > public Vector getSubordinates() { return subordinates; } > public void setSubordinates(Vector subordinates) { this.subordinates = > subordinates; } > public String getSsn() { return ssn; } > public void setSsn(String ssn) { this.ssn = ssn; } > public double getSalary() { return salary; } > public void setSalary(double salary) { this.salary = salary; } > public Dependent[] getDependents() { return dependents; } > p
Re: Bugs in Soap 2.2 BeanSerializer?
> How sad.. that nobody in Apache Soap Development community has the GUTS to > acknowledge that either it is a bug or not a bug in Soap 2.2 BeanSerializer. > Why should > Soap 2.2 BeanSerialize run out of stack depth if class Employee contains a > field 'subordinates' > of type Employee[] or Vector of Employee? Lose the attitude... these people work their tails off for free, and I can't imagine why you would want to behave like that to them. > > What purpose [EMAIL PROTECTED] serves if I am not able to get answer > to this technical question from > so called experts? > > Could anybody please suggest suitable forums where I may post technical > question such as this regarding > APACHE SOAP 2.2? Funny... you don't want to pay for support or a commercial implementation, and then get upset at the very people who make that possible. Come on...show some respect for these folks. Take it easy ;-) -Brett
IBM Webservice Development Kit
Hi, I am trying to deploy a Java Bean using IBM Webservice Development Kit. The Java Bean has the following signature, // public Element getDetailFromEmployeeID(Element searchId) throws SQLException {} // The method does connect to oracle 8i, query the records, create a Element Object, which I will using thru my client program. When I try to deploy the above mentioned Java Bean, the IDE says, "No Public methods with in/out of only base type found." Enlight me. Thanks, N.V.Sairam NEC Soft, Ltd. 1-18-6, Shinkiba, Kotuo-ku, Tokyo 136 8608 Phone : (03) 5569 3228 Email : [EMAIL PROTECTED] - This message is for the designated recipient only and may contain privileged or confidential information. If you have received it in error, please notify the sender immediately and delete the original. Any other use of the email by you is prohibited.
Re: Bugs in Soap 2.2 BeanSerializer?
Soumen, As I see it, as a user of Apache SOAP, you are a member of a community. You have contributed by posting notice of a possible bug and pointing out what you believe is an inefficiency in the implementation. You have a wonderful chance to contribute further by reading the source yourself, confirming that the bug is present, figuring out a good fix, and posting a patch to this list so that others can benefit. Of course, that would require you somehow find the time to do so and then make the product of your labor public for inspection that will lead some to admire and respect you while others find reason to ridicule you. Anyway, in this case it seems clear that you are experiencing the effects of a limitation of the implementation. The BeanSerializer does not maintain a record of instances that have been serialized to allow it to href them in later serializations. Therefore, any cyclic graph should, I believe, cause infinite recursion. Scott - Original Message - From: "Soumen Sarkar" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Thursday, July 12, 2001 7:00 PM Subject: RE: Bugs in Soap 2.2 BeanSerializer? > How sad.. that nobody in Apache Soap Development community has the GUTS to > acknowledge that either it is a bug or not a bug in Soap 2.2 BeanSerializer. > Why should > Soap 2.2 BeanSerialize run out of stack depth if class Employee contains a > field 'subordinates' > of type Employee[] or Vector of Employee? > > What purpose [EMAIL PROTECTED] serves if I am not able to get answer > to this technical question from > so called experts? > > Could anybody please suggest suitable forums where I may post technical > question such as this regarding > APACHE SOAP 2.2? > > Thanks in advance to anybody kind enough to reply. > > Regards, > Soumen. > > > -Original Message- > > From: Soumen Sarkar > > Sent: Monday, July 09, 2001 11:11 AM > > To: '[EMAIL PROTECTED]' > > Subject: Bugs in Soap 2.2 BeanSerializer? > > > > Hi, > > > > I tried to exchange the following data structure over SOAP by using SOAP > > 2.2 Bean Serializer class > > public class Employee implements Serializable > > { > > // not null > > public String name; > > // null if no manager > > public Employee manager; > > // null if no subordinates,this is a Employee Vector > > public Vector subordinates; > > } > > It runs into the following serialization problem: > > > > > > java.lang.StackOverflowError > > at java.lang.Class.toString(Class.java:82) > > at java.lang.String.valueOf(String.java:1925) > > at > > org.apache.soap.util.xml.XMLJavaMappingRegistry.getKey(XMLJavaMappingRegis > > try.java:265) > > at > > org.apache.soap.util.xml.XMLJavaMappingRegistry.queryElementType(XMLJavaMa > > ppingRegistry.java:192) > > at > > org.apache.soap.encoding.SOAPMappingRegistry.queryElementType(SOAPMappingR > > egistry.java:460) > > at > > org.apache.soap.encoding.soapenc.SoapEncUtils.generateStructureHeader(Soap > > EncUtils.java:129) > > at > > org.apache.soap.encoding.soapenc.SoapEncUtils.generateStructureHeader(Soap > > EncUtils.java:116) > > at > > org.apache.soap.encoding.soapenc.BeanSerializer.marshall(BeanSerializer.ja > > va:86) > > at > > org.apache.soap.util.xml.XMLJavaMappingRegistry.marshall(XMLJavaMappingReg > > istry.java:238) > > at > > org.apache.soap.encoding.soapenc.ArraySerializer.marshall(ArraySerializer. > > java:133) > > .. > > .. > > .. > > at > > org.apache.soap.encoding.soapenc.BeanSerializer.marshall(BeanSerializer.ja > > va:131) > > > > > > > > > > Basically I found out that SOAP 2.2 BeanSerializer can not handle Employee > > class having > > subordinate field as a Vector of Employee (or Employee[]). When I shanged > > subordinates field > > to Vector of String (or String[]) there was no StackOverflow problem. > > There is no problem in > > exchanging this data structure over EJB (i.e Java RMI). I also found out > > that SOAP 2.2 XML > > serialization does not implement reference semantics as it is done in > > basic Java/RMI serialization. > > What this means is that XML messages tend to be very large in situations > > where Employee contains > > reference to another Employee(i.e manager). What SOAP 2.2 BeanSerializer > > does is to LITERALLY > > INCLUDE ALL DETAILS OF MANAGER in EACH SUBORDINATE OF THAT MANAGER. > > This is very naive implementation and will cause very large XML messages. > > XML permits ID, IDERF, > > why not use that? Why to literally REPEAT Manager details in each > > Employee? > > > > Can somebody from SOAP development team confirm that these are indeed > > BeanSerializer bug/shortcomings? > > I am attaching complete Employee class below. > > > > Regards, > > Soumen Sarkar > > > > Atoga Systems Inc. (http://www.atoga.com) > > 510-743-0254 > > > > Employee class > > > > //Writing Employee as an ideal bean by providing get and set methods > > package AnotherEmployeeSLBean; > > import java.io.*; > > import java.util.*