[rabbitmq-discuss] rabbitmq-mochiweb

Benjamin Polidore polidore at gmail.com
Fri Apr 23 05:17:48 BST 2010


Here's what I've got.  I think it is configured properly from a rabbitmq
point of view.  The difference between this and make test (which works) is
that i'm hosting the html and js on apache, and i'm using an absolute URL
for the rabbitmq json-rpc service.  I may have entered the wrong values in
the various URI variables in the javascript-- not really sure.

~ > /usr/local/sbin/rabbitmqctl status
Status of node rabbit at H5Pro ...
[{running_applications,
     [{rabbit_jsonrpc_channel,"RabbitMQ JSON-RPC Channels","0.01"},
      {rabbit,"RabbitMQ","1.7.2"},
      {os_mon,"CPO  CXC 138 46","2.2.5"},
      {sasl,"SASL  CXC 138 11","2.1.9"},
      {rabbit_jsonrpc,"Rabbit JSON-RPC","0.01"},
      {rfc4627_jsonrpc,"JSON RPC Service","0.01"},
      {rabbit_mochiweb,"RabbitMQ Mochiweb Embedding","0.01"},
      {mochiweb,"MochiMedia Web Server","0.01"},
      {mnesia,"MNESIA  CXC 138 12","4.4.13"},
      {stdlib,"ERTS  CXC 138 10","1.16.5"},
      {kernel,"ERTS  CXC 138 10","2.13.5"}]},
 {nodes,[rabbit at H5Pro]},
 {running_nodes,[rabbit at H5Pro]}]
...done.

thanks again,
bp

On Thu, Apr 22, 2010 at 11:55 PM, Tony Garnock-Jones <tonyg at lshift.net>wrote:

