I thought of this but the problem is my client and server will be in different locations and will be behind firewalls. I have the ability to fully configure the firewall, but I've never done RMI over the internet. Do you think it would work?
Thanks, Michael > -----Original Message----- > From: Rob Cole [mailto:[EMAIL PROTECTED] > Sent: lundi 3 mars 2003 04:49 > To: [EMAIL PROTECTED]; [EMAIL PROTECTED] > Subject: RE: Invalid element error with a Collection of Strings > > > Michael, > If you control both server and client, I recommend using java's > built-in RMI > instead of SOAP web services. The whole point of SOAP is so disparate > entities that you don't control may still interact. JRMP - Java Remote > Messaging Protocol is the java-to-java protocol. > -Rob Cole. > > -----Original Message----- > From: Michael Mattox [mailto:[EMAIL PROTECTED] > Sent: Sunday, March 02, 2003 5:22 AM > To: [EMAIL PROTECTED] > Subject: Invalid element error with a Collection of Strings > > > I'm working on a project in which a client needs to send a request to a > server, the server will execute the request, and then the server > returns the > result. I'm writing both the client and the server (in Java of course) so > if there's any shortcuts I can take here because it's "Java only" > that would > be great. I've read through the Axis user guide and samples, but the > samples are very simple and I'm running into problems because I want to > return an array of objects, and each object has Collection of strings. I > read that Axis supports serializing java collections (I'm using > LinkedList) > but I can't get it to work. On the server side things look fine. In the > SOAP body I see (trimmed down a bit): > > <soapenv:Envelope > xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" > xmlns:xsd="http://www.w3.org/2001/XMLSchema" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> > <soapenv:Body> > <errors href="#id1"/> > <multiRef id="id1" soapenc:root="0" > soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" > xsi:type="soapenc:Array" soapenc:arrayType="xsd:anyType[2]" > xmlns:ns5="http://www.w3.org/2002/12/soap-encoding" > xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"> > <item xsi:type="xsd:string">TEST ERROR</item> > <item xsi:type="xsd:string">TEST_ERROR2</item> > </multiRef> > </soapenv:Body> > </soapenv:Envelope> > > > I see the same thing on the client side, so I know the errors got > sent back. > But then I get an exception while deserializing the errors (I don't have a > custom serializer, I'm using whatever Axis provides): > > 12:24:13,858 DEBUG DeserializationContextImpl - Enter: > DeserializationContextImpl::startElement(, errors) > 12:24:13,858 DEBUG ProjectResourceBundle - > org.apache.axis.i18n.resource::handleGetObject(badElem00) > 12:24:13,858 DEBUG ProjectResourceBundle - > org.apache.axis.i18n.resource::handleGetObject(exception00) > 12:24:13,868 ERROR Call - Exception: > org.xml.sax.SAXException: Invalid element in > com.verideon.siteguard.domain.MonitorStatus - errors > at > org.apache.axis.encoding.ser.BeanDeserializer.onStartChild(BeanDes > erializer. > java:260) > at > org.apache.axis.encoding.DeserializationContextImpl.startElement(D > eserializa > tionContextImpl.java:921) > at > org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder > .java:198) > at > org.apache.axis.message.MessageElement.publishToHandler(MessageEle > ment.java: > 699) > at > org.apache.axis.encoding.DeserializerImpl.startElement(Deserialize > rImpl.java > :404) > at > org.apache.axis.encoding.DeserializationContextImpl.startElement(D > eserializa > tionContextImpl.java:934) > at > org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder > .java:198) > at > org.apache.axis.message.MessageElement.publishToHandler(MessageEle > ment.java: > 699) > at > org.apache.axis.message.RPCElement.deserialize(RPCElement.java:224) > at org.apache.axis.message.RPCElement.getParams(RPCElement.java:331) > at org.apache.axis.client.Call.invoke(Call.java:2200) > at org.apache.axis.client.Call.invoke(Call.java:2099) > at org.apache.axis.client.Call.invoke(Call.java:1622) > > I'm not sure if this is a bug or if I'm doing something wrong. If anyone > has any advice please let me know. And if it looks like a bug I > can file a > bug report. > > Thanks, > Michael > > > >