Hi Keith,

That does make sense, I couldn't determine how to even represent my
complex type of complex types in a uri.  This does explain the lack of
documentation on how to do this.

Thanks,
-Matt

On Wed, Jun 25, 2008 at 10:45 PM, keith chapman <[EMAIL PROTECTED]> wrote:
> Hi Matthew,
>
> You cannot support such request in a REST invocation. This is a limitation
> of REST (Not just in Axis2 but REST as a whole). In order to do a truly
> RESTfull service your input message should be a conplexType with a sequence.
> And this sequence should be comprised of simple Types (No complexTypes. This
> is the issue you are having). The only way you will be able to invoke this
> without the use of soap is to do a post with the contentType of
> allication/xml (i.e just the payload of the SOAP request).
>
> Hope I made my point clear to you. Any arbitrary service cannot support
> REST. If you want to support both REST and SOAP your messages should be
> designed in order to support that.
>
> Thanks,
> Keith.
>
> On Wed, Jun 25, 2008 at 11:21 PM, Matthew Beldyk <[EMAIL PROTECTED]> wrote:
>>
>> Thanks Keith,
>>
>> Here's the schema for this service;  I've also included the
>> BoundingRadius from an "imported" namespace I'm using.
>> The complex type I'm trying to pass via REST is UNAVCOMonumentSearch.
>>
>> Best Regards,
>> Matt
>>
>>    <complexType name="BoundingRadius">
>>        <sequence>
>>            <element name="Lat" type="decimal" minOccurs="1" maxOccurs="1"
>> />
>>            <element name="Lon" type="decimal" minOccurs="1" maxOccurs="1"
>> />
>>            <element name="Radius" type="decimal" minOccurs="1"
>> maxOccurs="1" />  <!-- in kilometers -->
>>        </sequence>
>>    </complexType>
>>
>>
>>
>> <schema elementFormDefault="unqualified" version="1.0"
>>        targetNamespace="http://api.unavco.org/services/monuments";
>>        xmlns:ufac="http://api.unavco.org/services";
>>        xmlns:mon="http://api.unavco.org/services/monuments";
>>        xmlns="http://www.w3.org/2001/XMLSchema";>
>>
>>        <import namespace="http://api.unavco.org/services";
>> schemaLocation="http://schemas.unavco.org/facility/GPSSearchTerms.xsd";
>> />
>>
>>        <element name="GPSSearch" type="mon:UNAVCOMonumentSearch" />
>>
>>        <complexType name="UNAVCOMonumentSearch">
>>                <sequence>
>>                        <!-- Global search parameters -->
>>                        <element name="Scope" type="ufac:SearchScope"
>> minOccurs="0" maxOccurs="1" />
>>                        <element name="SampleRate"
>> type="mon:GPSSampleRate" minOccurs="0" maxOccurs="1" />
>>
>>                        <!-- Identity search params  -->
>>                        <element name="FourCharCode"
>> type="ufac:FourCharCodePattern" minOccurs="0" maxOccurs="unbounded"/>
>>                        <element name="Set"
>> type="ufac:UNAVCOSetPattern" minOccurs="0" maxOccurs="1"/>
>>                        <element name="Name"
>> type="ufac:UNAVCONamePattern" minOccurs="0" maxOccurs="1" />
>>
>>                        <!-- Spatial search params -->
>>                        <element name="BBox" type="ufac:BoundingBox"
>> minOccurs="0" maxOccurs="1" />
>>                        <element name="BRadius"
>> type="ufac:BoundingRadius" minOccurs="0" maxOccurs="1" />
>>                        <!-- Temporal search params -->
>>                        <element name="StartTime" type="dateTime"
>> minOccurs="0" maxOccurs="1" />
>>                        <element name="EndTime" type="dateTime"
>> minOccurs="0" maxOccurs="1" />
>>
>>                        <element name="ArchiveStartBefore"
>> type="dateTime" minOccurs="0" maxOccurs="1" />
>>                        <element name="ArchiveStartAfter"
>> type="dateTime" minOccurs="0" maxOccurs="1" />
>>
>>                        <!--  Miscellaneous search params -->
>>                        <element name="Status"
>> type="mon:OperationalStatus" minOccurs="0" maxOccurs="1" />
>>                </sequence>
>>        </complexType>
>>
>>        <element name="GPSSearchResponse" type="mon:MonumentResponse" />
>>
>>        <complexType name="MonumentResponse">
>>                <sequence>
>>                        <element name="MaxDate" type="dateTime"
>> maxOccurs="1" />
>>                        <element name="MinDate" type="dateTime"
>> maxOccurs="1" />
>>                        <element name="Monuments"
>> type="mon:UNAVCOMonuments" minOccurs="1" maxOccurs="1" />
>>                </sequence>
>>        </complexType>
>>        <complexType name="UNAVCOMonuments">
>>                <sequence>
>>                        <element name="Monument"
>> type="mon:UNAVCOMonument" minOccurs="0" maxOccurs="unbounded" />
>>                </sequence>
>>        </complexType>
>>        <complexType name="UNAVCOMonument">
>>                <sequence>
>>                        <element name="MonumentID" type="string"
>> minOccurs="1" maxOccurs="1" />
>>                        <element name="MonumentName" type="string"
>> minOccurs="1" maxOccurs="1" />
>>                        <element name="MonumentType" type="string"
>> minOccurs="1" maxOccurs="1" />
>>                        <element name="FourCharCode" type="string"
>> minOccurs="1" maxOccurs="1" />
>>                        <element name="Grouping" type="string"
>> minOccurs="1" maxOccurs="1" />
>>                        <element name="Latitude" type="decimal"
>> minOccurs="1" maxOccurs="1" />
>>                        <element name="Longitude" type="decimal"
>> minOccurs="1" maxOccurs="1" />
>>                        <element name="StartTime" type="dateTime"
>> minOccurs="1" maxOccurs="1" />
>>                        <element name="EndTime" type="dateTime"
>> minOccurs="1" maxOccurs="1" />
>>                        <element name="Operational" type="string"
>> minOccurs="1" maxOccurs="1" />
>>                        <element name="ArchiveStart" type="dateTime"
>> minOccurs="1" maxOccurs="1" />
>>                </sequence>
>>        </complexType>
>>        <simpleType name="OperationalStatus">
>>                <restriction base="string">
>>                        <enumeration value="Active" />
>>                        <enumeration value="Inactive" />
>>                        <enumeration value="Retired" />
>>                        <enumeration value="Pending" />
>>                        <enumeration value="Intermittent" />
>>                </restriction>
>>        </simpleType>
>>        <simpleType name="GPSSampleRate">
>>                <restriction base="string">
>>                        <enumeration value="highrate" />
>>                        <enumeration value="normal" />
>>                </restriction>
>>        </simpleType>
>>
>> </schema>
>>
>> On Wed, Jun 25, 2008 at 12:02 AM, keith chapman <[EMAIL PROTECTED]>
>> wrote:
>> > Hi,
>> >
>> > Could you post the schema section for this operation please. I could
>> > give
>> > you a solution then.
>> >
>> > Thanks,
>> > Keith.
>> >
>> > On Wed, Jun 25, 2008 at 3:54 AM, Matthew Beldyk <[EMAIL PROTECTED]> wrote:
>> >>
>> >> Hi, I'm using Axis2 with Tomcat.  I've been using SOAP to talk to my
>> >> servlets, but recently the discussion came up wondering if we would
>> >> use REST with our services.
>> >>
>> >> Currently, I send messages to our servlets similar to (headers pulled
>> >> out):
>> >>      <mon:GPSSearch>
>> >>         <BRadius>
>> >>            <ser:Lat>59.362584</ser:Lat>
>> >>            <ser:Lon>-153.44467</ser:Lon>
>> >>            <ser:Radius>10</ser:Radius>
>> >>         </BRadius>
>> >>        <StartTime>2000-02-02T18:49:00.000-07:00</StartTime>
>> >>      </mon:GPSSearch>
>> >>
>> >> I would like to do something similar to
>> >>
>> >>
>> >> http://*.com:8080/axis2/services/GPSSearch/GPSSearch?ArchiveStartAfter=2008-06-15T00:00:00.000-07:00&BRadius=something
>> >> (NOTE:
>> >>
>> >>  
>> >> http://*.com:8080/axis2/services/GPSSearch/GPSSearch?ArchiveStartAfter=2008-06-15T00:00:00.000-07:00
>> >> behaves as I would expect)
>> >>
>> >> Unfortunately, I am unable to determine how to represent
>> >> "BRadius=something" for any of our complex types.  Initially I tried:
>> >>
>> >>
>> >> "BRadius=<ser:Lat>59.362584</ser:Lat><ser:Lon>-153.44467</ser:Lon><ser:Radius>10</ser:Radius>"
>> >> which was passed to my code as
>> >>
>> >>
>> >> "<BRadius><![CDATA[<ser:Lat>59.362584</ser:Lat><ser:Lon>-153.44467</ser:Lon><ser:Radius>10</ser:Radius>]]></BRadius>"
>> >>
>> >> Is there any way to represent complex types like this?  If so, how?
>> >>
>> >> Best Regards,
>> >> Matt Beldyk
>> >>
>> >> ---------------------------------------------------------------------
>> >> To unsubscribe, e-mail: [EMAIL PROTECTED]
>> >> For additional commands, e-mail: [EMAIL PROTECTED]
>> >>
>> >
>> >
>> >
>> > --
>> > Keith Chapman
>> > Senior Software Engineer
>> > WSO2 Inc.
>> > Oxygenating the Web Service Platform.
>> > http://wso2.org/
>> >
>> > blog: http://www.keith-chapman.org
>>
>>
>>
>> --
>> Calvin: Know what I pray for?
>> Hobbes: What?
>> Calvin: The strength to change what I can, the inability to accept
>> what I can't, and the incapacity to tell the difference.
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>> For additional commands, e-mail: [EMAIL PROTECTED]
>>
>
>
>
> --
> Keith Chapman
> Senior Software Engineer
> WSO2 Inc.
> Oxygenating the Web Service Platform.
> http://wso2.org/
>
> blog: http://www.keith-chapman.org



-- 
Calvin: Know what I pray for?
Hobbes: What?
Calvin: The strength to change what I can, the inability to accept
what I can't, and the incapacity to tell the difference.

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to