Thread overview | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
|
May 28, 2007 HessianD | ||||
---|---|---|---|---|
| ||||
HessianD (http://www.dsource.org/projects/hessiand/) A D implementation of the Hessian (http://caucho.com/hessian) binary web service protocol. Supports both the client and the server model. Client sample: import hessian.HttpProxy : HttpProxy; import tango.io.Stdout; char[] echo(char[] param); void main () { // create a Http proxy on the given Http endpoint so we can post our Hessian stream scope service = new HttpProxy("http://localhost:5667/hessiantest"); // create a proxy method that will do the Hessian serialization and deserialization auto _echo = &service.proxy!(echo); // we'll perform the remote call and display the result Stdout ("Remote result: ") ( _echo("Hello World!") ).newline.flush; } Server sample: import hessian.HttpServer: Server; class impl { char[] echo (char[] param) { return param; } } void main() { // create a Http server on the given port auto server = new Server(5667); // attach a context with the Http endpoint and the class implementing the method auto context = server.addContext!(impl)("/test/hessiantest"); // bind the method to the context created context.bind!(impl.echo); // and finally start listenning to Http Post requests server.start; } |
June 05, 2007 Re: HessianD | ||||
---|---|---|---|---|
| ||||
Posted in reply to Radu | I cannot compile it. You're using tango.util.time.Utc, and in my tango trunk that file doesn't exist. "Radu" <radu.racariu@void.space> wrote in message news:f3f7n3$1r10$1@digitalmars.com... > HessianD (http://www.dsource.org/projects/hessiand/) > A D implementation of the Hessian (http://caucho.com/hessian) binary web > service protocol. > Supports both the client and the server model. > > Client sample: > > import hessian.HttpProxy : > HttpProxy; > import tango.io.Stdout; > > char[] echo(char[] param); > > void main () > { > > // create a Http proxy on the given Http endpoint so we can post > our Hessian stream > scope service = new HttpProxy("http://localhost:5667/hessiantest"); > > // create a proxy method that will do the Hessian serialization > and deserialization > auto _echo = &service.proxy!(echo); > > // we'll perform the remote call and display the result > Stdout ("Remote result: ") ( _echo("Hello World!") ).newline.flush; > > } > > Server sample: > > import hessian.HttpServer: > Server; > > class impl > { > char[] echo (char[] param) > { > return param; > } } > > void main() > { > // create a Http server on the given port > auto server = new Server(5667); > // attach a context with the Http endpoint and the class > implementing the method > auto context = server.addContext!(impl)("/test/hessiantest"); > // bind the method to the context created > context.bind!(impl.echo); > // and finally start listenning to Http Post requests > server.start; > } > > > |
June 05, 2007 Re: HessianD | ||||
---|---|---|---|---|
| ||||
Posted in reply to Simen Haugen Attachments:
| I've updated the project to use:
tango.util.time.WallClock,
tango.util.time.Clock,
it works with tango 0.98 RC2.
Please download hessiand again.
Simen Haugen wrote:
> I cannot compile it. You're using tango.util.time.Utc, and in my tango trunk that file doesn't exist.
>
> "Radu" <radu.racariu@void.space> wrote in message
> news:f3f7n3$1r10$1@digitalmars.com...
>
>> HessianD (http://www.dsource.org/projects/hessiand/)
>> A D implementation of the Hessian (http://caucho.com/hessian) binary web
>> service protocol.
>> Supports both the client and the server model.
>>
>> Client sample:
>>
>> import hessian.HttpProxy :
>> HttpProxy;
>> import tango.io.Stdout;
>>
>> char[] echo(char[] param);
>>
>> void main ()
>> {
>>
>> // create a Http proxy on the given Http endpoint so we can post
>> our Hessian stream
>> scope service = new HttpProxy("http://localhost:5667/hessiantest");
>>
>> // create a proxy method that will do the Hessian serialization
>> and deserialization
>> auto _echo = &service.proxy!(echo);
>>
>> // we'll perform the remote call and display the result
>> Stdout ("Remote result: ") ( _echo("Hello World!") ).newline.flush;
>>
>> }
>>
>> Server sample:
>>
>> import hessian.HttpServer:
>> Server;
>>
>> class impl
>> {
>> char[] echo (char[] param)
>> {
>> return param;
>> } }
>>
>> void main()
>> {
>> // create a Http server on the given port
>> auto server = new Server(5667);
>> // attach a context with the Http endpoint and the class
>> implementing the method
>> auto context = server.addContext!(impl)("/test/hessiantest");
>> // bind the method to the context created
>> context.bind!(impl.echo);
>> // and finally start listenning to Http Post requests
>> server.start;
>> }
>>
>>
>>
>>
>
>
>
|
June 05, 2007 Re: HessianD | ||||
---|---|---|---|---|
| ||||
Posted in reply to Radu Attachments:
| Compiling works fine now, but I cannot get your examples to work. When trying to run the client, I get the following error: hessian.Input.HessianError: invalid reply, expected 'r' instead of< "Radu" <radu.racariu@void.space> wrote in message news:f43gc1$2qa$1@digitalmars.com... I've updated the project to use: tango.util.time.WallClock, tango.util.time.Clock, it works with tango 0.98 RC2. Please download hessiand again. Simen Haugen wrote: I cannot compile it. You're using tango.util.time.Utc, and in my tango trunk that file doesn't exist. "Radu" <radu.racariu@void.space> wrote in message news:f3f7n3$1r10$1@digitalmars.com... HessianD (http://www.dsource.org/projects/hessiand/) A D implementation of the Hessian (http://caucho.com/hessian) binary web service protocol. Supports both the client and the server model. Client sample: import hessian.HttpProxy : HttpProxy; import tango.io.Stdout; char[] echo(char[] param); void main () { // create a Http proxy on the given Http endpoint so we can post our Hessian stream scope service = new HttpProxy("http://localhost:5667/hessiantest"); // create a proxy method that will do the Hessian serialization and deserialization auto _echo = &service.proxy!(echo); // we'll perform the remote call and display the result Stdout ("Remote result: ") ( _echo("Hello World!") ).newline.flush; } Server sample: import hessian.HttpServer: Server; class impl { char[] echo (char[] param) { return param; } } void main() { // create a Http server on the given port auto server = new Server(5667); // attach a context with the Http endpoint and the class implementing the method auto context = server.addContext!(impl)("/test/hessiantest"); // bind the method to the context created context.bind!(impl.echo); // and finally start listenning to Http Post requests server.start; } |
June 05, 2007 Re: HessianD | ||||
---|---|---|---|---|
| ||||
Posted in reply to Simen Haugen Attachments:
| Sorry, my bad. I just implemented the interface in both the client and server code as a quick hack, and that didnt work. If I use the same interface file it works.. Nice work! Looking forward to trying it. "Simen Haugen" <simen@norstat.no> wrote in message news:f43i4t$6ej$1@digitalmars.com... Compiling works fine now, but I cannot get your examples to work. When trying to run the client, I get the following error: hessian.Input.HessianError: invalid reply, expected 'r' instead of< "Radu" <radu.racariu@void.space> wrote in message news:f43gc1$2qa$1@digitalmars.com... I've updated the project to use: tango.util.time.WallClock, tango.util.time.Clock, it works with tango 0.98 RC2. Please download hessiand again. Simen Haugen wrote: I cannot compile it. You're using tango.util.time.Utc, and in my tango trunk that file doesn't exist. "Radu" <radu.racariu@void.space> wrote in message news:f3f7n3$1r10$1@digitalmars.com... HessianD (http://www.dsource.org/projects/hessiand/) A D implementation of the Hessian (http://caucho.com/hessian) binary web service protocol. Supports both the client and the server model. Client sample: import hessian.HttpProxy : HttpProxy; import tango.io.Stdout; char[] echo(char[] param); void main () { // create a Http proxy on the given Http endpoint so we can post our Hessian stream scope service = new HttpProxy("http://localhost:5667/hessiantest"); // create a proxy method that will do the Hessian serialization and deserialization auto _echo = &service.proxy!(echo); // we'll perform the remote call and display the result Stdout ("Remote result: ") ( _echo("Hello World!") ).newline.flush; } Server sample: import hessian.HttpServer: Server; class impl { char[] echo (char[] param) { return param; } } void main() { // create a Http server on the given port auto server = new Server(5667); // attach a context with the Http endpoint and the class implementing the method auto context = server.addContext!(impl)("/test/hessiantest"); // bind the method to the context created context.bind!(impl.echo); // and finally start listenning to Http Post requests server.start; } |
June 05, 2007 Re: HessianD | ||||
---|---|---|---|---|
| ||||
Posted in reply to Simen Haugen Attachments:
| can you compile the client example with -version=Debug
then paste the "response:" line.
As a note I'm compiling with dmd 1.014, rebuild 0.65 on Windows XP
Simen Haugen wrote:
> Compiling works fine now, but I cannot get your examples to work. When
> trying to run the client, I get the following error:
>
> hessian.Input.HessianError: invalid reply, expected 'r' instead of<
>
> "Radu" <radu.racariu@void.space <mailto:radu.racariu@void.space>>
> wrote in message news:f43gc1$2qa$1@digitalmars.com...
> I've updated the project to use:
> tango.util.time.WallClock,
> tango.util.time.Clock,
>
> it works with tango 0.98 RC2.
>
> Please download hessiand again.
>
>
> Simen Haugen wrote:
>> I cannot compile it. You're using tango.util.time.Utc, and in my tango trunk
>> that file doesn't exist.
>>
>> "Radu" <radu.racariu@void.space> wrote in message
>> news:f3f7n3$1r10$1@digitalmars.com...
>>
>>> HessianD (http://www.dsource.org/projects/hessiand/)
>>> A D implementation of the Hessian (http://caucho.com/hessian) binary web
>>> service protocol.
>>> Supports both the client and the server model.
>>>
>>> Client sample:
>>>
>>> import hessian.HttpProxy :
>>> HttpProxy;
>>> import tango.io.Stdout;
>>>
>>> char[] echo(char[] param);
>>>
>>> void main ()
>>> {
>>>
>>> // create a Http proxy on the given Http endpoint so we can post
>>> our Hessian stream
>>> scope service = new HttpProxy("http://localhost:5667/hessiantest");
>>>
>>> // create a proxy method that will do the Hessian serialization
>>> and deserialization
>>> auto _echo = &service.proxy!(echo);
>>>
>>> // we'll perform the remote call and display the result
>>> Stdout ("Remote result: ") ( _echo("Hello World!") ).newline.flush;
>>>
>>> }
>>>
>>> Server sample:
>>>
>>> import hessian.HttpServer:
>>> Server;
>>>
>>> class impl
>>> {
>>> char[] echo (char[] param)
>>> {
>>> return param;
>>> } }
>>>
>>> void main()
>>> {
>>> // create a Http server on the given port
>>> auto server = new Server(5667);
>>> // attach a context with the Http endpoint and the class
>>> implementing the method
>>> auto context = server.addContext!(impl)("/test/hessiantest");
>>> // bind the method to the context created
>>> context.bind!(impl.echo);
>>> // and finally start listenning to Http Post requests
>>> server.start;
>>> }
>>>
>>>
>>>
>>>
>>
>>
>>
>
|
June 05, 2007 Re: HessianD | ||||
---|---|---|---|---|
| ||||
Posted in reply to Simen Haugen Attachments:
| great!
Simen Haugen wrote:
> Sorry, my bad. I just implemented the interface in both the client and server code as a quick hack, and that didnt work. If I use the same interface file it works.. Nice work! Looking forward to trying it.
>
> "Simen Haugen" <simen@norstat.no <mailto:simen@norstat.no>> wrote
> in message news:f43i4t$6ej$1@digitalmars.com...
> Compiling works fine now, but I cannot get your examples to work.
> When trying to run the client, I get the following error:
>
> hessian.Input.HessianError: invalid reply, expected 'r' instead of<
>
> "Radu" <radu.racariu@void.space
> <mailto:radu.racariu@void.space>> wrote in message
> news:f43gc1$2qa$1@digitalmars.com...
> I've updated the project to use:
> tango.util.time.WallClock,
> tango.util.time.Clock,
>
> it works with tango 0.98 RC2.
>
> Please download hessiand again.
>
>
> Simen Haugen wrote:
>> I cannot compile it. You're using tango.util.time.Utc, and in my tango trunk
>> that file doesn't exist.
>>
>> "Radu" <radu.racariu@void.space> wrote in message
>> news:f3f7n3$1r10$1@digitalmars.com...
>>
>>> HessianD (http://www.dsource.org/projects/hessiand/)
>>> A D implementation of the Hessian (http://caucho.com/hessian) binary web
>>> service protocol.
>>> Supports both the client and the server model.
>>>
>>> Client sample:
>>>
>>> import hessian.HttpProxy :
>>> HttpProxy;
>>> import tango.io.Stdout;
>>>
>>> char[] echo(char[] param);
>>>
>>> void main ()
>>> {
>>>
>>> // create a Http proxy on the given Http endpoint so we can post
>>> our Hessian stream
>>> scope service = new HttpProxy("http://localhost:5667/hessiantest");
>>>
>>> // create a proxy method that will do the Hessian serialization
>>> and deserialization
>>> auto _echo = &service.proxy!(echo);
>>>
>>> // we'll perform the remote call and display the result
>>> Stdout ("Remote result: ") ( _echo("Hello World!") ).newline.flush;
>>>
>>> }
>>>
>>> Server sample:
>>>
>>> import hessian.HttpServer:
>>> Server;
>>>
>>> class impl
>>> {
>>> char[] echo (char[] param)
>>> {
>>> return param;
>>> } }
>>>
>>> void main()
>>> {
>>> // create a Http server on the given port
>>> auto server = new Server(5667);
>>> // attach a context with the Http endpoint and the class
>>> implementing the method
>>> auto context = server.addContext!(impl)("/test/hessiantest");
>>> // bind the method to the context created
>>> context.bind!(impl.echo);
>>> // and finally start listenning to Http Post requests
>>> server.start;
>>> }
>>>
>>>
>>>
>>>
>>
>>
>>
>
|
June 05, 2007 Re: HessianD | ||||
---|---|---|---|---|
| ||||
Posted in reply to Radu Attachments:
| I just tried to reproduce it, but it worked now... I must have done something else, but I don't know what. "Radu" <radu.racariu@void.space> wrote in message news:f43k2n$9d6$1@digitalmars.com... can you compile the client example with -version=Debug then paste the "response:" line. As a note I'm compiling with dmd 1.014, rebuild 0.65 on Windows XP Simen Haugen wrote: Compiling works fine now, but I cannot get your examples to work. When trying to run the client, I get the following error: hessian.Input.HessianError: invalid reply, expected 'r' instead of< "Radu" <radu.racariu@void.space> wrote in message news:f43gc1$2qa$1@digitalmars.com... I've updated the project to use: tango.util.time.WallClock, tango.util.time.Clock, it works with tango 0.98 RC2. Please download hessiand again. Simen Haugen wrote: I cannot compile it. You're using tango.util.time.Utc, and in my tango trunk that file doesn't exist. "Radu" <radu.racariu@void.space> wrote in message news:f3f7n3$1r10$1@digitalmars.com... HessianD (http://www.dsource.org/projects/hessiand/) A D implementation of the Hessian (http://caucho.com/hessian) binary web service protocol. Supports both the client and the server model. Client sample: import hessian.HttpProxy : HttpProxy; import tango.io.Stdout; char[] echo(char[] param); void main () { // create a Http proxy on the given Http endpoint so we can post our Hessian stream scope service = new HttpProxy("http://localhost:5667/hessiantest"); // create a proxy method that will do the Hessian serialization and deserialization auto _echo = &service.proxy!(echo); // we'll perform the remote call and display the result Stdout ("Remote result: ") ( _echo("Hello World!") ).newline.flush; } Server sample: import hessian.HttpServer: Server; class impl { char[] echo (char[] param) { return param; } } void main() { // create a Http server on the given port auto server = new Server(5667); // attach a context with the Http endpoint and the class implementing the method auto context = server.addContext!(impl)("/test/hessiantest"); // bind the method to the context created context.bind!(impl.echo); // and finally start listenning to Http Post requests server.start; } |
Copyright © 1999-2021 by the D Language Foundation