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

Reply via email to