You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by ri...@multi-support.com on 2007/07/10 14:48:13 UTC
Axis2: RESTful implementation with Axis2
Hi,
I have some questions regarding implementing a RESTfull service. After
reading a lot of previous RESTish threads I got quite confused.
So I hope someone can help me straightened it out.
If I want to create a RESTful service with Axis2 would it then require that
the service is implemented as RPC, or can other message receivers be used?
Is it possible to create a RESTful service with Axis2 that can be reached
in the following way:
http://www.boeing.com/rest/aircraft/747
instead of
http://www.boeing.com/rest/MyAircraftServices/getAircraft?model=747
First i actually thought that a RESTful service should implement some sort
of interface with methods corresponding to GET, POST, PUT & DELETE.
But I read in some of the other threads that a RESTful service should only
have one method. Isn't that a problem if you try to accomplice the syntax
that the following articles describes.
http://www.innoq.com/blog/st/2006/06/30/rest_vs_soap_oh_no_not_again.html
http://www.xfront.com/REST-Web-Services.html
Where the same url has different functionality depending on how it is
called (GET, POST).
GET /order/{id} Get order details
POST /order/{id} Add item
Regards
Multi-Support A/S
Torben Riis
--------------------------------------------------------------------
Phone +45 96 600 600, Fax +45 96 600 601
E-mail: riis@multi-support.com
http://www.multi-support.com
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-user-help@ws.apache.org
Re: Axis2: RESTful implementation with Axis2
Posted by Anne Thomas Manes <at...@gmail.com>.
My guess is that your IDE does not support WSDL 2.0 -- it's looking
for a "portType", but in WSDL 2.0, "portType" has been replaced by
"interface".
Anne
On 7/11/07, riis@multi-support.com <ri...@multi-support.com> wrote:
>
> Hi Keith,
>
> I have some problems generating stub/skeletons for your wsdl.
>
> My IDE gives the following validation error for WeatherHTTPBinding.
>
> WSDL: Missing port type for binding {http://example.axis2.apache.org}
> WeatherHTTPBinding
>
> What does I miss?
>
> Regards
> Multi-Support A/S
>
> Torben Riis
> --------------------------------------------------------------------
> Phone +45 96 600 600, Fax +45 96 600 601
> E-mail: riis@multi-support.com
> http://www.multi-support.com
>
>
>
> "keith chapman"
> <keithgchapman@gm
> ail.com> To
> axis-user@ws.apache.org
> 11-07-2007 09:27 cc
>
> Subject
> Please respond to Re: Axis2: RESTful implementation
> axis-user@ws.apac with Axis2
> he.org
>
>
>
>
>
>
>
>
>
> here is a sample Weather.wsdl2. Please let me know if you need any
> clarifications.
>
> <description xmlns="http://www.w3.org/ns/wsdl"
> targetNamespace=" http://example.axis2.apache.org"
> xmlns:tns="http://example.axis2.apache.org"
> xmlns:wsoap=" http://www.w3.org/ns/wsdl/soap"
> xmlns:whttp="http://www.w3.org/ns/wsdl/http"
> xmlns:xsd1=" http://example.axis2.apache.org/xsd"
> xmlns:xs="http://www.w3.org/2001/XMLSchema">
>
> <documentation>
> Just a sample service to explain WSDL 2.0 semantics
> </documentation>
>
> <types>
> <xs:schema elementFormDefault="qualified"
> targetNamespace=" http://example.axis2.apache.org/xsd"
> xmlns:xs="http://www.w3.org/2001/XMLSchema"
> xmlns:xsd1=" http://example.axis2.apache.org/xsd">
>
> <xs:element name="weather" type="xsd1:weatherStructType"/>
> <xs:complexType name="weatherStructType">
> <xs:sequence>
> <xs:element name="temparature" type="xs:int"/>
> <xs:element name="sky" type="xs:string"/>
> </xs:sequence>
> </xs:complexType>
>
> <xs:element name="location" type="xsd1:locationStructType"/>
> <xs:complexType name="locationStructType">
> <xs:sequence>
> <xs:element name="country" type="xs:string"/>
> <xs:element name="city" type="xs:string"/>
> </xs:sequence>
> </xs:complexType>
>
> <xs:element name="response" type="xs:string"/>
>
> <xs:element name="weatherFault"
> type="xsd1:weatherFaultStructType"/>
> <xs:complexType name="weatherFaultStructType">
> <xs:sequence>
> <xs:element name="Fault" type="xs:string"/>
> <xs:element name="country" type="xs:string"/>
> <xs:element name="city" type="xs:string"/>
> </xs:sequence>
> </xs:complexType>
>
> <xs:element name="weatherDetails"
> type="xsd1:weatherDetailsStructType"/>
> <xs:complexType name="weatherDetailsStructType">
> <xs:sequence>
> <xs:element name="weather"
> type="xsd1:weatherStructType"/>
> <xs:element name="location"
> type="xsd1:locationStructType"/>
> </xs:sequence>
> </xs:complexType>
> </xs:schema>
> </types>
>
> <interface name="Weather">
> <documentation>
> This is where the abstract descriptions of the operations are
> given. Note that WSDL 2.0
> has the concept of reusing faults, hence they are described at
> the interface level.
> </documentation>
> <fault name="weatherFault" element="xsd1:weatherFault"></fault>
>
> <operation name="getWeather" pattern="
> http://www.w3.org/ns/wsdl/in-out">
> <input element="xsd1:location"/>
> <output element="xsd1:weather"/>
> <outfault ref="tns:weatherFault"/>
> </operation>
>
> <operation name="setWeather" pattern="
> http://www.w3.org/ns/wsdl/in-out">
> <input element="xsd1:weatherDetails"/>
> <output element="xsd1:response"/>
> <outfault ref="tns:weatherFault"/>
> </operation>
>
> </interface>
>
> <binding name="WeatherHTTPBinding" interface="tns:Weather"
> type="http://www.w3.org/ns/wsdl/http">
> <documentation>
> This binding binds the weather interface to RESTish style
> invocations.
> NOTE : The URL for the operation is constracted by resolving
> the httplocation against
> the base uri.
> e.g. If the country was srilanka and the city was colombo then
> the URL will be
>
> http://example.org/WeatherService/WeatherServiceSOAPEndpoint/Weather/srilanka/colombo
>
> </documentation>
> <fault ref="tns:weatherFault" whttp:code="402"/>
> <operation ref="tns:getWeather" whttp:method="GET"
>
> whttp:location="WeatherServiceHTTPEndpoint/Weather/{country}/{city}"/>
> <operation ref="tns:setWeather" whttp:method="PUT"
>
> whttp:location="WeatherServiceHTTPEndpoint/Update/{country}/{city}"/>
> <!--Ideally this should be as follows. Will fux it in the trunk-->
> <!--<operation ref="tns:setWeather" whttp:method="POST"
> whttp:location="WeatherServiceHTTPEndpoint/Weather/{country}/{city}"/>-->
> </binding>
>
> <service name="WeatherService" interface="tns:Weather">
> <endpoint name="WeatherServiceHTTPEndpoint"
> binding="tns:WeatherHTTPBinding"
> address="
> http://example.org/WeatherService/WeatherServiceHTTPEndpoint/ "/>
> </service>
>
> </description>
>
> Thanks,
> Keith.
>
> On 7/11/07, riis@multi-support.com <ri...@multi-support.com> wrote:
>
> Hi Keith,
>
> An example would be very nice. ;-)
> An example where you format the URL in a RESTish style would be
> perfect.
> Maybe with both GET & POST if it isn't too much trouble.
>
> Thanks a lot.
>
> Regards
> Multi-Support A/S
>
> Torben Riis
> --------------------------------------------------------------------
> Phone +45 96 600 600, Fax +45 96 600 601
> E-mail: riis@multi-support.com
> http://www.multi-support.com
>
>
>
> "keith chapman"
> <keithgchapman@gm
> ail.com >
> To
> axis-user@ws.apache.org
> 11-07-2007 07:40
> cc
>
>
> Subject
> Please respond to Re: Axis2: RESTful
> implementation
> axis-user@ws.apac with Axis2
> he.org
>
>
>
>
>
>
>
>
>
> The WSDL 2.0 primer is a good starting place. It takes you through
> the
> concepts of WSDL 2.0 very nicely (without making things too complex).
> WSDL
> 2.0 is a whole lot clean and easy to understand. If you like I can
> write a
> sample WSDL 2.0 doc for you if you have an example in mind :).
>
> And yes you can use the http methods GET, POST, PUT & DELETE in the
> same
> service. Its just that you cant use them on the same operation.
>
> Thanks,
> Keith.
>
> On 7/11/07, riis@multi-support.com < riis@multi-support.com> wrote:
>
> Hi Keith,
>
> Thank you for answering.
>
> When I earlier talked about using the http methods GET, POST,
> PUT &
> DELETE,
> I actually meant using them in the same service.
>
> WSDL 2.0 really sounds interesting.
>
> I have a little knowledge about WSDL 1.1/1.2, because I'm
> studying
> for the
> SCDJWS exam, but I doesn't know anything about WSDL 2.0.
> I guess a lot has changed since it is possible to describe how
> the
> URL
> should be formatted and whether to use http methods GET, POST,
> PUT
> or
> DELETE.
>
> Do you have or know a place where I can find simple example
> WSDL
> describing
> such a service?
> Or would it be best just start reading WSDL 2.0 HTTPBinding.
>
>
> Regards
> Multi-Support A/S
>
> Torben Riis
>
> --------------------------------------------------------------------
> Phone +45 96 600 600, Fax +45 96 600 601
> E-mail: riis@multi-support.com
> http://www.multi-support.com
>
>
>
> "keith chapman"
> < keithgchapman@gm
> ail.com>
> To
> axis-user@ws.apache.org
> 11-07-2007 06:45
> cc
>
>
> Subject
> Please respond to Re: Axis2: RESTful
> implementation
> axis-user@ws.apac with Axis2
> he.org
>
>
>
>
>
>
>
>
>
> See comments inline.
>
> On 7/10/07, riis@multi-support.com <riis@multi-support.com >
> wrote:
>
> Hi,
>
> I have some questions regarding implementing a RESTfull
> service.
> After
> reading a lot of previous RESTish threads I got quite
> confused.
> So I hope someone can help me straightened it out.
>
> If I want to create a RESTful service with Axis2 would it
> then
> require that
> the service is implemented as RPC, or can other message
> receivers be
> used?
>
>
> Is it possible to create a RESTful service with Axis2
> that can
> be
> reached
> in the following way:
> http://www.boeing.com/rest/aircraft/747
> instead of
>
>
> http://www.boeing.com/rest/MyAircraftServices/getAircraft?model=747
>
> Yes this can be done. REST support in Axis2 was achieved via
> the
> WSDL 2.0
> HTTPBinding (If you are not familiar with WSDL this might sound
> a bit
> strange). The kind of question you asked can easily be done by
> deploying
> your service via a WSDL 2.0 description. Please have a look at
> the
> primer
> it has some easy to understand examples.
>
> First i actually thought that a RESTful service should
> implement some
> sort
> of interface with methods corresponding to GET, POST, PUT
> &
> DELETE.
> But I read in some of the other threads that a RESTful
> service
> should
> only
> have one method. Isn't that a problem if you try to
> accomplice
> the
> syntax
> that the following articles describes.
>
> Yes you can use all 4 HTTP methods described above, depending
> on your
> requirement. Its all about using the appropriate method (Not
> that you
> must
> use just one method)
>
>
>
> http://www.innoq.com/blog/st/2006/06/30/rest_vs_soap_oh_no_not_again.html
>
>
>
> http://www.xfront.com/REST-Web-Services.html
>
> Where the same url has different functionality depending
> on how
> it is
>
> called (GET, POST).
> GET /order/{id} Get order details
> POST /order/{id} Add item
>
> the current version of Axis2 does not support this (But it can
> be
> included,
> I will file a JIRA on this and try to get it into the 1.3
> release.)
>
> Please let us know if you need more help (Can even assist you
> in
> writing
> down the WSDL 2.0 description)
>
> Thanks,
> Keith.
>
> Regards
> Multi-Support A/S
>
> Torben Riis
>
>
> --------------------------------------------------------------------
> Phone +45 96 600 600, Fax +45 96 600 601
> E-mail: riis@multi-support.com
> http://www.multi-support.com
>
>
>
>
> ---------------------------------------------------------------------
>
>
> To unsubscribe, e-mail:
> axis-user-unsubscribe@ws.apache.org
> For additional commands, e-mail:
> axis-user-help@ws.apache.org
>
>
>
>
> --
> Keith Chapman
> WSO2 Inc.
> Oxygen for Web Services Developers.
> http://wso2.org/
>
>
>
> ---------------------------------------------------------------------
>
>
> To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
> For additional commands, e-mail: axis-user-help@ws.apache.org
>
>
>
>
> --
> Keith Chapman
> WSO2 Inc.
> Oxygen for Web Services Developers.
> http://wso2.org/
>
>
> ---------------------------------------------------------------------
>
> To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
> For additional commands, e-mail: axis-user-help@ws.apache.org
>
>
>
>
> --
> Keith Chapman
> WSO2 Inc.
> Oxygen for Web Services Developers.
> http://wso2.org/
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
> For additional commands, e-mail: axis-user-help@ws.apache.org
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-user-help@ws.apache.org
Re: Axis2: RESTful implementation with Axis2
Posted by ri...@multi-support.com.
Hi,
I tried with the below urls and got different responses.
http://localhost:8080/axis2/services/WeatherService/Weather/Denmark/Herning
<Exception>org.apache.axis2.AxisFault: The endpoint reference (EPR) for the
Operation not found is
/axis2/services/WeatherService/Weather/Denmark/Herning and the WSA Action =
null at
org.apache.axis2.engine.DispatchPhase.checkPostConditions(DispatchPhase.java:85)
at org.apache.axis2.engine.Phase.invoke(Phase.java:308) at
org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:212) at
org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:132) at
org.apache.axis2.transport.http.util.RESTUtil.invokeAxisEngine(RESTUtil.java:125)
at
org.apache.axis2.transport.http.util.RESTUtil.processURLRequest(RESTUtil.java:119)
at org.apache.axis2.transport.http.HTTPWorker.service(HTTPWorker.java:229)
at
org.apache.axis2.transport.http.server.AxisHttpService.doService(AxisHttpService.java:256)
at
org.apache.axis2.transport.http.server.AxisHttpService.handleRequest(AxisHttpService.java:163)
at
org.apache.axis2.transport.http.server.HttpServiceProcessor.run(HttpServiceProcessor.java:85)
at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:665)
at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:690)
at java.lang.Thread.run(Thread.java:803)
</Exception>
http://localhost:8080/axis2/services/WeatherService/getWeather
<Exception>java.lang.StringIndexOutOfBoundsException at
java.lang.StringBuffer.substring(StringBuffer.java:881) at
org.apache.axis2.builder.XFormURLEncodedBuilder.extractParametersUsingHttpLocation(XFormURLEncodedBuilder.java:284)
at
org.apache.axis2.builder.XFormURLEncodedBuilder.processDocument(XFormURLEncodedBuilder.java:99)
at
org.apache.axis2.transport.TransportUtils.createDocumentElement(TransportUtils.java:150)
at
org.apache.axis2.transport.TransportUtils.createSOAPMessage(TransportUtils.java:105)
at
org.apache.axis2.transport.http.util.RESTUtil.processURLRequest(RESTUtil.java:101)
at org.apache.axis2.transport.http.HTTPWorker.service(HTTPWorker.java:229)
at
org.apache.axis2.transport.http.server.AxisHttpService.doService(AxisHttpService.java:256)
at
org.apache.axis2.transport.http.server.AxisHttpService.handleRequest(AxisHttpService.java:163)
at
org.apache.axis2.transport.http.server.HttpServiceProcessor.run(HttpServiceProcessor.java:85)
at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:665)
at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:690)
at java.lang.Thread.run(Thread.java:803)
</Exception>
Regards
Multi-Support A/S
Torben Riis
--------------------------------------------------------------------
Phone +45 96 600 600, Fax +45 96 600 601
E-mail: riis@multi-support.com
http://www.multi-support.com
"keith chapman"
<keithgchapman@gm
ail.com> To
axis-user@ws.apache.org
12-07-2007 11:31 cc
Subject
Please respond to Re: Axis2: RESTful implementation
axis-user@ws.apac with Axis2
he.org
You should be able to, provided that the system has the relavant data to
return. Did you get back any error or anyhing as such?
Thanks,
Keith.
On 7/12/07, riis@multi-support.com <ri...@multi-support.com> wrote:
Hi Keith,
I tried 1.3 RC1, and with success.
Axis2 now starts without any errors.
But I can't activate the REST service from an url.
Should I not be able to reach it with the following url?
http://localhost:8080/axis2/services/WeatherService/Weather/Denmark/Herning
Or have I misunderstood the new HTTPBinding.
<operation ref="tns:getWeather" whttp:method="GET"
whttp:location=
"WeatherServiceHTTPEndpoint/Weather/{country}/{city}"/>
I have attached my generated code if it can be any help.
(See attached file: WeatherService.zip)
Regards
Multi-Support A/S
Torben Riis
--------------------------------------------------------------------
Phone +45 96 600 600, Fax +45 96 600 601
E-mail: riis@multi-support.com
http://www.multi-support.com
"keith chapman"
< keithgchapman@gm
ail.com>
To
axis-user@ws.apache.org
11-07-2007 12:16
cc
Subject
Please respond to Re: Axis2: RESTful
implementation
axis-user@ws.apac with Axis2
he.org
You can even try the 1.3 RCI available here.
http://people.apache.org/~deepal/axis2/1.3-RC1/
If you continue to have any problems just post your aar so that I can
have
a look.
Thanks,
Keith.
On 7/11/07, riis@multi-support.com <riis@multi-support.com > wrote:
Hi Keith,
I forgot specify the argument (-wv) on wsdl2java. My mistake.
:-)
I can see that eclipse gives another validation, than the one
from
Rational
Application Developer 7. Maybe it just doesn't support WSDL 2.0
validation....
But anyway, wsdl2java generates skeleton code without errors
now.
But I get another error during startup of Axis2 now.
org.apache.axis2.deployment.repository.util.ArchiveReader -
Trouble
processing wsdl file :Illegal character in opaque part at index
2:
.....\webapps\WeatherService\WEB-INF\services\weather\META-INF
Should I try the nightly build instead? Right now I'm using
Axis2
1.2.
Regards
Multi-Support A/S
Torben Riis
--------------------------------------------------------------------
Phone +45 96 600 600, Fax +45 96 600 601
E-mail: riis@multi-support.com
http://www.multi-support.com
"keith chapman"
< keithgchapman@gm
ail.com>
To
axis-user@ws.apache.org
11-07-2007 11:08
cc
Subject
Please respond to Re: Axis2: RESTful
implementation
axis-user@ws.apac with Axis2
he.org
Which version of Axis2 are you using?
I would recoment 1.2 or even a nightly or the 1.3 RC
Thanks,
Keith.
On 7/11/07, riis@multi-support.com <riis@multi-support.com >
wrote:
Hi Keith,
I have some problems generating stub/skeletons for your
wsdl.
My IDE gives the following validation error for
WeatherHTTPBinding.
WSDL: Missing port type for binding {
http://example.axis2.apache.org }
WeatherHTTPBinding
What does I miss?
Regards
Multi-Support A/S
Torben Riis
--------------------------------------------------------------------
Phone +45 96 600 600, Fax +45 96 600 601
E-mail: riis@multi-support.com
http://www.multi-support.com
"keith chapman"
< keithgchapman@gm
ail.com>
To
axis-user@ws.apache.org
11-07-2007 09:27
cc
Subject
Please respond to Re: Axis2: RESTful
implementation
axis-user@ws.apac with Axis2
he.org
here is a sample Weather.wsdl2. Please let me know if you
need
any
clarifications.
<description xmlns=" http://www.w3.org/ns/wsdl"
targetNamespace="
http://example.axis2.apache.org
"
xmlns:tns=" http://example.axis2.apache.org"
xmlns:wsoap=" http://www.w3.org/ns/wsdl/soap
"
xmlns:whttp=" http://www.w3.org/ns/wsdl/http
"
xmlns:xsd1="
http://example.axis2.apache.org/xsd "
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<documentation>
Just a sample service to explain WSDL 2.0
semantics
</documentation>
<types>
<xs:schema elementFormDefault="qualified"
targetNamespace="
http://example.axis2.apache.org/xsd "
xmlns:xs="
http://www.w3.org/2001/XMLSchema "
xmlns:xsd1="
http://example.axis2.apache.org/xsd
">
<xs:element name="weather"
type="xsd1:weatherStructType"/>
<xs:complexType name="weatherStructType">
<xs:sequence>
<xs:element name="temparature"
type="xs:int"/>
<xs:element name="sky"
type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:element name="location"
type="xsd1:locationStructType"/>
<xs:complexType name="locationStructType">
<xs:sequence>
<xs:element name="country"
type="xs:string"/>
<xs:element name="city"
type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:element name="response"
type="xs:string"/>
<xs:element name="weatherFault"
type="xsd1:weatherFaultStructType"/>
<xs:complexType
name="weatherFaultStructType">
<xs:sequence>
<xs:element name="Fault"
type="xs:string"/>
<xs:element name="country"
type="xs:string"/>
<xs:element name="city"
type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:element name="weatherDetails"
type="xsd1:weatherDetailsStructType"/>
<xs:complexType
name="weatherDetailsStructType">
<xs:sequence>
<xs:element name="weather"
type="xsd1:weatherStructType"/>
<xs:element name="location"
type="xsd1:locationStructType"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
</types>
<interface name="Weather">
<documentation>
This is where the abstract descriptions of
the
operations
are
given. Note that WSDL 2.0
has the concept of reusing faults, hence they
are
described at
the interface level.
</documentation>
<fault name="weatherFault"
element="xsd1:weatherFault"></fault>
<operation name="getWeather" pattern="
http://www.w3.org/ns/wsdl/in-out ">
<input element="xsd1:location"/>
<output element="xsd1:weather"/>
<outfault ref="tns:weatherFault"/>
</operation>
<operation name="setWeather" pattern="
http://www.w3.org/ns/wsdl/in-out">
<input element="xsd1:weatherDetails"/>
<output element="xsd1:response"/>
<outfault ref="tns:weatherFault"/>
</operation>
</interface>
<binding name="WeatherHTTPBinding"
interface="tns:Weather"
type="http://www.w3.org/ns/wsdl/http">
<documentation>
This binding binds the weather interface to
RESTish
style
invocations.
NOTE : The URL for the operation is
constracted by
resolving
the httplocation against
the base uri.
e.g. If the country was srilanka and the city
was
colombo
then
the URL will be
http://example.org/WeatherService/WeatherServiceSOAPEndpoint/Weather/srilanka/colombo
</documentation>
<fault ref="tns:weatherFault" whttp:code="402"/>
<operation ref="tns:getWeather"
whttp:method="GET"
whttp:location="WeatherServiceHTTPEndpoint/Weather/{country}/{city}"/>
<operation ref="tns:setWeather"
whttp:method="PUT"
whttp:location="WeatherServiceHTTPEndpoint/Update/{country}/{city}"/>
<!--Ideally this should be as follows. Will fux
it in
the
trunk-->
<!--<operation ref="tns:setWeather"
whttp:method="POST"
whttp:location="WeatherServiceHTTPEndpoint/Weather/{country}/{city}"/>-->
</binding>
<service name="WeatherService"
interface="tns:Weather">
<endpoint name="WeatherServiceHTTPEndpoint"
binding="tns:WeatherHTTPBinding"
address="
http://example.org/WeatherService/WeatherServiceHTTPEndpoint/
"/>
</service>
</description>
Thanks,
Keith.
On 7/11/07, riis@multi-support.com <
riis@multi-support.com>
wrote:
Hi Keith,
An example would be very nice. ;-)
An example where you format the URL in a RESTish
style
would be
perfect.
Maybe with both GET & POST if it isn't too much
trouble.
Thanks a lot.
Regards
Multi-Support A/S
Torben Riis
--------------------------------------------------------------------
Phone +45 96 600 600, Fax +45 96 600 601
E-mail: riis@multi-support.com
http://www.multi-support.com
"keith chapman"
< keithgchapman@gm
ail.com >
To
axis-user@ws.apache.org
11-07-2007 07:40
cc
Subject
Please respond to Re: Axis2:
RESTful
implementation
axis-user@ws.apac with Axis2
he.org
The WSDL 2.0 primer is a good starting place. It
takes
you
through
the
concepts of WSDL 2.0 very nicely (without making
things
too
complex).
WSDL
2.0 is a whole lot clean and easy to understand.
If you
like I
can
write a
sample WSDL 2.0 doc for you if you have an example
in
mind :).
And yes you can use the http methods GET, POST, PUT
&
DELETE in
the
same
service. Its just that you cant use them on the
same
operation.
Thanks,
Keith.
On 7/11/07, riis@multi-support.com <
riis@multi-support.com>
wrote:
Hi Keith,
Thank you for answering.
When I earlier talked about using the http
methods
GET,
POST,
PUT &
DELETE,
I actually meant using them in the same
service.
WSDL 2.0 really sounds interesting.
I have a little knowledge about WSDL 1.1/1.2,
because I'm
studying
for the
SCDJWS exam, but I doesn't know anything
about WSDL
2.0.
I guess a lot has changed since it is
possible to
describe how
the
URL
should be formatted and whether to use http
methods GET,
POST,
PUT
or
DELETE.
Do you have or know a place where I can find
simple
example
WSDL
describing
such a service?
Or would it be best just start reading WSDL
2.0
HTTPBinding.
Regards
Multi-Support A/S
Torben Riis
--------------------------------------------------------------------
Phone +45 96 600 600, Fax +45 96 600 601
E-mail: riis@multi-support.com
http://www.multi-support.com
"keith chapman"
< keithgchapman@gm
ail.com>
To
axis-user@ws.apache.org
11-07-2007 06:45
cc
Subject
Please respond to Re:
Axis2:
RESTful
implementation
axis-user@ws.apac with
Axis2
he.org
See comments inline.
On 7/10/07, riis@multi-support.com <
riis@multi-support.com >
wrote:
Hi,
I have some questions regarding
implementing
a
RESTfull
service.
After
reading a lot of previous RESTish
threads I
got
quite
confused.
So I hope someone can help me
straightened it
out.
If I want to create a RESTful service
with
Axis2
would it
then
require that
the service is implemented as RPC, or
can
other
message
receivers be
used?
Is it possible to create a RESTful
service
with
Axis2
that can
be
reached
in the following way:
http://www.boeing.com/rest/aircraft/747
instead of
http://www.boeing.com/rest/MyAircraftServices/getAircraft?model=747
Yes this can be done. REST support in Axis2
was
achieved
via
the
WSDL 2.0
HTTPBinding (If you are not familiar with
WSDL this
might
sound
a bit
strange). The kind of question you asked can
easily
be
done by
deploying
your service via a WSDL 2.0 description.
Please
have a
look at
the
primer
it has some easy to understand examples.
First i actually thought that a RESTful
service
should
implement some
sort
of interface with methods corresponding
to
GET,
POST, PUT
&
DELETE.
But I read in some of the other threads
that
a
RESTful
service
should
only
have one method. Isn't that a problem
if you
try to
accomplice
the
syntax
that the following articles describes.
Yes you can use all 4 HTTP methods described
above,
depending
on your
requirement. Its all about using the
appropriate
method
(Not
that you
must
use just one method)
http://www.innoq.com/blog/st/2006/06/30/rest_vs_soap_oh_no_not_again.html
http://www.xfront.com/REST-Web-Services.html
Where the same url has different
functionality
depending
on how
it is
called (GET, POST).
GET /order/{id} Get order details
POST /order/{id} Add item
the current version of Axis2 does not support
this
(But
it can
be
included,
I will file a JIRA on this and try to get it
into
the 1.3
release.)
Please let us know if you need more help (Can
even
assist
you
in
writing
down the WSDL 2.0 description)
Thanks,
Keith.
Regards
Multi-Support A/S
Torben Riis
--------------------------------------------------------------------
Phone +45 96 600 600, Fax +45 96 600
601
E-mail: riis@multi-support.com
http://www.multi-support.com
---------------------------------------------------------------------
To unsubscribe, e-mail:
axis-user-unsubscribe@ws.apache.org
For additional commands, e-mail:
axis-user-help@ws.apache.org
--
Keith Chapman
WSO2 Inc.
Oxygen for Web Services Developers.
http://wso2.org/
---------------------------------------------------------------------
To unsubscribe, e-mail:
axis-user-unsubscribe@ws.apache.org
For additional commands, e-mail:
axis-user-help@ws.apache.org
--
Keith Chapman
WSO2 Inc.
Oxygen for Web Services Developers.
http://wso2.org/
---------------------------------------------------------------------
To unsubscribe, e-mail:
axis-user-unsubscribe@ws.apache.org
For additional commands, e-mail:
axis-user-help@ws.apache.org
--
Keith Chapman
WSO2 Inc.
Oxygen for Web Services Developers.
http://wso2.org/
---------------------------------------------------------------------
To unsubscribe, e-mail:
axis-user-unsubscribe@ws.apache.org
For additional commands, e-mail:
axis-user-help@ws.apache.org
--
Keith Chapman
WSO2 Inc.
Oxygen for Web Services Developers.
http://wso2.org/
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-user-help@ws.apache.org
--
Keith Chapman
WSO2 Inc.
Oxygen for Web Services Developers.
http://wso2.org/
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-user-help@ws.apache.org
--
Keith Chapman
WSO2 Inc.
Oxygen for Web Services Developers.
http://wso2.org/
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-user-help@ws.apache.org
Re: Axis2: RESTful implementation with Axis2
Posted by keith chapman <ke...@gmail.com>.
You should be able to, provided that the system has the relavant data to
return. Did you get back any error or anyhing as such?
Thanks,
Keith.
On 7/12/07, riis@multi-support.com <ri...@multi-support.com> wrote:
>
>
> Hi Keith,
>
> I tried 1.3 RC1, and with success.
> Axis2 now starts without any errors.
>
> But I can't activate the REST service from an url.
>
> Should I not be able to reach it with the following url?
>
> http://localhost:8080/axis2/services/WeatherService/Weather/Denmark/Herning
>
> Or have I misunderstood the new HTTPBinding.
> <operation ref="tns:getWeather" whttp:method="GET" whttp:location=
> "WeatherServiceHTTPEndpoint/Weather/{country}/{city}"/>
>
> I have attached my generated code if it can be any help.
>
> (See attached file: WeatherService.zip)
>
> Regards
> Multi-Support A/S
>
> Torben Riis
> --------------------------------------------------------------------
> Phone +45 96 600 600, Fax +45 96 600 601
> E-mail: riis@multi-support.com
> http://www.multi-support.com
>
>
>
> "keith chapman"
> <keithgchapman@gm
> ail.com> To
> axis-user@ws.apache.org
> 11-07-2007 12:16 cc
>
> Subject
> Please respond to Re: Axis2: RESTful implementation
> axis-user@ws.apac with Axis2
> he.org
>
>
>
>
>
>
>
>
>
> You can even try the 1.3 RCI available here.
>
> http://people.apache.org/~deepal/axis2/1.3-RC1/
>
> If you continue to have any problems just post your aar so that I can have
> a look.
>
> Thanks,
> Keith.
>
> On 7/11/07, riis@multi-support.com <riis@multi-support.com > wrote:
>
> Hi Keith,
>
> I forgot specify the argument (-wv) on wsdl2java. My mistake. :-)
> I can see that eclipse gives another validation, than the one from
> Rational
> Application Developer 7. Maybe it just doesn't support WSDL 2.0
> validation....
> But anyway, wsdl2java generates skeleton code without errors now.
>
> But I get another error during startup of Axis2 now.
> org.apache.axis2.deployment.repository.util.ArchiveReader - Trouble
> processing wsdl file :Illegal character in opaque part at index 2:
> .....\webapps\WeatherService\WEB-INF\services\weather\META-INF
>
> Should I try the nightly build instead? Right now I'm using Axis2
> 1.2.
>
> Regards
> Multi-Support A/S
>
> Torben Riis
> --------------------------------------------------------------------
> Phone +45 96 600 600, Fax +45 96 600 601
> E-mail: riis@multi-support.com
> http://www.multi-support.com
>
>
>
> "keith chapman"
> < keithgchapman@gm
> ail.com>
> To
> axis-user@ws.apache.org
> 11-07-2007 11:08
> cc
>
>
> Subject
> Please respond to Re: Axis2: RESTful
> implementation
> axis-user@ws.apac with Axis2
> he.org
>
>
>
>
>
>
>
>
>
> Which version of Axis2 are you using?
>
> I would recoment 1.2 or even a nightly or the 1.3 RC
>
> Thanks,
> Keith.
>
> On 7/11/07, riis@multi-support.com <riis@multi-support.com > wrote:
>
> Hi Keith,
>
> I have some problems generating stub/skeletons for your wsdl.
>
> My IDE gives the following validation error for
> WeatherHTTPBinding.
>
> WSDL: Missing port type for binding {
> http://example.axis2.apache.org}
> WeatherHTTPBinding
>
> What does I miss?
>
> Regards
> Multi-Support A/S
>
> Torben Riis
>
> --------------------------------------------------------------------
> Phone +45 96 600 600, Fax +45 96 600 601
> E-mail: riis@multi-support.com
> http://www.multi-support.com
>
>
>
> "keith chapman"
> < keithgchapman@gm
> ail.com>
> To
> axis-user@ws.apache.org
> 11-07-2007 09:27
> cc
>
>
> Subject
> Please respond to Re: Axis2: RESTful
> implementation
> axis-user@ws.apac with Axis2
> he.org
>
>
>
>
>
>
>
>
>
> here is a sample Weather.wsdl2. Please let me know if you need
> any
> clarifications.
>
> <description xmlns="http://www.w3.org/ns/wsdl"
> targetNamespace=" http://example.axis2.apache.org
> "
> xmlns:tns="http://example.axis2.apache.org"
> xmlns:wsoap=" http://www.w3.org/ns/wsdl/soap "
> xmlns:whttp="http://www.w3.org/ns/wsdl/http"
> xmlns:xsd1=" http://example.axis2.apache.org/xsd"
> xmlns:xs="http://www.w3.org/2001/XMLSchema">
>
> <documentation>
> Just a sample service to explain WSDL 2.0 semantics
> </documentation>
>
> <types>
> <xs:schema elementFormDefault="qualified"
> targetNamespace="
> http://example.axis2.apache.org/xsd "
> xmlns:xs=" http://www.w3.org/2001/XMLSchema
> "
> xmlns:xsd1="
> http://example.axis2.apache.org/xsd
> ">
>
> <xs:element name="weather"
> type="xsd1:weatherStructType"/>
> <xs:complexType name="weatherStructType">
> <xs:sequence>
> <xs:element name="temparature"
> type="xs:int"/>
> <xs:element name="sky" type="xs:string"/>
> </xs:sequence>
> </xs:complexType>
>
> <xs:element name="location"
> type="xsd1:locationStructType"/>
> <xs:complexType name="locationStructType">
> <xs:sequence>
> <xs:element name="country"
> type="xs:string"/>
> <xs:element name="city" type="xs:string"/>
> </xs:sequence>
> </xs:complexType>
>
> <xs:element name="response" type="xs:string"/>
>
> <xs:element name="weatherFault"
> type="xsd1:weatherFaultStructType"/>
> <xs:complexType name="weatherFaultStructType">
> <xs:sequence>
> <xs:element name="Fault"
> type="xs:string"/>
> <xs:element name="country"
> type="xs:string"/>
> <xs:element name="city" type="xs:string"/>
> </xs:sequence>
> </xs:complexType>
>
> <xs:element name="weatherDetails"
> type="xsd1:weatherDetailsStructType"/>
> <xs:complexType name="weatherDetailsStructType">
> <xs:sequence>
> <xs:element name="weather"
> type="xsd1:weatherStructType"/>
> <xs:element name="location"
> type="xsd1:locationStructType"/>
> </xs:sequence>
> </xs:complexType>
> </xs:schema>
> </types>
>
> <interface name="Weather">
> <documentation>
> This is where the abstract descriptions of the
> operations
> are
> given. Note that WSDL 2.0
> has the concept of reusing faults, hence they are
> described at
> the interface level.
> </documentation>
> <fault name="weatherFault"
> element="xsd1:weatherFault"></fault>
>
> <operation name="getWeather" pattern="
> http://www.w3.org/ns/wsdl/in-out ">
> <input element="xsd1:location"/>
> <output element="xsd1:weather"/>
> <outfault ref="tns:weatherFault"/>
> </operation>
>
> <operation name="setWeather" pattern="
> http://www.w3.org/ns/wsdl/in-out">
> <input element="xsd1:weatherDetails"/>
> <output element="xsd1:response"/>
> <outfault ref="tns:weatherFault"/>
> </operation>
>
> </interface>
>
> <binding name="WeatherHTTPBinding" interface="tns:Weather"
> type="http://www.w3.org/ns/wsdl/http">
> <documentation>
> This binding binds the weather interface to
> RESTish
> style
> invocations.
> NOTE : The URL for the operation is constracted by
> resolving
> the httplocation against
> the base uri.
> e.g. If the country was srilanka and the city was
> colombo
> then
> the URL will be
>
>
>
> http://example.org/WeatherService/WeatherServiceSOAPEndpoint/Weather/srilanka/colombo
>
>
>
> </documentation>
> <fault ref="tns:weatherFault" whttp:code="402"/>
> <operation ref="tns:getWeather" whttp:method="GET"
>
>
>
> whttp:location="WeatherServiceHTTPEndpoint/Weather/{country}/{city}"/>
>
>
> <operation ref="tns:setWeather" whttp:method="PUT"
>
>
>
> whttp:location="WeatherServiceHTTPEndpoint/Update/{country}/{city}"/>
> <!--Ideally this should be as follows. Will fux it in
> the
> trunk-->
> <!--<operation ref="tns:setWeather"
> whttp:method="POST"
>
>
>
> whttp:location="WeatherServiceHTTPEndpoint/Weather/{country}/{city}"/>-->
>
>
> </binding>
>
> <service name="WeatherService" interface="tns:Weather">
> <endpoint name="WeatherServiceHTTPEndpoint"
> binding="tns:WeatherHTTPBinding"
> address="
> http://example.org/WeatherService/WeatherServiceHTTPEndpoint/
> "/>
> </service>
>
> </description>
>
> Thanks,
> Keith.
>
> On 7/11/07, riis@multi-support.com <ri...@multi-support.com>
> wrote:
>
> Hi Keith,
>
> An example would be very nice. ;-)
> An example where you format the URL in a RESTish style
> would be
>
> perfect.
> Maybe with both GET & POST if it isn't too much trouble.
>
> Thanks a lot.
>
> Regards
> Multi-Support A/S
>
> Torben Riis
>
>
> --------------------------------------------------------------------
> Phone +45 96 600 600, Fax +45 96 600 601
> E-mail: riis@multi-support.com
> http://www.multi-support.com
>
>
>
> "keith chapman"
> <keithgchapman@gm
> ail.com >
> To
>
> axis-user@ws.apache.org
> 11-07-2007 07:40
> cc
>
>
> Subject
> Please respond to Re: Axis2:
> RESTful
> implementation
> axis-user@ws.apac with Axis2
> he.org
>
>
>
>
>
>
>
>
>
> The WSDL 2.0 primer is a good starting place. It takes
> you
> through
> the
> concepts of WSDL 2.0 very nicely (without making things
> too
> complex).
> WSDL
> 2.0 is a whole lot clean and easy to understand. If you
> like I
> can
> write a
> sample WSDL 2.0 doc for you if you have an example in
> mind :).
>
> And yes you can use the http methods GET, POST, PUT &
> DELETE in
> the
> same
> service. Its just that you cant use them on the same
> operation.
>
> Thanks,
> Keith.
>
> On 7/11/07, riis@multi-support.com <
> riis@multi-support.com>
> wrote:
>
> Hi Keith,
>
> Thank you for answering.
>
> When I earlier talked about using the http methods
> GET,
> POST,
> PUT &
> DELETE,
> I actually meant using them in the same service.
>
> WSDL 2.0 really sounds interesting.
>
> I have a little knowledge about WSDL 1.1/1.2,
> because I'm
> studying
> for the
> SCDJWS exam, but I doesn't know anything about
> WSDL
> 2.0.
> I guess a lot has changed since it is possible to
> describe how
> the
> URL
> should be formatted and whether to use http
> methods GET,
> POST,
> PUT
> or
> DELETE.
>
> Do you have or know a place where I can find
> simple
> example
> WSDL
> describing
> such a service?
> Or would it be best just start reading WSDL 2.0
> HTTPBinding.
>
>
> Regards
> Multi-Support A/S
>
> Torben Riis
>
>
>
> --------------------------------------------------------------------
> Phone +45 96 600 600, Fax +45 96 600 601
> E-mail: riis@multi-support.com
> http://www.multi-support.com
>
>
>
> "keith chapman"
> < keithgchapman@gm
> ail.com>
> To
>
> axis-user@ws.apache.org
> 11-07-2007 06:45
> cc
>
>
> Subject
> Please respond to Re: Axis2:
> RESTful
> implementation
> axis-user@ws.apac with Axis2
> he.org
>
>
>
>
>
>
>
>
>
> See comments inline.
>
> On 7/10/07, riis@multi-support.com <
> riis@multi-support.com >
> wrote:
>
> Hi,
>
> I have some questions regarding implementing
> a
> RESTfull
> service.
> After
> reading a lot of previous RESTish threads I
> got
> quite
> confused.
> So I hope someone can help me straightened
> it
> out.
>
> If I want to create a RESTful service with
> Axis2
> would it
> then
> require that
> the service is implemented as RPC, or can
> other
> message
> receivers be
> used?
>
>
> Is it possible to create a RESTful service
> with
> Axis2
> that can
> be
> reached
> in the following way:
> http://www.boeing.com/rest/aircraft/747
> instead of
>
>
>
>
> http://www.boeing.com/rest/MyAircraftServices/getAircraft?model=747
>
> Yes this can be done. REST support in Axis2 was
> achieved
> via
> the
> WSDL 2.0
> HTTPBinding (If you are not familiar with WSDL
> this
> might
> sound
> a bit
> strange). The kind of question you asked can
> easily
> be
> done by
> deploying
> your service via a WSDL 2.0 description. Please
> have a
> look at
> the
> primer
> it has some easy to understand examples.
>
> First i actually thought that a RESTful
> service
> should
> implement some
> sort
> of interface with methods corresponding to
> GET,
> POST, PUT
> &
> DELETE.
> But I read in some of the other threads that
> a
> RESTful
> service
> should
> only
> have one method. Isn't that a problem if you
> try to
>
> accomplice
> the
> syntax
> that the following articles describes.
>
> Yes you can use all 4 HTTP methods described
> above,
> depending
> on your
> requirement. Its all about using the appropriate
> method
> (Not
> that you
> must
> use just one method)
>
>
>
>
>
>
> http://www.innoq.com/blog/st/2006/06/30/rest_vs_soap_oh_no_not_again.html
>
>
>
>
>
>
> http://www.xfront.com/REST-Web-Services.html
>
>
> Where the same url has different
> functionality
> depending
> on how
> it is
>
> called (GET, POST).
> GET /order/{id} Get order details
> POST /order/{id} Add item
>
> the current version of Axis2 does not support this
> (But
> it can
> be
> included,
> I will file a JIRA on this and try to get it into
> the 1.3
> release.)
>
> Please let us know if you need more help (Can even
> assist
> you
> in
> writing
> down the WSDL 2.0 description)
>
> Thanks,
> Keith.
>
> Regards
> Multi-Support A/S
>
> Torben Riis
>
>
>
>
> --------------------------------------------------------------------
> Phone +45 96 600 600, Fax +45 96 600 601
> E-mail: riis@multi-support.com
> http://www.multi-support.com
>
>
>
>
>
>
>
> ---------------------------------------------------------------------
>
>
> To unsubscribe, e-mail:
> axis-user-unsubscribe@ws.apache.org
> For additional commands, e-mail:
> axis-user-help@ws.apache.org
>
>
>
>
> --
> Keith Chapman
> WSO2 Inc.
> Oxygen for Web Services Developers.
> http://wso2.org/
>
>
>
>
>
>
> ---------------------------------------------------------------------
>
>
>
> To unsubscribe, e-mail:
> axis-user-unsubscribe@ws.apache.org
> For additional commands, e-mail:
> axis-user-help@ws.apache.org
>
>
>
>
> --
> Keith Chapman
> WSO2 Inc.
> Oxygen for Web Services Developers.
> http://wso2.org/
>
>
>
>
>
> ---------------------------------------------------------------------
>
> To unsubscribe, e-mail:
> axis-user-unsubscribe@ws.apache.org
> For additional commands, e-mail:
> axis-user-help@ws.apache.org
>
>
>
>
> --
> Keith Chapman
> WSO2 Inc.
> Oxygen for Web Services Developers.
> http://wso2.org/
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
> For additional commands, e-mail: axis-user-help@ws.apache.org
>
>
>
>
> --
> Keith Chapman
> WSO2 Inc.
> Oxygen for Web Services Developers.
> http://wso2.org/
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
> For additional commands, e-mail: axis-user-help@ws.apache.org
>
>
>
>
> --
> Keith Chapman
> WSO2 Inc.
> Oxygen for Web Services Developers.
> http://wso2.org/
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
> For additional commands, e-mail: axis-user-help@ws.apache.org
>
>
--
Keith Chapman
WSO2 Inc.
Oxygen for Web Services Developers.
http://wso2.org/
Re: Axis2: RESTful implementation with Axis2
Posted by ri...@multi-support.com.
Hi Keith,
I still have problems with the WeatherService. I tried the below changes in
the wsdl but with no success.
Now it gives a "HTTP 500 - Internal Server Error"
Can you verify that my url is correct?
http://localhost:8080/axis2/services/WeatherService/Weather/Denmark/Herning
Have you tried to generate skeleton code for the wsdl by your self?
Generated services.xml:
<serviceGroup>
<service name="WeatherService">
<messageReceivers>
<messageReceiver mep="http://www.w3.org/ns/wsdl/in-out" class=
"org.example.webservice.WeatherServiceMessageReceiverInOut"/>
</messageReceivers>
<parameter name="ServiceClass">
org.example.webservice.WeatherServiceSkeleton</parameter>
<parameter name="useOriginalwsdl">true</parameter>
<parameter name="modifyUserWSDLPortAddress">true</parameter>
<operation name="getWeather" mep="http://www.w3.org/ns/wsdl/in-out"
>
<actionMapping>\"\"</actionMapping>
<outputActionMapping>urn:getWeatherResponse</
outputActionMapping>
<faultActionMapping faultName="weatherFault">
urn:getWeatherweatherFault</faultActionMapping>
</operation>
<operation name="setWeather" mep="http://www.w3.org/ns/wsdl/in-out"
>
<actionMapping>\"\"</actionMapping>
<outputActionMapping>urn:setWeatherResponse</
outputActionMapping>
<faultActionMapping faultName="weatherFault">
urn:setWeatherweatherFault</faultActionMapping>
</operation>
</service>
</serviceGroup>
Regards
Multi-Support A/S
Torben Riis
--------------------------------------------------------------------
Phone +45 96 600 600, Fax +45 96 600 601
E-mail: riis@multi-support.com
http://www.multi-support.com
"keith chapman"
<keithgchapman@gm
ail.com> To
axis-user@ws.apache.org
13-07-2007 07:08 cc
Subject
Please respond to Re: Axis2: RESTful implementation
axis-user@ws.apac with Axis2
he.org
Yes there is a mistake in the WSDL (obvious copy and paste error :))
update the relavant sections as follows,
<operation ref="tns:getWeather" whttp:method="GET"
whttp:location="WeatherService/Weather/{country}/{city}"/>
<operation ref="tns:setWeather" whttp:method="PUT"
whttp:location="WeatherService/Update/{country}/{city}"/>
<service name="WeatherService" interface="tns:Weather">
<endpoint name="WeatherServiceHTTPEndpoint"
binding="tns:WeatherHTTPBinding"
address="http://example.org/WeatherService "/>
</service>
It was due to the above that you got the dispatching error. Should work
now.
Thanks,
Keith.
On 7/12/07, Sanjiva Weerawarana <sa...@opensource.lk> wrote:
riis@multi-support.com wrote:
>
> Should I not be able to reach it with the following url?
>
http://localhost:8080/axis2/services/WeatherService/Weather/Denmark/Herning
>
> Or have I misunderstood the new HTTPBinding.
> <operation ref="tns:getWeather" whttp:method="GET"
whttp:location=
> "WeatherServiceHTTPEndpoint/Weather/{country}/{city}"/>
These two statements are not matching .. you've put
WeatherService*HTTPEndpoint* in the whttp:location attribute but the
URL
doesn't have that.
Sanjiva.
--
Sanjiva Weerawarana, Ph.D.
Founder & Director; Lanka Software Foundation;
http://www.opensource.lk/
Founder, Chairman & CEO; WSO2, Inc.; http://www.wso2.com/
Director; Open Source Initiative; http://www.opensource.org/
Member; Apache Software Foundation; http://www.apache.org/
Visiting Lecturer; University of Moratuwa; http://www.cse.mrt.ac.lk/
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-user-help@ws.apache.org
--
Keith Chapman
WSO2 Inc.
Oxygen for Web Services Developers.
http://wso2.org/
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-user-help@ws.apache.org
Re: Axis2: RESTful implementation with Axis2
Posted by keith chapman <ke...@gmail.com>.
Yes there is a mistake in the WSDL (obvious copy and paste error :))
update the relavant sections as follows,
<operation ref="tns:getWeather" whttp:method="GET"
whttp:location="WeatherService/Weather/{country}/{city}"/>
<operation ref="tns:setWeather" whttp:method="PUT"
whttp:location="WeatherService/Update/{country}/{city}"/>
<service name="WeatherService" interface="tns:Weather">
<endpoint name="WeatherServiceHTTPEndpoint"
binding="tns:WeatherHTTPBinding"
address="http://example.org/WeatherService"/>
</service>
It was due to the above that you got the dispatching error. Should work now.
Thanks,
Keith.
On 7/12/07, Sanjiva Weerawarana <sa...@opensource.lk> wrote:
>
> riis@multi-support.com wrote:
> >
> > Should I not be able to reach it with the following url?
> >
> http://localhost:8080/axis2/services/WeatherService/Weather/Denmark/Herning
> >
> > Or have I misunderstood the new HTTPBinding.
> > <operation ref="tns:getWeather" whttp:method="GET" whttp:location=
> > "WeatherServiceHTTPEndpoint/Weather/{country}/{city}"/>
>
> These two statements are not matching .. you've put
> WeatherService*HTTPEndpoint* in the whttp:location attribute but the URL
> doesn't have that.
>
> Sanjiva.
> --
> Sanjiva Weerawarana, Ph.D.
> Founder & Director; Lanka Software Foundation; http://www.opensource.lk/
> Founder, Chairman & CEO; WSO2, Inc.; http://www.wso2.com/
> Director; Open Source Initiative; http://www.opensource.org/
> Member; Apache Software Foundation; http://www.apache.org/
> Visiting Lecturer; University of Moratuwa; http://www.cse.mrt.ac.lk/
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
> For additional commands, e-mail: axis-user-help@ws.apache.org
>
>
--
Keith Chapman
WSO2 Inc.
Oxygen for Web Services Developers.
http://wso2.org/
Re: Axis2: RESTful implementation with Axis2
Posted by Sanjiva Weerawarana <sa...@opensource.lk>.
riis@multi-support.com wrote:
>
> Should I not be able to reach it with the following url?
> http://localhost:8080/axis2/services/WeatherService/Weather/Denmark/Herning
>
> Or have I misunderstood the new HTTPBinding.
> <operation ref="tns:getWeather" whttp:method="GET" whttp:location=
> "WeatherServiceHTTPEndpoint/Weather/{country}/{city}"/>
These two statements are not matching .. you've put
WeatherService*HTTPEndpoint* in the whttp:location attribute but the URL
doesn't have that.
Sanjiva.
--
Sanjiva Weerawarana, Ph.D.
Founder & Director; Lanka Software Foundation; http://www.opensource.lk/
Founder, Chairman & CEO; WSO2, Inc.; http://www.wso2.com/
Director; Open Source Initiative; http://www.opensource.org/
Member; Apache Software Foundation; http://www.apache.org/
Visiting Lecturer; University of Moratuwa; http://www.cse.mrt.ac.lk/
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-user-help@ws.apache.org
Re: Axis2: RESTful implementation with Axis2
Posted by ri...@multi-support.com.
Hi Keith,
I tried 1.3 RC1, and with success.
Axis2 now starts without any errors.
But I can't activate the REST service from an url.
Should I not be able to reach it with the following url?
http://localhost:8080/axis2/services/WeatherService/Weather/Denmark/Herning
Or have I misunderstood the new HTTPBinding.
<operation ref="tns:getWeather" whttp:method="GET" whttp:location=
"WeatherServiceHTTPEndpoint/Weather/{country}/{city}"/>
I have attached my generated code if it can be any help.
(See attached file: WeatherService.zip)
Regards
Multi-Support A/S
Torben Riis
--------------------------------------------------------------------
Phone +45 96 600 600, Fax +45 96 600 601
E-mail: riis@multi-support.com
http://www.multi-support.com
"keith chapman"
<keithgchapman@gm
ail.com> To
axis-user@ws.apache.org
11-07-2007 12:16 cc
Subject
Please respond to Re: Axis2: RESTful implementation
axis-user@ws.apac with Axis2
he.org
You can even try the 1.3 RCI available here.
http://people.apache.org/~deepal/axis2/1.3-RC1/
If you continue to have any problems just post your aar so that I can have
a look.
Thanks,
Keith.
On 7/11/07, riis@multi-support.com <riis@multi-support.com > wrote:
Hi Keith,
I forgot specify the argument (-wv) on wsdl2java. My mistake. :-)
I can see that eclipse gives another validation, than the one from
Rational
Application Developer 7. Maybe it just doesn't support WSDL 2.0
validation....
But anyway, wsdl2java generates skeleton code without errors now.
But I get another error during startup of Axis2 now.
org.apache.axis2.deployment.repository.util.ArchiveReader - Trouble
processing wsdl file :Illegal character in opaque part at index 2:
.....\webapps\WeatherService\WEB-INF\services\weather\META-INF
Should I try the nightly build instead? Right now I'm using Axis2
1.2.
Regards
Multi-Support A/S
Torben Riis
--------------------------------------------------------------------
Phone +45 96 600 600, Fax +45 96 600 601
E-mail: riis@multi-support.com
http://www.multi-support.com
"keith chapman"
< keithgchapman@gm
ail.com>
To
axis-user@ws.apache.org
11-07-2007 11:08
cc
Subject
Please respond to Re: Axis2: RESTful
implementation
axis-user@ws.apac with Axis2
he.org
Which version of Axis2 are you using?
I would recoment 1.2 or even a nightly or the 1.3 RC
Thanks,
Keith.
On 7/11/07, riis@multi-support.com <riis@multi-support.com > wrote:
Hi Keith,
I have some problems generating stub/skeletons for your wsdl.
My IDE gives the following validation error for
WeatherHTTPBinding.
WSDL: Missing port type for binding {
http://example.axis2.apache.org}
WeatherHTTPBinding
What does I miss?
Regards
Multi-Support A/S
Torben Riis
--------------------------------------------------------------------
Phone +45 96 600 600, Fax +45 96 600 601
E-mail: riis@multi-support.com
http://www.multi-support.com
"keith chapman"
< keithgchapman@gm
ail.com>
To
axis-user@ws.apache.org
11-07-2007 09:27
cc
Subject
Please respond to Re: Axis2: RESTful
implementation
axis-user@ws.apac with Axis2
he.org
here is a sample Weather.wsdl2. Please let me know if you need
any
clarifications.
<description xmlns="http://www.w3.org/ns/wsdl"
targetNamespace=" http://example.axis2.apache.org
"
xmlns:tns="http://example.axis2.apache.org"
xmlns:wsoap=" http://www.w3.org/ns/wsdl/soap "
xmlns:whttp="http://www.w3.org/ns/wsdl/http"
xmlns:xsd1=" http://example.axis2.apache.org/xsd "
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<documentation>
Just a sample service to explain WSDL 2.0 semantics
</documentation>
<types>
<xs:schema elementFormDefault="qualified"
targetNamespace="
http://example.axis2.apache.org/xsd "
xmlns:xs=" http://www.w3.org/2001/XMLSchema"
xmlns:xsd1="
http://example.axis2.apache.org/xsd
">
<xs:element name="weather"
type="xsd1:weatherStructType"/>
<xs:complexType name="weatherStructType">
<xs:sequence>
<xs:element name="temparature"
type="xs:int"/>
<xs:element name="sky" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:element name="location"
type="xsd1:locationStructType"/>
<xs:complexType name="locationStructType">
<xs:sequence>
<xs:element name="country"
type="xs:string"/>
<xs:element name="city" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:element name="response" type="xs:string"/>
<xs:element name="weatherFault"
type="xsd1:weatherFaultStructType"/>
<xs:complexType name="weatherFaultStructType">
<xs:sequence>
<xs:element name="Fault" type="xs:string"/>
<xs:element name="country"
type="xs:string"/>
<xs:element name="city" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:element name="weatherDetails"
type="xsd1:weatherDetailsStructType"/>
<xs:complexType name="weatherDetailsStructType">
<xs:sequence>
<xs:element name="weather"
type="xsd1:weatherStructType"/>
<xs:element name="location"
type="xsd1:locationStructType"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
</types>
<interface name="Weather">
<documentation>
This is where the abstract descriptions of the
operations
are
given. Note that WSDL 2.0
has the concept of reusing faults, hence they are
described at
the interface level.
</documentation>
<fault name="weatherFault"
element="xsd1:weatherFault"></fault>
<operation name="getWeather" pattern="
http://www.w3.org/ns/wsdl/in-out ">
<input element="xsd1:location"/>
<output element="xsd1:weather"/>
<outfault ref="tns:weatherFault"/>
</operation>
<operation name="setWeather" pattern="
http://www.w3.org/ns/wsdl/in-out">
<input element="xsd1:weatherDetails"/>
<output element="xsd1:response"/>
<outfault ref="tns:weatherFault"/>
</operation>
</interface>
<binding name="WeatherHTTPBinding" interface="tns:Weather"
type="http://www.w3.org/ns/wsdl/http">
<documentation>
This binding binds the weather interface to RESTish
style
invocations.
NOTE : The URL for the operation is constracted by
resolving
the httplocation against
the base uri.
e.g. If the country was srilanka and the city was
colombo
then
the URL will be
http://example.org/WeatherService/WeatherServiceSOAPEndpoint/Weather/srilanka/colombo
</documentation>
<fault ref="tns:weatherFault" whttp:code="402"/>
<operation ref="tns:getWeather" whttp:method="GET"
whttp:location="WeatherServiceHTTPEndpoint/Weather/{country}/{city}"/>
<operation ref="tns:setWeather" whttp:method="PUT"
whttp:location="WeatherServiceHTTPEndpoint/Update/{country}/{city}"/>
<!--Ideally this should be as follows. Will fux it in
the
trunk-->
<!--<operation ref="tns:setWeather" whttp:method="POST"
whttp:location="WeatherServiceHTTPEndpoint/Weather/{country}/{city}"/>-->
</binding>
<service name="WeatherService" interface="tns:Weather">
<endpoint name="WeatherServiceHTTPEndpoint"
binding="tns:WeatherHTTPBinding"
address="
http://example.org/WeatherService/WeatherServiceHTTPEndpoint/
"/>
</service>
</description>
Thanks,
Keith.
On 7/11/07, riis@multi-support.com <ri...@multi-support.com>
wrote:
Hi Keith,
An example would be very nice. ;-)
An example where you format the URL in a RESTish style
would be
perfect.
Maybe with both GET & POST if it isn't too much trouble.
Thanks a lot.
Regards
Multi-Support A/S
Torben Riis
--------------------------------------------------------------------
Phone +45 96 600 600, Fax +45 96 600 601
E-mail: riis@multi-support.com
http://www.multi-support.com
"keith chapman"
<keithgchapman@gm
ail.com >
To
axis-user@ws.apache.org
11-07-2007 07:40
cc
Subject
Please respond to Re: Axis2: RESTful
implementation
axis-user@ws.apac with Axis2
he.org
The WSDL 2.0 primer is a good starting place. It takes
you
through
the
concepts of WSDL 2.0 very nicely (without making things
too
complex).
WSDL
2.0 is a whole lot clean and easy to understand. If you
like I
can
write a
sample WSDL 2.0 doc for you if you have an example in
mind :).
And yes you can use the http methods GET, POST, PUT &
DELETE in
the
same
service. Its just that you cant use them on the same
operation.
Thanks,
Keith.
On 7/11/07, riis@multi-support.com <
riis@multi-support.com>
wrote:
Hi Keith,
Thank you for answering.
When I earlier talked about using the http methods
GET,
POST,
PUT &
DELETE,
I actually meant using them in the same service.
WSDL 2.0 really sounds interesting.
I have a little knowledge about WSDL 1.1/1.2,
because I'm
studying
for the
SCDJWS exam, but I doesn't know anything about WSDL
2.0.
I guess a lot has changed since it is possible to
describe how
the
URL
should be formatted and whether to use http
methods GET,
POST,
PUT
or
DELETE.
Do you have or know a place where I can find simple
example
WSDL
describing
such a service?
Or would it be best just start reading WSDL 2.0
HTTPBinding.
Regards
Multi-Support A/S
Torben Riis
--------------------------------------------------------------------
Phone +45 96 600 600, Fax +45 96 600 601
E-mail: riis@multi-support.com
http://www.multi-support.com
"keith chapman"
< keithgchapman@gm
ail.com>
To
axis-user@ws.apache.org
11-07-2007 06:45
cc
Subject
Please respond to Re: Axis2:
RESTful
implementation
axis-user@ws.apac with Axis2
he.org
See comments inline.
On 7/10/07, riis@multi-support.com <
riis@multi-support.com >
wrote:
Hi,
I have some questions regarding implementing
a
RESTfull
service.
After
reading a lot of previous RESTish threads I
got
quite
confused.
So I hope someone can help me straightened it
out.
If I want to create a RESTful service with
Axis2
would it
then
require that
the service is implemented as RPC, or can
other
message
receivers be
used?
Is it possible to create a RESTful service
with
Axis2
that can
be
reached
in the following way:
http://www.boeing.com/rest/aircraft/747
instead of
http://www.boeing.com/rest/MyAircraftServices/getAircraft?model=747
Yes this can be done. REST support in Axis2 was
achieved
via
the
WSDL 2.0
HTTPBinding (If you are not familiar with WSDL this
might
sound
a bit
strange). The kind of question you asked can easily
be
done by
deploying
your service via a WSDL 2.0 description. Please
have a
look at
the
primer
it has some easy to understand examples.
First i actually thought that a RESTful
service
should
implement some
sort
of interface with methods corresponding to
GET,
POST, PUT
&
DELETE.
But I read in some of the other threads that
a
RESTful
service
should
only
have one method. Isn't that a problem if you
try to
accomplice
the
syntax
that the following articles describes.
Yes you can use all 4 HTTP methods described above,
depending
on your
requirement. Its all about using the appropriate
method
(Not
that you
must
use just one method)
http://www.innoq.com/blog/st/2006/06/30/rest_vs_soap_oh_no_not_again.html
http://www.xfront.com/REST-Web-Services.html
Where the same url has different
functionality
depending
on how
it is
called (GET, POST).
GET /order/{id} Get order details
POST /order/{id} Add item
the current version of Axis2 does not support this
(But
it can
be
included,
I will file a JIRA on this and try to get it into
the 1.3
release.)
Please let us know if you need more help (Can even
assist
you
in
writing
down the WSDL 2.0 description)
Thanks,
Keith.
Regards
Multi-Support A/S
Torben Riis
--------------------------------------------------------------------
Phone +45 96 600 600, Fax +45 96 600 601
E-mail: riis@multi-support.com
http://www.multi-support.com
---------------------------------------------------------------------
To unsubscribe, e-mail:
axis-user-unsubscribe@ws.apache.org
For additional commands, e-mail:
axis-user-help@ws.apache.org
--
Keith Chapman
WSO2 Inc.
Oxygen for Web Services Developers.
http://wso2.org/
---------------------------------------------------------------------
To unsubscribe, e-mail:
axis-user-unsubscribe@ws.apache.org
For additional commands, e-mail:
axis-user-help@ws.apache.org
--
Keith Chapman
WSO2 Inc.
Oxygen for Web Services Developers.
http://wso2.org/
---------------------------------------------------------------------
To unsubscribe, e-mail:
axis-user-unsubscribe@ws.apache.org
For additional commands, e-mail:
axis-user-help@ws.apache.org
--
Keith Chapman
WSO2 Inc.
Oxygen for Web Services Developers.
http://wso2.org/
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-user-help@ws.apache.org
--
Keith Chapman
WSO2 Inc.
Oxygen for Web Services Developers.
http://wso2.org/
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-user-help@ws.apache.org
--
Keith Chapman
WSO2 Inc.
Oxygen for Web Services Developers.
http://wso2.org/
Re: Axis2: RESTful implementation with Axis2
Posted by keith chapman <ke...@gmail.com>.
You can even try the 1.3 RCI available here.
http://people.apache.org/~deepal/axis2/1.3-RC1/
If you continue to have any problems just post your aar so that I can have a
look.
Thanks,
Keith.
On 7/11/07, riis@multi-support.com <ri...@multi-support.com> wrote:
>
>
> Hi Keith,
>
> I forgot specify the argument (-wv) on wsdl2java. My mistake. :-)
> I can see that eclipse gives another validation, than the one from
> Rational
> Application Developer 7. Maybe it just doesn't support WSDL 2.0
> validation....
> But anyway, wsdl2java generates skeleton code without errors now.
>
> But I get another error during startup of Axis2 now.
> org.apache.axis2.deployment.repository.util.ArchiveReader - Trouble
> processing wsdl file :Illegal character in opaque part at index 2:
> .....\webapps\WeatherService\WEB-INF\services\weather\META-INF
>
> Should I try the nightly build instead? Right now I'm using Axis2 1.2.
>
> Regards
> Multi-Support A/S
>
> Torben Riis
> --------------------------------------------------------------------
> Phone +45 96 600 600, Fax +45 96 600 601
> E-mail: riis@multi-support.com
> http://www.multi-support.com
>
>
>
> "keith chapman"
> <keithgchapman@gm
> ail.com> To
> axis-user@ws.apache.org
> 11-07-2007 11:08 cc
>
> Subject
> Please respond to Re: Axis2: RESTful implementation
> axis-user@ws.apac with Axis2
> he.org
>
>
>
>
>
>
>
>
>
> Which version of Axis2 are you using?
>
> I would recoment 1.2 or even a nightly or the 1.3 RC
>
> Thanks,
> Keith.
>
> On 7/11/07, riis@multi-support.com <ri...@multi-support.com> wrote:
>
> Hi Keith,
>
> I have some problems generating stub/skeletons for your wsdl.
>
> My IDE gives the following validation error for WeatherHTTPBinding.
>
> WSDL: Missing port type for binding {
> http://example.axis2.apache.org}
> WeatherHTTPBinding
>
> What does I miss?
>
> Regards
> Multi-Support A/S
>
> Torben Riis
> --------------------------------------------------------------------
> Phone +45 96 600 600, Fax +45 96 600 601
> E-mail: riis@multi-support.com
> http://www.multi-support.com
>
>
>
> "keith chapman"
> < keithgchapman@gm
> ail.com>
> To
> axis-user@ws.apache.org
> 11-07-2007 09:27
> cc
>
>
> Subject
> Please respond to Re: Axis2: RESTful
> implementation
> axis-user@ws.apac with Axis2
> he.org
>
>
>
>
>
>
>
>
>
> here is a sample Weather.wsdl2. Please let me know if you need any
> clarifications.
>
> <description xmlns="http://www.w3.org/ns/wsdl"
> targetNamespace=" http://example.axis2.apache.org "
> xmlns:tns="http://example.axis2.apache.org"
> xmlns:wsoap=" http://www.w3.org/ns/wsdl/soap "
> xmlns:whttp="http://www.w3.org/ns/wsdl/http"
> xmlns:xsd1=" http://example.axis2.apache.org/xsd "
> xmlns:xs="http://www.w3.org/2001/XMLSchema">
>
> <documentation>
> Just a sample service to explain WSDL 2.0 semantics
> </documentation>
>
> <types>
> <xs:schema elementFormDefault="qualified"
> targetNamespace="
> http://example.axis2.apache.org/xsd "
> xmlns:xs="http://www.w3.org/2001/XMLSchema"
> xmlns:xsd1=" http://example.axis2.apache.org/xsd
> ">
>
> <xs:element name="weather"
> type="xsd1:weatherStructType"/>
> <xs:complexType name="weatherStructType">
> <xs:sequence>
> <xs:element name="temparature" type="xs:int"/>
> <xs:element name="sky" type="xs:string"/>
> </xs:sequence>
> </xs:complexType>
>
> <xs:element name="location"
> type="xsd1:locationStructType"/>
> <xs:complexType name="locationStructType">
> <xs:sequence>
> <xs:element name="country" type="xs:string"/>
> <xs:element name="city" type="xs:string"/>
> </xs:sequence>
> </xs:complexType>
>
> <xs:element name="response" type="xs:string"/>
>
> <xs:element name="weatherFault"
> type="xsd1:weatherFaultStructType"/>
> <xs:complexType name="weatherFaultStructType">
> <xs:sequence>
> <xs:element name="Fault" type="xs:string"/>
> <xs:element name="country" type="xs:string"/>
> <xs:element name="city" type="xs:string"/>
> </xs:sequence>
> </xs:complexType>
>
> <xs:element name="weatherDetails"
> type="xsd1:weatherDetailsStructType"/>
> <xs:complexType name="weatherDetailsStructType">
> <xs:sequence>
> <xs:element name="weather"
> type="xsd1:weatherStructType"/>
> <xs:element name="location"
> type="xsd1:locationStructType"/>
> </xs:sequence>
> </xs:complexType>
> </xs:schema>
> </types>
>
> <interface name="Weather">
> <documentation>
> This is where the abstract descriptions of the
> operations
> are
> given. Note that WSDL 2.0
> has the concept of reusing faults, hence they are
> described at
> the interface level.
> </documentation>
> <fault name="weatherFault"
> element="xsd1:weatherFault"></fault>
>
> <operation name="getWeather" pattern="
> http://www.w3.org/ns/wsdl/in-out">
> <input element="xsd1:location"/>
> <output element="xsd1:weather"/>
> <outfault ref="tns:weatherFault"/>
> </operation>
>
> <operation name="setWeather" pattern="
> http://www.w3.org/ns/wsdl/in-out">
> <input element="xsd1:weatherDetails"/>
> <output element="xsd1:response"/>
> <outfault ref="tns:weatherFault"/>
> </operation>
>
> </interface>
>
> <binding name="WeatherHTTPBinding" interface="tns:Weather"
> type="http://www.w3.org/ns/wsdl/http">
> <documentation>
> This binding binds the weather interface to RESTish
> style
> invocations.
> NOTE : The URL for the operation is constracted by
> resolving
> the httplocation against
> the base uri.
> e.g. If the country was srilanka and the city was
> colombo
> then
> the URL will be
>
>
> http://example.org/WeatherService/WeatherServiceSOAPEndpoint/Weather/srilanka/colombo
>
>
> </documentation>
> <fault ref="tns:weatherFault" whttp:code="402"/>
> <operation ref="tns:getWeather" whttp:method="GET"
>
>
> whttp:location="WeatherServiceHTTPEndpoint/Weather/{country}/{city}"/>
>
> <operation ref="tns:setWeather" whttp:method="PUT"
>
>
> whttp:location="WeatherServiceHTTPEndpoint/Update/{country}/{city}"/>
> <!--Ideally this should be as follows. Will fux it in the
> trunk-->
> <!--<operation ref="tns:setWeather" whttp:method="POST"
>
> whttp:location="WeatherServiceHTTPEndpoint/Weather/{country}/{city}"/>-->
>
> </binding>
>
> <service name="WeatherService" interface="tns:Weather">
> <endpoint name="WeatherServiceHTTPEndpoint"
> binding="tns:WeatherHTTPBinding"
> address="
> http://example.org/WeatherService/WeatherServiceHTTPEndpoint/ "/>
> </service>
>
> </description>
>
> Thanks,
> Keith.
>
> On 7/11/07, riis@multi-support.com <ri...@multi-support.com> wrote:
>
> Hi Keith,
>
> An example would be very nice. ;-)
> An example where you format the URL in a RESTish style would
> be
>
> perfect.
> Maybe with both GET & POST if it isn't too much trouble.
>
> Thanks a lot.
>
> Regards
> Multi-Support A/S
>
> Torben Riis
>
> --------------------------------------------------------------------
> Phone +45 96 600 600, Fax +45 96 600 601
> E-mail: riis@multi-support.com
> http://www.multi-support.com
>
>
>
> "keith chapman"
> <keithgchapman@gm
> ail.com >
> To
> axis-user@ws.apache.org
> 11-07-2007 07:40
> cc
>
>
> Subject
> Please respond to Re: Axis2: RESTful
> implementation
> axis-user@ws.apac with Axis2
> he.org
>
>
>
>
>
>
>
>
>
> The WSDL 2.0 primer is a good starting place. It takes you
> through
> the
> concepts of WSDL 2.0 very nicely (without making things too
> complex).
> WSDL
> 2.0 is a whole lot clean and easy to understand. If you like I
> can
> write a
> sample WSDL 2.0 doc for you if you have an example in mind :).
>
> And yes you can use the http methods GET, POST, PUT & DELETE
> in
> the
> same
> service. Its just that you cant use them on the same
> operation.
>
> Thanks,
> Keith.
>
> On 7/11/07, riis@multi-support.com < riis@multi-support.com>
> wrote:
>
> Hi Keith,
>
> Thank you for answering.
>
> When I earlier talked about using the http methods GET,
> POST,
> PUT &
> DELETE,
> I actually meant using them in the same service.
>
> WSDL 2.0 really sounds interesting.
>
> I have a little knowledge about WSDL 1.1/1.2, because
> I'm
> studying
> for the
> SCDJWS exam, but I doesn't know anything about WSDL 2.0.
> I guess a lot has changed since it is possible to
> describe how
> the
> URL
> should be formatted and whether to use http methods
> GET,
> POST,
> PUT
> or
> DELETE.
>
> Do you have or know a place where I can find simple
> example
> WSDL
> describing
> such a service?
> Or would it be best just start reading WSDL 2.0
> HTTPBinding.
>
>
> Regards
> Multi-Support A/S
>
> Torben Riis
>
>
> --------------------------------------------------------------------
> Phone +45 96 600 600, Fax +45 96 600 601
> E-mail: riis@multi-support.com
> http://www.multi-support.com
>
>
>
> "keith chapman"
> < keithgchapman@gm
> ail.com>
> To
>
> axis-user@ws.apache.org
> 11-07-2007 06:45
> cc
>
>
> Subject
> Please respond to Re: Axis2:
> RESTful
> implementation
> axis-user@ws.apac with Axis2
> he.org
>
>
>
>
>
>
>
>
>
> See comments inline.
>
> On 7/10/07, riis@multi-support.com <
> riis@multi-support.com >
> wrote:
>
> Hi,
>
> I have some questions regarding implementing a
> RESTfull
> service.
> After
> reading a lot of previous RESTish threads I got
> quite
> confused.
> So I hope someone can help me straightened it out.
>
> If I want to create a RESTful service with Axis2
> would it
> then
> require that
> the service is implemented as RPC, or can other
> message
> receivers be
> used?
>
>
> Is it possible to create a RESTful service with
> Axis2
> that can
> be
> reached
> in the following way:
> http://www.boeing.com/rest/aircraft/747
> instead of
>
>
>
> http://www.boeing.com/rest/MyAircraftServices/getAircraft?model=747
>
> Yes this can be done. REST support in Axis2 was achieved
> via
> the
> WSDL 2.0
> HTTPBinding (If you are not familiar with WSDL this
> might
> sound
> a bit
> strange). The kind of question you asked can easily be
> done by
> deploying
> your service via a WSDL 2.0 description. Please have a
> look at
> the
> primer
> it has some easy to understand examples.
>
> First i actually thought that a RESTful service
> should
> implement some
> sort
> of interface with methods corresponding to GET,
> POST, PUT
> &
> DELETE.
> But I read in some of the other threads that a
> RESTful
> service
> should
> only
> have one method. Isn't that a problem if you try
> to
>
> accomplice
> the
> syntax
> that the following articles describes.
>
> Yes you can use all 4 HTTP methods described above,
> depending
> on your
> requirement. Its all about using the appropriate method
> (Not
> that you
> must
> use just one method)
>
>
>
>
>
> http://www.innoq.com/blog/st/2006/06/30/rest_vs_soap_oh_no_not_again.html
>
>
>
>
> http://www.xfront.com/REST-Web-Services.html
>
> Where the same url has different functionality
> depending
> on how
> it is
>
> called (GET, POST).
> GET /order/{id} Get order details
> POST /order/{id} Add item
>
> the current version of Axis2 does not support this (But
> it can
> be
> included,
> I will file a JIRA on this and try to get it into the
> 1.3
> release.)
>
> Please let us know if you need more help (Can even
> assist
> you
> in
> writing
> down the WSDL 2.0 description)
>
> Thanks,
> Keith.
>
> Regards
> Multi-Support A/S
>
> Torben Riis
>
>
>
> --------------------------------------------------------------------
> Phone +45 96 600 600, Fax +45 96 600 601
> E-mail: riis@multi-support.com
> http://www.multi-support.com
>
>
>
>
>
>
> ---------------------------------------------------------------------
>
>
> To unsubscribe, e-mail:
> axis-user-unsubscribe@ws.apache.org
> For additional commands, e-mail:
> axis-user-help@ws.apache.org
>
>
>
>
> --
> Keith Chapman
> WSO2 Inc.
> Oxygen for Web Services Developers.
> http://wso2.org/
>
>
>
>
>
> ---------------------------------------------------------------------
>
>
> To unsubscribe, e-mail:
> axis-user-unsubscribe@ws.apache.org
> For additional commands, e-mail:
> axis-user-help@ws.apache.org
>
>
>
>
> --
> Keith Chapman
> WSO2 Inc.
> Oxygen for Web Services Developers.
> http://wso2.org/
>
>
>
>
> ---------------------------------------------------------------------
>
> To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
> For additional commands, e-mail: axis-user-help@ws.apache.org
>
>
>
>
> --
> Keith Chapman
> WSO2 Inc.
> Oxygen for Web Services Developers.
> http://wso2.org/
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
> For additional commands, e-mail: axis-user-help@ws.apache.org
>
>
>
>
> --
> Keith Chapman
> WSO2 Inc.
> Oxygen for Web Services Developers.
> http://wso2.org/
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
> For additional commands, e-mail: axis-user-help@ws.apache.org
>
>
--
Keith Chapman
WSO2 Inc.
Oxygen for Web Services Developers.
http://wso2.org/
Re: Axis2: RESTful implementation with Axis2
Posted by ri...@multi-support.com.
Hi Keith,
I forgot specify the argument (-wv) on wsdl2java. My mistake. :-)
I can see that eclipse gives another validation, than the one from Rational
Application Developer 7. Maybe it just doesn't support WSDL 2.0
validation....
But anyway, wsdl2java generates skeleton code without errors now.
But I get another error during startup of Axis2 now.
org.apache.axis2.deployment.repository.util.ArchiveReader - Trouble
processing wsdl file :Illegal character in opaque part at index 2:
.....\webapps\WeatherService\WEB-INF\services\weather\META-INF
Should I try the nightly build instead? Right now I'm using Axis2 1.2.
Regards
Multi-Support A/S
Torben Riis
--------------------------------------------------------------------
Phone +45 96 600 600, Fax +45 96 600 601
E-mail: riis@multi-support.com
http://www.multi-support.com
"keith chapman"
<keithgchapman@gm
ail.com> To
axis-user@ws.apache.org
11-07-2007 11:08 cc
Subject
Please respond to Re: Axis2: RESTful implementation
axis-user@ws.apac with Axis2
he.org
Which version of Axis2 are you using?
I would recoment 1.2 or even a nightly or the 1.3 RC
Thanks,
Keith.
On 7/11/07, riis@multi-support.com <ri...@multi-support.com> wrote:
Hi Keith,
I have some problems generating stub/skeletons for your wsdl.
My IDE gives the following validation error for WeatherHTTPBinding.
WSDL: Missing port type for binding {
http://example.axis2.apache.org}
WeatherHTTPBinding
What does I miss?
Regards
Multi-Support A/S
Torben Riis
--------------------------------------------------------------------
Phone +45 96 600 600, Fax +45 96 600 601
E-mail: riis@multi-support.com
http://www.multi-support.com
"keith chapman"
< keithgchapman@gm
ail.com>
To
axis-user@ws.apache.org
11-07-2007 09:27
cc
Subject
Please respond to Re: Axis2: RESTful
implementation
axis-user@ws.apac with Axis2
he.org
here is a sample Weather.wsdl2. Please let me know if you need any
clarifications.
<description xmlns="http://www.w3.org/ns/wsdl"
targetNamespace=" http://example.axis2.apache.org "
xmlns:tns="http://example.axis2.apache.org"
xmlns:wsoap=" http://www.w3.org/ns/wsdl/soap "
xmlns:whttp="http://www.w3.org/ns/wsdl/http"
xmlns:xsd1=" http://example.axis2.apache.org/xsd "
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<documentation>
Just a sample service to explain WSDL 2.0 semantics
</documentation>
<types>
<xs:schema elementFormDefault="qualified"
targetNamespace="
http://example.axis2.apache.org/xsd "
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsd1=" http://example.axis2.apache.org/xsd
">
<xs:element name="weather"
type="xsd1:weatherStructType"/>
<xs:complexType name="weatherStructType">
<xs:sequence>
<xs:element name="temparature" type="xs:int"/>
<xs:element name="sky" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:element name="location"
type="xsd1:locationStructType"/>
<xs:complexType name="locationStructType">
<xs:sequence>
<xs:element name="country" type="xs:string"/>
<xs:element name="city" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:element name="response" type="xs:string"/>
<xs:element name="weatherFault"
type="xsd1:weatherFaultStructType"/>
<xs:complexType name="weatherFaultStructType">
<xs:sequence>
<xs:element name="Fault" type="xs:string"/>
<xs:element name="country" type="xs:string"/>
<xs:element name="city" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:element name="weatherDetails"
type="xsd1:weatherDetailsStructType"/>
<xs:complexType name="weatherDetailsStructType">
<xs:sequence>
<xs:element name="weather"
type="xsd1:weatherStructType"/>
<xs:element name="location"
type="xsd1:locationStructType"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
</types>
<interface name="Weather">
<documentation>
This is where the abstract descriptions of the operations
are
given. Note that WSDL 2.0
has the concept of reusing faults, hence they are
described at
the interface level.
</documentation>
<fault name="weatherFault"
element="xsd1:weatherFault"></fault>
<operation name="getWeather" pattern="
http://www.w3.org/ns/wsdl/in-out">
<input element="xsd1:location"/>
<output element="xsd1:weather"/>
<outfault ref="tns:weatherFault"/>
</operation>
<operation name="setWeather" pattern="
http://www.w3.org/ns/wsdl/in-out">
<input element="xsd1:weatherDetails"/>
<output element="xsd1:response"/>
<outfault ref="tns:weatherFault"/>
</operation>
</interface>
<binding name="WeatherHTTPBinding" interface="tns:Weather"
type="http://www.w3.org/ns/wsdl/http">
<documentation>
This binding binds the weather interface to RESTish style
invocations.
NOTE : The URL for the operation is constracted by
resolving
the httplocation against
the base uri.
e.g. If the country was srilanka and the city was colombo
then
the URL will be
http://example.org/WeatherService/WeatherServiceSOAPEndpoint/Weather/srilanka/colombo
</documentation>
<fault ref="tns:weatherFault" whttp:code="402"/>
<operation ref="tns:getWeather" whttp:method="GET"
whttp:location="WeatherServiceHTTPEndpoint/Weather/{country}/{city}"/>
<operation ref="tns:setWeather" whttp:method="PUT"
whttp:location="WeatherServiceHTTPEndpoint/Update/{country}/{city}"/>
<!--Ideally this should be as follows. Will fux it in the
trunk-->
<!--<operation ref="tns:setWeather" whttp:method="POST"
whttp:location="WeatherServiceHTTPEndpoint/Weather/{country}/{city}"/>-->
</binding>
<service name="WeatherService" interface="tns:Weather">
<endpoint name="WeatherServiceHTTPEndpoint"
binding="tns:WeatherHTTPBinding"
address="
http://example.org/WeatherService/WeatherServiceHTTPEndpoint/ "/>
</service>
</description>
Thanks,
Keith.
On 7/11/07, riis@multi-support.com <ri...@multi-support.com> wrote:
Hi Keith,
An example would be very nice. ;-)
An example where you format the URL in a RESTish style would be
perfect.
Maybe with both GET & POST if it isn't too much trouble.
Thanks a lot.
Regards
Multi-Support A/S
Torben Riis
--------------------------------------------------------------------
Phone +45 96 600 600, Fax +45 96 600 601
E-mail: riis@multi-support.com
http://www.multi-support.com
"keith chapman"
<keithgchapman@gm
ail.com >
To
axis-user@ws.apache.org
11-07-2007 07:40
cc
Subject
Please respond to Re: Axis2: RESTful
implementation
axis-user@ws.apac with Axis2
he.org
The WSDL 2.0 primer is a good starting place. It takes you
through
the
concepts of WSDL 2.0 very nicely (without making things too
complex).
WSDL
2.0 is a whole lot clean and easy to understand. If you like I
can
write a
sample WSDL 2.0 doc for you if you have an example in mind :).
And yes you can use the http methods GET, POST, PUT & DELETE in
the
same
service. Its just that you cant use them on the same operation.
Thanks,
Keith.
On 7/11/07, riis@multi-support.com < riis@multi-support.com>
wrote:
Hi Keith,
Thank you for answering.
When I earlier talked about using the http methods GET,
POST,
PUT &
DELETE,
I actually meant using them in the same service.
WSDL 2.0 really sounds interesting.
I have a little knowledge about WSDL 1.1/1.2, because I'm
studying
for the
SCDJWS exam, but I doesn't know anything about WSDL 2.0.
I guess a lot has changed since it is possible to
describe how
the
URL
should be formatted and whether to use http methods GET,
POST,
PUT
or
DELETE.
Do you have or know a place where I can find simple
example
WSDL
describing
such a service?
Or would it be best just start reading WSDL 2.0
HTTPBinding.
Regards
Multi-Support A/S
Torben Riis
--------------------------------------------------------------------
Phone +45 96 600 600, Fax +45 96 600 601
E-mail: riis@multi-support.com
http://www.multi-support.com
"keith chapman"
< keithgchapman@gm
ail.com>
To
axis-user@ws.apache.org
11-07-2007 06:45
cc
Subject
Please respond to Re: Axis2: RESTful
implementation
axis-user@ws.apac with Axis2
he.org
See comments inline.
On 7/10/07, riis@multi-support.com <
riis@multi-support.com >
wrote:
Hi,
I have some questions regarding implementing a
RESTfull
service.
After
reading a lot of previous RESTish threads I got
quite
confused.
So I hope someone can help me straightened it out.
If I want to create a RESTful service with Axis2
would it
then
require that
the service is implemented as RPC, or can other
message
receivers be
used?
Is it possible to create a RESTful service with
Axis2
that can
be
reached
in the following way:
http://www.boeing.com/rest/aircraft/747
instead of
http://www.boeing.com/rest/MyAircraftServices/getAircraft?model=747
Yes this can be done. REST support in Axis2 was achieved
via
the
WSDL 2.0
HTTPBinding (If you are not familiar with WSDL this might
sound
a bit
strange). The kind of question you asked can easily be
done by
deploying
your service via a WSDL 2.0 description. Please have a
look at
the
primer
it has some easy to understand examples.
First i actually thought that a RESTful service
should
implement some
sort
of interface with methods corresponding to GET,
POST, PUT
&
DELETE.
But I read in some of the other threads that a
RESTful
service
should
only
have one method. Isn't that a problem if you try to
accomplice
the
syntax
that the following articles describes.
Yes you can use all 4 HTTP methods described above,
depending
on your
requirement. Its all about using the appropriate method
(Not
that you
must
use just one method)
http://www.innoq.com/blog/st/2006/06/30/rest_vs_soap_oh_no_not_again.html
http://www.xfront.com/REST-Web-Services.html
Where the same url has different functionality
depending
on how
it is
called (GET, POST).
GET /order/{id} Get order details
POST /order/{id} Add item
the current version of Axis2 does not support this (But
it can
be
included,
I will file a JIRA on this and try to get it into the 1.3
release.)
Please let us know if you need more help (Can even assist
you
in
writing
down the WSDL 2.0 description)
Thanks,
Keith.
Regards
Multi-Support A/S
Torben Riis
--------------------------------------------------------------------
Phone +45 96 600 600, Fax +45 96 600 601
E-mail: riis@multi-support.com
http://www.multi-support.com
---------------------------------------------------------------------
To unsubscribe, e-mail:
axis-user-unsubscribe@ws.apache.org
For additional commands, e-mail:
axis-user-help@ws.apache.org
--
Keith Chapman
WSO2 Inc.
Oxygen for Web Services Developers.
http://wso2.org/
---------------------------------------------------------------------
To unsubscribe, e-mail:
axis-user-unsubscribe@ws.apache.org
For additional commands, e-mail:
axis-user-help@ws.apache.org
--
Keith Chapman
WSO2 Inc.
Oxygen for Web Services Developers.
http://wso2.org/
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-user-help@ws.apache.org
--
Keith Chapman
WSO2 Inc.
Oxygen for Web Services Developers.
http://wso2.org/
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-user-help@ws.apache.org
--
Keith Chapman
WSO2 Inc.
Oxygen for Web Services Developers.
http://wso2.org/
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-user-help@ws.apache.org
Re: Axis2: RESTful implementation with Axis2
Posted by keith chapman <ke...@gmail.com>.
Which version of Axis2 are you using?
I would recoment 1.2 or even a nightly or the 1.3 RC
Thanks,
Keith.
On 7/11/07, riis@multi-support.com <ri...@multi-support.com> wrote:
>
>
> Hi Keith,
>
> I have some problems generating stub/skeletons for your wsdl.
>
> My IDE gives the following validation error for WeatherHTTPBinding.
>
> WSDL: Missing port type for binding {http://example.axis2.apache.org
> }
> WeatherHTTPBinding
>
> What does I miss?
>
> Regards
> Multi-Support A/S
>
> Torben Riis
> --------------------------------------------------------------------
> Phone +45 96 600 600, Fax +45 96 600 601
> E-mail: riis@multi-support.com
> http://www.multi-support.com
>
>
>
> "keith chapman"
> <keithgchapman@gm
> ail.com> To
> axis-user@ws.apache.org
> 11-07-2007 09:27 cc
>
> Subject
> Please respond to Re: Axis2: RESTful implementation
> axis-user@ws.apac with Axis2
> he.org
>
>
>
>
>
>
>
>
>
> here is a sample Weather.wsdl2. Please let me know if you need any
> clarifications.
>
> <description xmlns="http://www.w3.org/ns/wsdl"
> targetNamespace=" http://example.axis2.apache.org"
> xmlns:tns="http://example.axis2.apache.org"
> xmlns:wsoap=" http://www.w3.org/ns/wsdl/soap"
> xmlns:whttp="http://www.w3.org/ns/wsdl/http"
> xmlns:xsd1=" http://example.axis2.apache.org/xsd"
> xmlns:xs="http://www.w3.org/2001/XMLSchema">
>
> <documentation>
> Just a sample service to explain WSDL 2.0 semantics
> </documentation>
>
> <types>
> <xs:schema elementFormDefault="qualified"
> targetNamespace=" http://example.axis2.apache.org/xsd"
> xmlns:xs="http://www.w3.org/2001/XMLSchema"
> xmlns:xsd1=" http://example.axis2.apache.org/xsd">
>
> <xs:element name="weather" type="xsd1:weatherStructType"/>
> <xs:complexType name="weatherStructType">
> <xs:sequence>
> <xs:element name="temparature" type="xs:int"/>
> <xs:element name="sky" type="xs:string"/>
> </xs:sequence>
> </xs:complexType>
>
> <xs:element name="location" type="xsd1:locationStructType"/>
> <xs:complexType name="locationStructType">
> <xs:sequence>
> <xs:element name="country" type="xs:string"/>
> <xs:element name="city" type="xs:string"/>
> </xs:sequence>
> </xs:complexType>
>
> <xs:element name="response" type="xs:string"/>
>
> <xs:element name="weatherFault"
> type="xsd1:weatherFaultStructType"/>
> <xs:complexType name="weatherFaultStructType">
> <xs:sequence>
> <xs:element name="Fault" type="xs:string"/>
> <xs:element name="country" type="xs:string"/>
> <xs:element name="city" type="xs:string"/>
> </xs:sequence>
> </xs:complexType>
>
> <xs:element name="weatherDetails"
> type="xsd1:weatherDetailsStructType"/>
> <xs:complexType name="weatherDetailsStructType">
> <xs:sequence>
> <xs:element name="weather"
> type="xsd1:weatherStructType"/>
> <xs:element name="location"
> type="xsd1:locationStructType"/>
> </xs:sequence>
> </xs:complexType>
> </xs:schema>
> </types>
>
> <interface name="Weather">
> <documentation>
> This is where the abstract descriptions of the operations are
> given. Note that WSDL 2.0
> has the concept of reusing faults, hence they are described at
> the interface level.
> </documentation>
> <fault name="weatherFault" element="xsd1:weatherFault"></fault>
>
> <operation name="getWeather" pattern="
> http://www.w3.org/ns/wsdl/in-out">
> <input element="xsd1:location"/>
> <output element="xsd1:weather"/>
> <outfault ref="tns:weatherFault"/>
> </operation>
>
> <operation name="setWeather" pattern="
> http://www.w3.org/ns/wsdl/in-out">
> <input element="xsd1:weatherDetails"/>
> <output element="xsd1:response"/>
> <outfault ref="tns:weatherFault"/>
> </operation>
>
> </interface>
>
> <binding name="WeatherHTTPBinding" interface="tns:Weather"
> type="http://www.w3.org/ns/wsdl/http">
> <documentation>
> This binding binds the weather interface to RESTish style
> invocations.
> NOTE : The URL for the operation is constracted by resolving
> the httplocation against
> the base uri.
> e.g. If the country was srilanka and the city was colombo then
> the URL will be
>
>
> http://example.org/WeatherService/WeatherServiceSOAPEndpoint/Weather/srilanka/colombo
>
> </documentation>
> <fault ref="tns:weatherFault" whttp:code="402"/>
> <operation ref="tns:getWeather" whttp:method="GET"
>
> whttp:location="WeatherServiceHTTPEndpoint/Weather/{country}/{city}"/>
> <operation ref="tns:setWeather" whttp:method="PUT"
>
> whttp:location="WeatherServiceHTTPEndpoint/Update/{country}/{city}"/>
> <!--Ideally this should be as follows. Will fux it in the trunk-->
> <!--<operation ref="tns:setWeather" whttp:method="POST"
> whttp:location="WeatherServiceHTTPEndpoint/Weather/{country}/{city}"/>-->
> </binding>
>
> <service name="WeatherService" interface="tns:Weather">
> <endpoint name="WeatherServiceHTTPEndpoint"
> binding="tns:WeatherHTTPBinding"
> address="
> http://example.org/WeatherService/WeatherServiceHTTPEndpoint/ "/>
> </service>
>
> </description>
>
> Thanks,
> Keith.
>
> On 7/11/07, riis@multi-support.com <ri...@multi-support.com> wrote:
>
> Hi Keith,
>
> An example would be very nice. ;-)
> An example where you format the URL in a RESTish style would be
> perfect.
> Maybe with both GET & POST if it isn't too much trouble.
>
> Thanks a lot.
>
> Regards
> Multi-Support A/S
>
> Torben Riis
> --------------------------------------------------------------------
> Phone +45 96 600 600, Fax +45 96 600 601
> E-mail: riis@multi-support.com
> http://www.multi-support.com
>
>
>
> "keith chapman"
> <keithgchapman@gm
> ail.com >
> To
> axis-user@ws.apache.org
> 11-07-2007 07:40
> cc
>
>
> Subject
> Please respond to Re: Axis2: RESTful
> implementation
> axis-user@ws.apac with Axis2
> he.org
>
>
>
>
>
>
>
>
>
> The WSDL 2.0 primer is a good starting place. It takes you through
> the
> concepts of WSDL 2.0 very nicely (without making things too
> complex).
> WSDL
> 2.0 is a whole lot clean and easy to understand. If you like I can
> write a
> sample WSDL 2.0 doc for you if you have an example in mind :).
>
> And yes you can use the http methods GET, POST, PUT & DELETE in the
> same
> service. Its just that you cant use them on the same operation.
>
> Thanks,
> Keith.
>
> On 7/11/07, riis@multi-support.com < riis@multi-support.com> wrote:
>
> Hi Keith,
>
> Thank you for answering.
>
> When I earlier talked about using the http methods GET, POST,
> PUT &
> DELETE,
> I actually meant using them in the same service.
>
> WSDL 2.0 really sounds interesting.
>
> I have a little knowledge about WSDL 1.1/1.2, because I'm
> studying
> for the
> SCDJWS exam, but I doesn't know anything about WSDL 2.0.
> I guess a lot has changed since it is possible to describe how
> the
> URL
> should be formatted and whether to use http methods GET,
> POST,
> PUT
> or
> DELETE.
>
> Do you have or know a place where I can find simple example
> WSDL
> describing
> such a service?
> Or would it be best just start reading WSDL 2.0 HTTPBinding.
>
>
> Regards
> Multi-Support A/S
>
> Torben Riis
>
> --------------------------------------------------------------------
> Phone +45 96 600 600, Fax +45 96 600 601
> E-mail: riis@multi-support.com
> http://www.multi-support.com
>
>
>
> "keith chapman"
> < keithgchapman@gm
> ail.com>
> To
> axis-user@ws.apache.org
> 11-07-2007 06:45
> cc
>
>
> Subject
> Please respond to Re: Axis2: RESTful
> implementation
> axis-user@ws.apac with Axis2
> he.org
>
>
>
>
>
>
>
>
>
> See comments inline.
>
> On 7/10/07, riis@multi-support.com <riis@multi-support.com >
> wrote:
>
> Hi,
>
> I have some questions regarding implementing a RESTfull
> service.
> After
> reading a lot of previous RESTish threads I got quite
> confused.
> So I hope someone can help me straightened it out.
>
> If I want to create a RESTful service with Axis2 would
> it
> then
> require that
> the service is implemented as RPC, or can other message
> receivers be
> used?
>
>
> Is it possible to create a RESTful service with Axis2
> that can
> be
> reached
> in the following way:
> http://www.boeing.com/rest/aircraft/747
> instead of
>
>
> http://www.boeing.com/rest/MyAircraftServices/getAircraft?model=747
>
> Yes this can be done. REST support in Axis2 was achieved via
> the
> WSDL 2.0
> HTTPBinding (If you are not familiar with WSDL this might
> sound
> a bit
> strange). The kind of question you asked can easily be done by
> deploying
> your service via a WSDL 2.0 description. Please have a look at
> the
> primer
> it has some easy to understand examples.
>
> First i actually thought that a RESTful service should
> implement some
> sort
> of interface with methods corresponding to GET, POST,
> PUT
> &
> DELETE.
> But I read in some of the other threads that a RESTful
> service
> should
> only
> have one method. Isn't that a problem if you try to
> accomplice
> the
> syntax
> that the following articles describes.
>
> Yes you can use all 4 HTTP methods described above, depending
> on your
> requirement. Its all about using the appropriate method (Not
> that you
> must
> use just one method)
>
>
>
>
> http://www.innoq.com/blog/st/2006/06/30/rest_vs_soap_oh_no_not_again.html
>
>
>
> http://www.xfront.com/REST-Web-Services.html
>
> Where the same url has different functionality depending
> on how
> it is
>
> called (GET, POST).
> GET /order/{id} Get order details
> POST /order/{id} Add item
>
> the current version of Axis2 does not support this (But it can
> be
> included,
> I will file a JIRA on this and try to get it into the 1.3
> release.)
>
> Please let us know if you need more help (Can even assist you
> in
> writing
> down the WSDL 2.0 description)
>
> Thanks,
> Keith.
>
> Regards
> Multi-Support A/S
>
> Torben Riis
>
>
> --------------------------------------------------------------------
> Phone +45 96 600 600, Fax +45 96 600 601
> E-mail: riis@multi-support.com
> http://www.multi-support.com
>
>
>
>
>
> ---------------------------------------------------------------------
>
>
> To unsubscribe, e-mail:
> axis-user-unsubscribe@ws.apache.org
> For additional commands, e-mail:
> axis-user-help@ws.apache.org
>
>
>
>
> --
> Keith Chapman
> WSO2 Inc.
> Oxygen for Web Services Developers.
> http://wso2.org/
>
>
>
>
> ---------------------------------------------------------------------
>
>
> To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
> For additional commands, e-mail: axis-user-help@ws.apache.org
>
>
>
>
> --
> Keith Chapman
> WSO2 Inc.
> Oxygen for Web Services Developers.
> http://wso2.org/
>
>
>
> ---------------------------------------------------------------------
>
> To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
> For additional commands, e-mail: axis-user-help@ws.apache.org
>
>
>
>
> --
> Keith Chapman
> WSO2 Inc.
> Oxygen for Web Services Developers.
> http://wso2.org/
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
> For additional commands, e-mail: axis-user-help@ws.apache.org
>
>
--
Keith Chapman
WSO2 Inc.
Oxygen for Web Services Developers.
http://wso2.org/
Re: Axis2: RESTful implementation with Axis2
Posted by ri...@multi-support.com.
Hi Keith,
I have some problems generating stub/skeletons for your wsdl.
My IDE gives the following validation error for WeatherHTTPBinding.
WSDL: Missing port type for binding {http://example.axis2.apache.org}
WeatherHTTPBinding
What does I miss?
Regards
Multi-Support A/S
Torben Riis
--------------------------------------------------------------------
Phone +45 96 600 600, Fax +45 96 600 601
E-mail: riis@multi-support.com
http://www.multi-support.com
"keith chapman"
<keithgchapman@gm
ail.com> To
axis-user@ws.apache.org
11-07-2007 09:27 cc
Subject
Please respond to Re: Axis2: RESTful implementation
axis-user@ws.apac with Axis2
he.org
here is a sample Weather.wsdl2. Please let me know if you need any
clarifications.
<description xmlns="http://www.w3.org/ns/wsdl"
targetNamespace=" http://example.axis2.apache.org"
xmlns:tns="http://example.axis2.apache.org"
xmlns:wsoap=" http://www.w3.org/ns/wsdl/soap"
xmlns:whttp="http://www.w3.org/ns/wsdl/http"
xmlns:xsd1=" http://example.axis2.apache.org/xsd"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<documentation>
Just a sample service to explain WSDL 2.0 semantics
</documentation>
<types>
<xs:schema elementFormDefault="qualified"
targetNamespace=" http://example.axis2.apache.org/xsd"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsd1=" http://example.axis2.apache.org/xsd">
<xs:element name="weather" type="xsd1:weatherStructType"/>
<xs:complexType name="weatherStructType">
<xs:sequence>
<xs:element name="temparature" type="xs:int"/>
<xs:element name="sky" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:element name="location" type="xsd1:locationStructType"/>
<xs:complexType name="locationStructType">
<xs:sequence>
<xs:element name="country" type="xs:string"/>
<xs:element name="city" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:element name="response" type="xs:string"/>
<xs:element name="weatherFault"
type="xsd1:weatherFaultStructType"/>
<xs:complexType name="weatherFaultStructType">
<xs:sequence>
<xs:element name="Fault" type="xs:string"/>
<xs:element name="country" type="xs:string"/>
<xs:element name="city" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:element name="weatherDetails"
type="xsd1:weatherDetailsStructType"/>
<xs:complexType name="weatherDetailsStructType">
<xs:sequence>
<xs:element name="weather"
type="xsd1:weatherStructType"/>
<xs:element name="location"
type="xsd1:locationStructType"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
</types>
<interface name="Weather">
<documentation>
This is where the abstract descriptions of the operations are
given. Note that WSDL 2.0
has the concept of reusing faults, hence they are described at
the interface level.
</documentation>
<fault name="weatherFault" element="xsd1:weatherFault"></fault>
<operation name="getWeather" pattern="
http://www.w3.org/ns/wsdl/in-out">
<input element="xsd1:location"/>
<output element="xsd1:weather"/>
<outfault ref="tns:weatherFault"/>
</operation>
<operation name="setWeather" pattern="
http://www.w3.org/ns/wsdl/in-out">
<input element="xsd1:weatherDetails"/>
<output element="xsd1:response"/>
<outfault ref="tns:weatherFault"/>
</operation>
</interface>
<binding name="WeatherHTTPBinding" interface="tns:Weather"
type="http://www.w3.org/ns/wsdl/http">
<documentation>
This binding binds the weather interface to RESTish style
invocations.
NOTE : The URL for the operation is constracted by resolving
the httplocation against
the base uri.
e.g. If the country was srilanka and the city was colombo then
the URL will be
http://example.org/WeatherService/WeatherServiceSOAPEndpoint/Weather/srilanka/colombo
</documentation>
<fault ref="tns:weatherFault" whttp:code="402"/>
<operation ref="tns:getWeather" whttp:method="GET"
whttp:location="WeatherServiceHTTPEndpoint/Weather/{country}/{city}"/>
<operation ref="tns:setWeather" whttp:method="PUT"
whttp:location="WeatherServiceHTTPEndpoint/Update/{country}/{city}"/>
<!--Ideally this should be as follows. Will fux it in the trunk-->
<!--<operation ref="tns:setWeather" whttp:method="POST"
whttp:location="WeatherServiceHTTPEndpoint/Weather/{country}/{city}"/>-->
</binding>
<service name="WeatherService" interface="tns:Weather">
<endpoint name="WeatherServiceHTTPEndpoint"
binding="tns:WeatherHTTPBinding"
address="
http://example.org/WeatherService/WeatherServiceHTTPEndpoint/ "/>
</service>
</description>
Thanks,
Keith.
On 7/11/07, riis@multi-support.com <ri...@multi-support.com> wrote:
Hi Keith,
An example would be very nice. ;-)
An example where you format the URL in a RESTish style would be
perfect.
Maybe with both GET & POST if it isn't too much trouble.
Thanks a lot.
Regards
Multi-Support A/S
Torben Riis
--------------------------------------------------------------------
Phone +45 96 600 600, Fax +45 96 600 601
E-mail: riis@multi-support.com
http://www.multi-support.com
"keith chapman"
<keithgchapman@gm
ail.com >
To
axis-user@ws.apache.org
11-07-2007 07:40
cc
Subject
Please respond to Re: Axis2: RESTful
implementation
axis-user@ws.apac with Axis2
he.org
The WSDL 2.0 primer is a good starting place. It takes you through
the
concepts of WSDL 2.0 very nicely (without making things too complex).
WSDL
2.0 is a whole lot clean and easy to understand. If you like I can
write a
sample WSDL 2.0 doc for you if you have an example in mind :).
And yes you can use the http methods GET, POST, PUT & DELETE in the
same
service. Its just that you cant use them on the same operation.
Thanks,
Keith.
On 7/11/07, riis@multi-support.com < riis@multi-support.com> wrote:
Hi Keith,
Thank you for answering.
When I earlier talked about using the http methods GET, POST,
PUT &
DELETE,
I actually meant using them in the same service.
WSDL 2.0 really sounds interesting.
I have a little knowledge about WSDL 1.1/1.2, because I'm
studying
for the
SCDJWS exam, but I doesn't know anything about WSDL 2.0.
I guess a lot has changed since it is possible to describe how
the
URL
should be formatted and whether to use http methods GET, POST,
PUT
or
DELETE.
Do you have or know a place where I can find simple example
WSDL
describing
such a service?
Or would it be best just start reading WSDL 2.0 HTTPBinding.
Regards
Multi-Support A/S
Torben Riis
--------------------------------------------------------------------
Phone +45 96 600 600, Fax +45 96 600 601
E-mail: riis@multi-support.com
http://www.multi-support.com
"keith chapman"
< keithgchapman@gm
ail.com>
To
axis-user@ws.apache.org
11-07-2007 06:45
cc
Subject
Please respond to Re: Axis2: RESTful
implementation
axis-user@ws.apac with Axis2
he.org
See comments inline.
On 7/10/07, riis@multi-support.com <riis@multi-support.com >
wrote:
Hi,
I have some questions regarding implementing a RESTfull
service.
After
reading a lot of previous RESTish threads I got quite
confused.
So I hope someone can help me straightened it out.
If I want to create a RESTful service with Axis2 would it
then
require that
the service is implemented as RPC, or can other message
receivers be
used?
Is it possible to create a RESTful service with Axis2
that can
be
reached
in the following way:
http://www.boeing.com/rest/aircraft/747
instead of
http://www.boeing.com/rest/MyAircraftServices/getAircraft?model=747
Yes this can be done. REST support in Axis2 was achieved via
the
WSDL 2.0
HTTPBinding (If you are not familiar with WSDL this might sound
a bit
strange). The kind of question you asked can easily be done by
deploying
your service via a WSDL 2.0 description. Please have a look at
the
primer
it has some easy to understand examples.
First i actually thought that a RESTful service should
implement some
sort
of interface with methods corresponding to GET, POST, PUT
&
DELETE.
But I read in some of the other threads that a RESTful
service
should
only
have one method. Isn't that a problem if you try to
accomplice
the
syntax
that the following articles describes.
Yes you can use all 4 HTTP methods described above, depending
on your
requirement. Its all about using the appropriate method (Not
that you
must
use just one method)
http://www.innoq.com/blog/st/2006/06/30/rest_vs_soap_oh_no_not_again.html
http://www.xfront.com/REST-Web-Services.html
Where the same url has different functionality depending
on how
it is
called (GET, POST).
GET /order/{id} Get order details
POST /order/{id} Add item
the current version of Axis2 does not support this (But it can
be
included,
I will file a JIRA on this and try to get it into the 1.3
release.)
Please let us know if you need more help (Can even assist you
in
writing
down the WSDL 2.0 description)
Thanks,
Keith.
Regards
Multi-Support A/S
Torben Riis
--------------------------------------------------------------------
Phone +45 96 600 600, Fax +45 96 600 601
E-mail: riis@multi-support.com
http://www.multi-support.com
---------------------------------------------------------------------
To unsubscribe, e-mail:
axis-user-unsubscribe@ws.apache.org
For additional commands, e-mail:
axis-user-help@ws.apache.org
--
Keith Chapman
WSO2 Inc.
Oxygen for Web Services Developers.
http://wso2.org/
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-user-help@ws.apache.org
--
Keith Chapman
WSO2 Inc.
Oxygen for Web Services Developers.
http://wso2.org/
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-user-help@ws.apache.org
--
Keith Chapman
WSO2 Inc.
Oxygen for Web Services Developers.
http://wso2.org/
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-user-help@ws.apache.org
Re: Axis2: RESTful implementation with Axis2
Posted by keith chapman <ke...@gmail.com>.
here is a sample Weather.wsdl2. Please let me know if you need any
clarifications.
<description xmlns="http://www.w3.org/ns/wsdl"
targetNamespace="http://example.axis2.apache.org"
xmlns:tns="http://example.axis2.apache.org"
xmlns:wsoap="http://www.w3.org/ns/wsdl/soap"
xmlns:whttp="http://www.w3.org/ns/wsdl/http"
xmlns:xsd1="http://example.axis2.apache.org/xsd"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<documentation>
Just a sample service to explain WSDL 2.0 semantics
</documentation>
<types>
<xs:schema elementFormDefault="qualified"
targetNamespace="http://example.axis2.apache.org/xsd"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsd1="http://example.axis2.apache.org/xsd">
<xs:element name="weather" type="xsd1:weatherStructType"/>
<xs:complexType name="weatherStructType">
<xs:sequence>
<xs:element name="temparature" type="xs:int"/>
<xs:element name="sky" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:element name="location" type="xsd1:locationStructType"/>
<xs:complexType name="locationStructType">
<xs:sequence>
<xs:element name="country" type="xs:string"/>
<xs:element name="city" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:element name="response" type="xs:string"/>
<xs:element name="weatherFault"
type="xsd1:weatherFaultStructType"/>
<xs:complexType name="weatherFaultStructType">
<xs:sequence>
<xs:element name="Fault" type="xs:string"/>
<xs:element name="country" type="xs:string"/>
<xs:element name="city" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:element name="weatherDetails"
type="xsd1:weatherDetailsStructType"/>
<xs:complexType name="weatherDetailsStructType">
<xs:sequence>
<xs:element name="weather"
type="xsd1:weatherStructType"/>
<xs:element name="location"
type="xsd1:locationStructType"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
</types>
<interface name="Weather">
<documentation>
This is where the abstract descriptions of the operations are
given. Note that WSDL 2.0
has the concept of reusing faults, hence they are described at
the interface level.
</documentation>
<fault name="weatherFault" element="xsd1:weatherFault"></fault>
<operation name="getWeather" pattern="
http://www.w3.org/ns/wsdl/in-out">
<input element="xsd1:location"/>
<output element="xsd1:weather"/>
<outfault ref="tns:weatherFault"/>
</operation>
<operation name="setWeather" pattern="
http://www.w3.org/ns/wsdl/in-out">
<input element="xsd1:weatherDetails"/>
<output element="xsd1:response"/>
<outfault ref="tns:weatherFault"/>
</operation>
</interface>
<binding name="WeatherHTTPBinding" interface="tns:Weather"
type="http://www.w3.org/ns/wsdl/http">
<documentation>
This binding binds the weather interface to RESTish style
invocations.
NOTE : The URL for the operation is constracted by resolving the
httplocation against
the base uri.
e.g. If the country was srilanka and the city was colombo then
the URL will be
http://example.org/WeatherService/WeatherServiceSOAPEndpoint/Weather/srilanka/colombo
</documentation>
<fault ref="tns:weatherFault" whttp:code="402"/>
<operation ref="tns:getWeather" whttp:method="GET"
whttp:location="WeatherServiceHTTPEndpoint/Weather/{country}/{city}"/>
<operation ref="tns:setWeather" whttp:method="PUT"
whttp:location="WeatherServiceHTTPEndpoint/Update/{country}/{city}"/>
<!--Ideally this should be as follows. Will fux it in the trunk-->
<!--<operation ref="tns:setWeather" whttp:method="POST"
whttp:location="WeatherServiceHTTPEndpoint/Weather/{country}/{city}"/>-->
</binding>
<service name="WeatherService" interface="tns:Weather">
<endpoint name="WeatherServiceHTTPEndpoint"
binding="tns:WeatherHTTPBinding"
address="
http://example.org/WeatherService/WeatherServiceHTTPEndpoint/"/>
</service>
</description>
Thanks,
Keith.
On 7/11/07, riis@multi-support.com <ri...@multi-support.com> wrote:
>
>
> Hi Keith,
>
> An example would be very nice. ;-)
> An example where you format the URL in a RESTish style would be perfect.
> Maybe with both GET & POST if it isn't too much trouble.
>
> Thanks a lot.
>
> Regards
> Multi-Support A/S
>
> Torben Riis
> --------------------------------------------------------------------
> Phone +45 96 600 600, Fax +45 96 600 601
> E-mail: riis@multi-support.com
> http://www.multi-support.com
>
>
>
> "keith chapman"
> <keithgchapman@gm
> ail.com> To
> axis-user@ws.apache.org
> 11-07-2007 07:40 cc
>
> Subject
> Please respond to Re: Axis2: RESTful implementation
> axis-user@ws.apac with Axis2
> he.org
>
>
>
>
>
>
>
>
>
> The WSDL 2.0 primer is a good starting place. It takes you through the
> concepts of WSDL 2.0 very nicely (without making things too complex). WSDL
> 2.0 is a whole lot clean and easy to understand. If you like I can write a
> sample WSDL 2.0 doc for you if you have an example in mind :).
>
> And yes you can use the http methods GET, POST, PUT & DELETE in the same
> service. Its just that you cant use them on the same operation.
>
> Thanks,
> Keith.
>
> On 7/11/07, riis@multi-support.com <ri...@multi-support.com> wrote:
>
> Hi Keith,
>
> Thank you for answering.
>
> When I earlier talked about using the http methods GET, POST, PUT &
> DELETE,
> I actually meant using them in the same service.
>
> WSDL 2.0 really sounds interesting.
>
> I have a little knowledge about WSDL 1.1/1.2, because I'm studying
> for the
> SCDJWS exam, but I doesn't know anything about WSDL 2.0.
> I guess a lot has changed since it is possible to describe how the
> URL
> should be formatted and whether to use http methods GET, POST, PUT
> or
> DELETE.
>
> Do you have or know a place where I can find simple example WSDL
> describing
> such a service?
> Or would it be best just start reading WSDL 2.0 HTTPBinding.
>
>
> Regards
> Multi-Support A/S
>
> Torben Riis
> --------------------------------------------------------------------
> Phone +45 96 600 600, Fax +45 96 600 601
> E-mail: riis@multi-support.com
> http://www.multi-support.com
>
>
>
> "keith chapman"
> < keithgchapman@gm
> ail.com>
> To
> axis-user@ws.apache.org
> 11-07-2007 06:45
> cc
>
>
> Subject
> Please respond to Re: Axis2: RESTful
> implementation
> axis-user@ws.apac with Axis2
> he.org
>
>
>
>
>
>
>
>
>
> See comments inline.
>
> On 7/10/07, riis@multi-support.com <riis@multi-support.com > wrote:
>
> Hi,
>
> I have some questions regarding implementing a RESTfull
> service.
> After
> reading a lot of previous RESTish threads I got quite
> confused.
> So I hope someone can help me straightened it out.
>
> If I want to create a RESTful service with Axis2 would it then
> require that
> the service is implemented as RPC, or can other message
> receivers be
> used?
>
>
> Is it possible to create a RESTful service with Axis2 that can
> be
> reached
> in the following way:
> http://www.boeing.com/rest/aircraft/747
> instead of
>
> http://www.boeing.com/rest/MyAircraftServices/getAircraft?model=747
>
> Yes this can be done. REST support in Axis2 was achieved via the
> WSDL 2.0
> HTTPBinding (If you are not familiar with WSDL this might sound a
> bit
> strange). The kind of question you asked can easily be done by
> deploying
> your service via a WSDL 2.0 description. Please have a look at the
> primer
> it has some easy to understand examples.
>
> First i actually thought that a RESTful service should
> implement some
> sort
> of interface with methods corresponding to GET, POST, PUT &
> DELETE.
> But I read in some of the other threads that a RESTful service
> should
> only
> have one method. Isn't that a problem if you try to accomplice
> the
> syntax
> that the following articles describes.
>
> Yes you can use all 4 HTTP methods described above, depending on
> your
> requirement. Its all about using the appropriate method (Not that
> you
> must
> use just one method)
>
>
>
> http://www.innoq.com/blog/st/2006/06/30/rest_vs_soap_oh_no_not_again.html
>
>
> http://www.xfront.com/REST-Web-Services.html
>
> Where the same url has different functionality depending on
> how
> it is
>
> called (GET, POST).
> GET /order/{id} Get order details
> POST /order/{id} Add item
>
> the current version of Axis2 does not support this (But it can be
> included,
> I will file a JIRA on this and try to get it into the 1.3 release.)
>
> Please let us know if you need more help (Can even assist you in
> writing
> down the WSDL 2.0 description)
>
> Thanks,
> Keith.
>
> Regards
> Multi-Support A/S
>
> Torben Riis
>
> --------------------------------------------------------------------
> Phone +45 96 600 600, Fax +45 96 600 601
> E-mail: riis@multi-support.com
> http://www.multi-support.com
>
>
>
>
> ---------------------------------------------------------------------
>
> To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
> For additional commands, e-mail: axis-user-help@ws.apache.org
>
>
>
>
> --
> Keith Chapman
> WSO2 Inc.
> Oxygen for Web Services Developers.
> http://wso2.org/
>
>
>
> ---------------------------------------------------------------------
>
> To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
> For additional commands, e-mail: axis-user-help@ws.apache.org
>
>
>
>
> --
> Keith Chapman
> WSO2 Inc.
> Oxygen for Web Services Developers.
> http://wso2.org/
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
> For additional commands, e-mail: axis-user-help@ws.apache.org
>
>
--
Keith Chapman
WSO2 Inc.
Oxygen for Web Services Developers.
http://wso2.org/
Re: Axis2: RESTful implementation with Axis2
Posted by ri...@multi-support.com.
Hi Keith,
An example would be very nice. ;-)
An example where you format the URL in a RESTish style would be perfect.
Maybe with both GET & POST if it isn't too much trouble.
Thanks a lot.
Regards
Multi-Support A/S
Torben Riis
--------------------------------------------------------------------
Phone +45 96 600 600, Fax +45 96 600 601
E-mail: riis@multi-support.com
http://www.multi-support.com
"keith chapman"
<keithgchapman@gm
ail.com> To
axis-user@ws.apache.org
11-07-2007 07:40 cc
Subject
Please respond to Re: Axis2: RESTful implementation
axis-user@ws.apac with Axis2
he.org
The WSDL 2.0 primer is a good starting place. It takes you through the
concepts of WSDL 2.0 very nicely (without making things too complex). WSDL
2.0 is a whole lot clean and easy to understand. If you like I can write a
sample WSDL 2.0 doc for you if you have an example in mind :).
And yes you can use the http methods GET, POST, PUT & DELETE in the same
service. Its just that you cant use them on the same operation.
Thanks,
Keith.
On 7/11/07, riis@multi-support.com <ri...@multi-support.com> wrote:
Hi Keith,
Thank you for answering.
When I earlier talked about using the http methods GET, POST, PUT &
DELETE,
I actually meant using them in the same service.
WSDL 2.0 really sounds interesting.
I have a little knowledge about WSDL 1.1/1.2, because I'm studying
for the
SCDJWS exam, but I doesn't know anything about WSDL 2.0.
I guess a lot has changed since it is possible to describe how the
URL
should be formatted and whether to use http methods GET, POST, PUT
or
DELETE.
Do you have or know a place where I can find simple example WSDL
describing
such a service?
Or would it be best just start reading WSDL 2.0 HTTPBinding.
Regards
Multi-Support A/S
Torben Riis
--------------------------------------------------------------------
Phone +45 96 600 600, Fax +45 96 600 601
E-mail: riis@multi-support.com
http://www.multi-support.com
"keith chapman"
< keithgchapman@gm
ail.com>
To
axis-user@ws.apache.org
11-07-2007 06:45
cc
Subject
Please respond to Re: Axis2: RESTful
implementation
axis-user@ws.apac with Axis2
he.org
See comments inline.
On 7/10/07, riis@multi-support.com <riis@multi-support.com > wrote:
Hi,
I have some questions regarding implementing a RESTfull
service.
After
reading a lot of previous RESTish threads I got quite confused.
So I hope someone can help me straightened it out.
If I want to create a RESTful service with Axis2 would it then
require that
the service is implemented as RPC, or can other message
receivers be
used?
Is it possible to create a RESTful service with Axis2 that can
be
reached
in the following way:
http://www.boeing.com/rest/aircraft/747
instead of
http://www.boeing.com/rest/MyAircraftServices/getAircraft?model=747
Yes this can be done. REST support in Axis2 was achieved via the
WSDL 2.0
HTTPBinding (If you are not familiar with WSDL this might sound a bit
strange). The kind of question you asked can easily be done by
deploying
your service via a WSDL 2.0 description. Please have a look at the
primer
it has some easy to understand examples.
First i actually thought that a RESTful service should
implement some
sort
of interface with methods corresponding to GET, POST, PUT &
DELETE.
But I read in some of the other threads that a RESTful service
should
only
have one method. Isn't that a problem if you try to accomplice
the
syntax
that the following articles describes.
Yes you can use all 4 HTTP methods described above, depending on your
requirement. Its all about using the appropriate method (Not that you
must
use just one method)
http://www.innoq.com/blog/st/2006/06/30/rest_vs_soap_oh_no_not_again.html
http://www.xfront.com/REST-Web-Services.html
Where the same url has different functionality depending on how
it is
called (GET, POST).
GET /order/{id} Get order details
POST /order/{id} Add item
the current version of Axis2 does not support this (But it can be
included,
I will file a JIRA on this and try to get it into the 1.3 release.)
Please let us know if you need more help (Can even assist you in
writing
down the WSDL 2.0 description)
Thanks,
Keith.
Regards
Multi-Support A/S
Torben Riis
--------------------------------------------------------------------
Phone +45 96 600 600, Fax +45 96 600 601
E-mail: riis@multi-support.com
http://www.multi-support.com
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-user-help@ws.apache.org
--
Keith Chapman
WSO2 Inc.
Oxygen for Web Services Developers.
http://wso2.org/
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-user-help@ws.apache.org
--
Keith Chapman
WSO2 Inc.
Oxygen for Web Services Developers.
http://wso2.org/
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-user-help@ws.apache.org
Re: Axis2: RESTful implementation with Axis2
Posted by keith chapman <ke...@gmail.com>.
The WSDL 2.0 primer <http://www.w3.org/TR/2007/REC-wsdl20-primer-20070626/>
is a good starting place. It takes you through the concepts of WSDL 2.0 very
nicely (without making things too complex). WSDL 2.0 is a whole lot clean
and easy to understand. If you like I can write a sample WSDL 2.0 doc for
you if you have an example in mind :).
And yes you can use the http methods GET, POST, PUT & DELETE in the same
service. Its just that you cant use them on the same operation.
Thanks,
Keith.
On 7/11/07, riis@multi-support.com <ri...@multi-support.com> wrote:
>
>
> Hi Keith,
>
> Thank you for answering.
>
> When I earlier talked about using the http methods GET, POST, PUT &
> DELETE,
> I actually meant using them in the same service.
>
> WSDL 2.0 really sounds interesting.
>
> I have a little knowledge about WSDL 1.1/1.2, because I'm studying for the
> SCDJWS exam, but I doesn't know anything about WSDL 2.0.
> I guess a lot has changed since it is possible to describe how the URL
> should be formatted and whether to use http methods GET, POST, PUT or
> DELETE.
>
> Do you have or know a place where I can find simple example WSDL
> describing
> such a service?
> Or would it be best just start reading WSDL 2.0 HTTPBinding.
>
>
> Regards
> Multi-Support A/S
>
> Torben Riis
> --------------------------------------------------------------------
> Phone +45 96 600 600, Fax +45 96 600 601
> E-mail: riis@multi-support.com
> http://www.multi-support.com
>
>
>
> "keith chapman"
> <keithgchapman@gm
> ail.com> To
> axis-user@ws.apache.org
> 11-07-2007 06:45 cc
>
> Subject
> Please respond to Re: Axis2: RESTful implementation
> axis-user@ws.apac with Axis2
> he.org
>
>
>
>
>
>
>
>
>
> See comments inline.
>
> On 7/10/07, riis@multi-support.com <riis@multi-support.com > wrote:
>
> Hi,
>
> I have some questions regarding implementing a RESTfull service.
> After
> reading a lot of previous RESTish threads I got quite confused.
> So I hope someone can help me straightened it out.
>
> If I want to create a RESTful service with Axis2 would it then
> require that
> the service is implemented as RPC, or can other message receivers be
> used?
>
>
> Is it possible to create a RESTful service with Axis2 that can be
> reached
> in the following way:
> http://www.boeing.com/rest/aircraft/747
> instead of
> http://www.boeing.com/rest/MyAircraftServices/getAircraft?model=747
>
> Yes this can be done. REST support in Axis2 was achieved via the WSDL 2.0
> HTTPBinding (If you are not familiar with WSDL this might sound a bit
> strange). The kind of question you asked can easily be done by deploying
> your service via a WSDL 2.0 description. Please have a look at the primer
> it has some easy to understand examples.
>
> First i actually thought that a RESTful service should implement
> some
> sort
> of interface with methods corresponding to GET, POST, PUT & DELETE.
> But I read in some of the other threads that a RESTful service
> should
> only
> have one method. Isn't that a problem if you try to accomplice the
> syntax
> that the following articles describes.
>
> Yes you can use all 4 HTTP methods described above, depending on your
> requirement. Its all about using the appropriate method (Not that you must
> use just one method)
>
>
> http://www.innoq.com/blog/st/2006/06/30/rest_vs_soap_oh_no_not_again.html
>
> http://www.xfront.com/REST-Web-Services.html
>
> Where the same url has different functionality depending on how it
> is
>
> called (GET, POST).
> GET /order/{id} Get order details
> POST /order/{id} Add item
>
> the current version of Axis2 does not support this (But it can be
> included,
> I will file a JIRA on this and try to get it into the 1.3 release.)
>
> Please let us know if you need more help (Can even assist you in writing
> down the WSDL 2.0 description)
>
> Thanks,
> Keith.
>
> Regards
> Multi-Support A/S
>
> Torben Riis
> --------------------------------------------------------------------
> Phone +45 96 600 600, Fax +45 96 600 601
> E-mail: riis@multi-support.com
> http://www.multi-support.com
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
> For additional commands, e-mail: axis-user-help@ws.apache.org
>
>
>
>
> --
> Keith Chapman
> WSO2 Inc.
> Oxygen for Web Services Developers.
> http://wso2.org/
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
> For additional commands, e-mail: axis-user-help@ws.apache.org
>
>
--
Keith Chapman
WSO2 Inc.
Oxygen for Web Services Developers.
http://wso2.org/
Re: Axis2: RESTful implementation with Axis2
Posted by ri...@multi-support.com.
Hi Keith,
Thank you for answering.
When I earlier talked about using the http methods GET, POST, PUT & DELETE,
I actually meant using them in the same service.
WSDL 2.0 really sounds interesting.
I have a little knowledge about WSDL 1.1/1.2, because I'm studying for the
SCDJWS exam, but I doesn't know anything about WSDL 2.0.
I guess a lot has changed since it is possible to describe how the URL
should be formatted and whether to use http methods GET, POST, PUT or
DELETE.
Do you have or know a place where I can find simple example WSDL describing
such a service?
Or would it be best just start reading WSDL 2.0 HTTPBinding.
Regards
Multi-Support A/S
Torben Riis
--------------------------------------------------------------------
Phone +45 96 600 600, Fax +45 96 600 601
E-mail: riis@multi-support.com
http://www.multi-support.com
"keith chapman"
<keithgchapman@gm
ail.com> To
axis-user@ws.apache.org
11-07-2007 06:45 cc
Subject
Please respond to Re: Axis2: RESTful implementation
axis-user@ws.apac with Axis2
he.org
See comments inline.
On 7/10/07, riis@multi-support.com <riis@multi-support.com > wrote:
Hi,
I have some questions regarding implementing a RESTfull service.
After
reading a lot of previous RESTish threads I got quite confused.
So I hope someone can help me straightened it out.
If I want to create a RESTful service with Axis2 would it then
require that
the service is implemented as RPC, or can other message receivers be
used?
Is it possible to create a RESTful service with Axis2 that can be
reached
in the following way:
http://www.boeing.com/rest/aircraft/747
instead of
http://www.boeing.com/rest/MyAircraftServices/getAircraft?model=747
Yes this can be done. REST support in Axis2 was achieved via the WSDL 2.0
HTTPBinding (If you are not familiar with WSDL this might sound a bit
strange). The kind of question you asked can easily be done by deploying
your service via a WSDL 2.0 description. Please have a look at the primer
it has some easy to understand examples.
First i actually thought that a RESTful service should implement some
sort
of interface with methods corresponding to GET, POST, PUT & DELETE.
But I read in some of the other threads that a RESTful service should
only
have one method. Isn't that a problem if you try to accomplice the
syntax
that the following articles describes.
Yes you can use all 4 HTTP methods described above, depending on your
requirement. Its all about using the appropriate method (Not that you must
use just one method)
http://www.innoq.com/blog/st/2006/06/30/rest_vs_soap_oh_no_not_again.html
http://www.xfront.com/REST-Web-Services.html
Where the same url has different functionality depending on how it is
called (GET, POST).
GET /order/{id} Get order details
POST /order/{id} Add item
the current version of Axis2 does not support this (But it can be included,
I will file a JIRA on this and try to get it into the 1.3 release.)
Please let us know if you need more help (Can even assist you in writing
down the WSDL 2.0 description)
Thanks,
Keith.
Regards
Multi-Support A/S
Torben Riis
--------------------------------------------------------------------
Phone +45 96 600 600, Fax +45 96 600 601
E-mail: riis@multi-support.com
http://www.multi-support.com
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-user-help@ws.apache.org
--
Keith Chapman
WSO2 Inc.
Oxygen for Web Services Developers.
http://wso2.org/
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-user-help@ws.apache.org
Re: Axis2: RESTful implementation with Axis2
Posted by keith chapman <ke...@gmail.com>.
See comments inline.
On 7/10/07, riis@multi-support.com <ri...@multi-support.com> wrote:
>
>
> Hi,
>
> I have some questions regarding implementing a RESTfull service. After
> reading a lot of previous RESTish threads I got quite confused.
> So I hope someone can help me straightened it out.
>
> If I want to create a RESTful service with Axis2 would it then require
> that
> the service is implemented as RPC, or can other message receivers be used?
>
>
> Is it possible to create a RESTful service with Axis2 that can be reached
> in the following way:
> http://www.boeing.com/rest/aircraft/747
> instead of
> http://www.boeing.com/rest/MyAircraftServices/getAircraft?model=747
Yes this can be done. REST support in Axis2 was achieved via the WSDL
2.0<http://www.w3.org/2002/ws/desc/>
HTTPBinding<http://www.w3.org/TR/2007/REC-wsdl20-adjuncts-20070626/#http-binding>(If
you are not familiar with WSDL this might sound a bit strange). The
kind
of question you asked can easily be done by deploying your service via a WSDL
2.0 <http://www.w3.org/2002/ws/desc/> description. Please have a look at the
primer it has some easy to understand examples.
First i actually thought that a RESTful service should implement some sort
> of interface with methods corresponding to GET, POST, PUT & DELETE.
> But I read in some of the other threads that a RESTful service should only
> have one method. Isn't that a problem if you try to accomplice the syntax
> that the following articles describes.
Yes you can use all 4 HTTP methods described above, depending on your
requirement. Its all about using the appropriate method (Not that you must
use just one method)
http://www.innoq.com/blog/st/2006/06/30/rest_vs_soap_oh_no_not_again.html
> http://www.xfront.com/REST-Web-Services.html
>
> Where the same url has different functionality depending on how it is
> called (GET, POST).
> GET /order/{id} Get order details
> POST /order/{id} Add item
the current version of Axis2 does not support this (But it can be included,
I will file a JIRA on this and try to get it into the 1.3 release.)
Please let us know if you need more help (Can even assist you in writing
down the WSDL 2.0 description)
Thanks,
Keith.
Regards
> Multi-Support A/S
>
> Torben Riis
> --------------------------------------------------------------------
> Phone +45 96 600 600, Fax +45 96 600 601
> E-mail: riis@multi-support.com
> http://www.multi-support.com
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
> For additional commands, e-mail: axis-user-help@ws.apache.org
>
>
--
Keith Chapman
WSO2 Inc.
Oxygen for Web Services Developers.
http://wso2.org/