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
>
>
>
>


Reply via email to