> Not *quite* what is required, but a good start, is to run "rabbitmqctl
> status".
> For instance, on my dev instance of RabbitMQ, I get:
>
> ~/dev/rabbitmq-umbrella/rabbitmq-server$ ./scripts/rabbitmqctl status
> Status of node rabbit at walk ...
> [{running_applications,
>     [{rabbit_lvc_plugin,"RabbitMQ last-value cache exchange
> plugin","0.01"},
>      {rabbit_script_exchange,"RabbitMQ Script Exchange Plugin","0.01"},
>       {rfc4627_jsonrpc,"JSON RPC Service","0.01"},
>       {rabbitmq_smtp_server,"RabbitMQ SMTP Server","0.0"},
>      {rabbithub,"rabbithub","0.0.1"},
>      {crypto,"CRYPTO version 1","1.6.4"},
>       {mochiweb,"MochiMedia Web Server","0.01"},
>       {rabbit_stomp,"Embedded Rabbit Stomp Adapter","0.01"},
>      {rabbit,"RabbitMQ","%%VSN%%"},
>       {rabbit_mochiweb,"RabbitMQ Mochiweb Embedding","0.01"},
>       {mnesia,"MNESIA  CXC 138 12","4.4.13"},
>       {os_mon,"CPO  CXC 138 46","2.2.5"},
>      {sasl,"SASL  CXC 138 11","2.1.9"},
>       {erlang_smtp,"Erlang POP3 and SMTP server library code","0.0"},
>       {stdlib,"ERTS  CXC 138 10","1.16.5"},
>      {kernel,"ERTS  CXC 138 10","2.13.5"}]},
>  {nodes,[rabbit at walk]},
>  {running_nodes,[rabbit at walk]}]
> ...done.
>
>
> You'll see the jsonrpc-channel app in the list, if it's installed and
> initialised correctly.
>
> Cheers,
>  Tony
>
>
> Benjamin Polidore wrote:
> > hey, i can't seem to get past this. i'm probably doing something silly,
> > but i keep getting:
> >
> >
> {"version":"1.1","id":null,"error":{"name":"JSONRPCError","code":404,"message":"Procedure
> not found","error":["http://h5pro.local:55672/rpc/rabbitmq",""]}}
> >
> > when i run the test.js from my mac's apache server.  is there a dead
> simple way to test that jsonrpc-channel is working when it's running as a
> plugin?
> >
> >
> > On Sun, Apr 18, 2010 at 2:31 PM, Benjamin Polidore <polidore at gmail.com
> > <mailto:polidore at gmail.com>> wrote:
> >
> >     Thanks, Paul.  I decided not to mess with the source code, and I'm
> >     just using OS X's built in apache for my static files.
> >
> >     Now I'm getting a different problem. I modified the test program to
> >     work in this new context by changing the paths for loading the
> >     javascripts and changing the urls in rabbitmq.js:
> >
> >        factoryServiceUrl: *"http://h5pro.local:55672/rpc/rabbitmq",*
> >       rpcServiceUrlBase*: "http://h5pro.local:55672/rpc/",*
> >
> >     and in test.js:
> >
> >         var channelFactory = new
> >     JsonRpc.Service("*http://h5pro.local:55672/rpc/rabbitmq", *
> >
> >     But it doesn't work.  When I do an ngrep on the traffic going
> >     between my js and mochiweb, I get:
> >
> >     T 10.0.1.3:60988 <http://10.0.1.3:60988> -> 10.0.1.3:55672
> >     <http://10.0.1.3:55672> [AP]
> >       OPTIONS /rpc/rabbitmq HTTP/1.1..Host:
> >     h5pro.local:55672..Connection: keep-alive..User-Agent: Mozilla/5.0
> >     (Macintosh; U; Intel Mac OS X 10_6_3; e
> >       n-US) AppleWebKit/533.4 (KHTML, like Gecko) Chrome/5.0.375.9
> >     Safari/533.4..Referer:
> >     http://h5pro.local/~bp/rabbitTest/www-examples/test/..Access
> >       -Control-Request-Method: POST..Origin:
> >     http://h5pro.local..Access-Control-Request-Headers:
> >     X-Requested-With, Content-Type, Accept..Accept: */*..
> >       Accept-Encoding: gzip,deflate,sdch..Accept-Language:
> >     en-US,en;q=0.8..Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3....
> >
> >     ##
> >     T 10.0.1.3:55672 <http://10.0.1.3:55672> -> 10.0.1.3:60988
> >     <http://10.0.1.3:60988> [AP]
> >       HTTP/1.1 200 OK..Server: MochiWeb/1.0 (Any of you quaids got a
> >     smint?)..Date: Sun, 18 Apr 2010 18:27:48 GMT..Content-type:
> >     text/plain..Content-L
> >       ength: 155....
> >
> >
> >     ##
> >     T 10.0.1.3:55672 <http://10.0.1.3:55672> -> 10.0.1.3:60988
> >     <http://10.0.1.3:60988> [AP]
> >
> {*"version":"1.1","id":null,"error":{"name":"JSONRPCError","code":404,"message":"Procedure
> >     not found","error":["http://h5pro.local:55672/rpc/rabb  itmq",""]}}
>    *
> >     *
> >     *
> >     *Thoughts?       *
> >     *
> >     Thanks,
> >     bp        *
> >
> >     On Sat, Apr 17, 2010 at 6:46 PM, Paul Jones <pauljones23 at gmail.com
> >     <mailto:pauljones23 at gmail.com>> wrote:
> >
> >         Hi Benjamin,
> >
> >         In the production mode, mochiweb doesn't really have a docroot
> >         setup. /rabbitmq_lib will serve the files in priv/www, but that
> >         is as far as it goes.
> >
> >         However... if you want to serve some other files then you could
> >         always use code similar to what the test mode does to make it
> >         happen. For example, if you were to add:
> >
> >         Handler = rabbit_mochiweb:static_context_handler("", ?MODULE,
> >         "priv/mydocroot"),
> >         ok = rabbit_mochiweb:register_global_handler(Handler),
> >
> >         after the line:
> >         rabbit_mochiweb:register_static_context(ContextRoot, ?MODULE,
> >         "priv/www")
> >
> >         in src/rabbit_jsonrpc_channel_app.erl, then once you've
> >         installed the plugin into Rabbit, any file put into
> >         priv/plugins/rabbitmq-jsonrpc-channel/priv/mydocroot should be
> >         served from the root context of mochiweb.
> >
> >         BTW, I've just noticed a bug in the packaging of the
> >         jsonrpc-channel plugin such that if you do run that plugin by
> >         installing it via a .ez, you'll need to copy the priv/www
> >         directory into priv/plugins/rabbitmq-jsonrpc-channel/priv/www
> >         (otherwise libraries such as rabbitmq.js won't be available).
> >
> >         Thanks,
> >         Paul.
> >
> >
> >         On Sat, Apr 17, 2010 at 11:29 PM, Benjamin Polidore
> >         <polidore at gmail.com <mailto:polidore at gmail.com>> wrote:
> >
> >             Hey, paul, I installed all the dependencies to
> >             rabbitmq-jsonrpc-channel (see below).
> >
> >             I see that you add a little context in test mode.
> >              Basically, I was hoping to use the plugin to host my HTML
> >             and javascript in dev mode so I don't have to run another
> >             webserver on my laptop.  I prefer to run rabbitmq in
> >             "production" mode on my laptop, and I was curious what
> >             mochiweb thinks the docroot is in this mode.
> >
> >             [{running_applications,
> >                  [{rabbit_jsonrpc_channel,"RabbitMQ JSON-RPC
> >             Channels","0.01"},
> >                   {rabbit,"RabbitMQ","1.7.2"},
> >                   {os_mon,"CPO  CXC 138 46","2.2.5"},
> >                   {sasl,"SASL  CXC 138 11","2.1.9"},
> >                   {rabbit_jsonrpc,"Rabbit JSON-RPC","0.01"},
> >                   {rfc4627_jsonrpc,"JSON RPC Service","0.01"},
> >                   {rabbit_mochiweb,"RabbitMQ Mochiweb Embedding","0.01"},
> >                   {mochiweb,"MochiMedia Web Server","0.01"},
> >                   {mnesia,"MNESIA  CXC 138 12","4.4.13"},
> >                   {stdlib,"ERTS  CXC 138 10","1.16.5"},
> >                   {kernel,"ERTS  CXC 138 10","2.13.5"}]},
> >              {nodes,[rabbit at H5Pro]},
> >              {running_nodes,[rabbit at H5Pro]}]
> >             ...done.
> >
> >
> >             On Sat, Apr 17, 2010 at 4:11 PM, Paul Jones
> >             <pauljones23 at gmail.com <mailto:pauljones23 at gmail.com>>
> wrote:
> >
> >                 Hi Benjamin,
> >
> >                 Which plugins have you installed into RabbitMQ? The
> >                 mochiweb plugin alone simply embeds a webserver - you'll
> >                 need to install rabbitmq-jsonrpc and
> >                 rabbitmq-jsonrpc-channel to get the JSON services.
> >
> >                 If you have done this, then you might be hitting the
> >                 fact that when running under test, an additional context
> >                 is installed under the root that provides all the
> >                 various test examples. We don't activate this in the
> >                 "production" mode, since we don't expect you'll want
> >                 them in a real deployment. The scripts for doing
> >                 JSON-RPC are still there though - under /rabbitmq_lib
> >                 (the scripts that are made available via this can be
> >                 found on the filesystem in priv/www).
> >
> >                 I hope this answers your question.
> >
> >                 Cheers,
> >                 Paul
> >
> >                 On Sat, Apr 17, 2010 at 8:28 PM, Benjamin Polidore
> >                 <polidore at gmail.com <mailto:polidore at gmail.com>> wrote:
> >
> >                     hi, i'm trying to use the json-channel plugin, and
> >                     it runs ok when i do make test, but it doesn't seem
> >                     to work when i try to start up my broker.  the port
> >                     is open, but everything returns 404.  what is
> >                     mochiweb using as a docroot when I run it outside
> >                     make test?  sorry if this is obvious, but i've been
> >                     struggling with it for a couple hours.
> >
> >                     thanks,
> >                     bp
> >
> >                     _______________________________________________
> >                     rabbitmq-discuss mailing list
> >                     rabbitmq-discuss at lists.rabbitmq.com
> >                     <mailto:rabbitmq-discuss at lists.rabbitmq.com>
> >
> http://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss
> >
> >
> >
> >
> >
> >
> >
> > ------------------------------------------------------------------------
> >
> > _______________________________________________
> > rabbitmq-discuss mailing list
> > rabbitmq-discuss at lists.rabbitmq.com
> > http://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/attachments/20100423/a4d5cacc/attachment-0001.htm 


More information about the rabbitmq-discuss mailing list