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]
