Candy and HTTP Bind Settings


I am using with Openfire

I have a question about the HTTP Bind Settings.

Default Port in Openfire is set to 7070.

The RewriteRule for http-bind in the .htaccess of Candy however points to port 5280 :

RewriteRule http-bind/ http://mydomain.tld:5280/http-bind/ [P]

http://mydomain.tld/candy/example/ a black dialog appears : ‘Connecting…’

When i change the line in the .htaccess to:

RewriteRule http-bind/ http://mydomain.tld:7070/http-bind/ [P]

http://mydomain.tld/candy/example/ an empty lightgrey screen, no error.

Can anyone explain the grey screen, i have no clue what is wrong.

Openfire shows Active Client Sessions.

When i access http://myipaddress:7070/http-bind/ directly:


Problem accessing /http-bind/. Reason:

  • Not Found*

Powered by Jetty://


Help appreciated!


David van der Tuijn


Port 5280 is typically used by punjab, which is a good way of connecting bosh clients to openfire as it avoids openfire’s httpbind stuff.


I found this in the Log Viewer (warn.log) :

*2011.08.21 23:33:09 /http-bind/ *

*java.lang.IllegalStateException: IDLE,initial *

*at org.eclipse.jetty.server.AsyncContinuation.suspend( *

*at org.eclipse.jetty.server.AsyncContinuation.suspend( *

*at org.jivesoftware.openfire.http.HttpConnection.waitForResponse(HttpConnection.ja va:202) *

*at org.jivesoftware.openfire.http.HttpConnection.getResponse( 44) *

*at org.jivesoftware.openfire.http.HttpSession.getResponse( *

*at org.jivesoftware.openfire.http.HttpSession.getResponse( *

*at org.jivesoftware.openfire.http.HttpBindServlet.isContinuation(HttpBindServlet.j ava:181) *

*at org.jivesoftware.openfire.http.HttpBindServlet.doPost( *

*at javax.servlet.http.HttpServlet.service( *

*at javax.servlet.http.HttpServlet.service( *

*at org.eclipse.jetty.servlet.ServletHolder.handle( *

*at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.ja va:1216) *

*at org.eclipse.jetty.continuation.ContinuationFilter.doFilter(ContinuationFilter.j ava:110) *

*at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.ja va:1187) *

*at org.eclipse.jetty.servlet.ServletHandler.doHandle( *

*at org.eclipse.jetty.server.handler.ContextHandler.doHandle( 1) *

*at org.eclipse.jetty.servlet.ServletHandler.doScope( *

*at org.eclipse.jetty.server.handler.ContextHandler.doScope( ) *

*at org.eclipse.jetty.server.handler.ScopedHandler.handle( *

*at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandler *

*at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.jav a:126) *

*at org.eclipse.jetty.server.handler.HandlerWrapper.handle( *

*at org.eclipse.jetty.server.Server.handleAsync( *

*at org.eclipse.jetty.server.HttpConnection.handleRequest( *

*at org.eclipse.jetty.server.HttpConnection.handle( *

*at 62) *

*at org.eclipse.jetty.util.thread.QueuedThreadPool$ *

*at Source) *

2011.08.21 23:33:09 Client provided invalid session: eab7ce6e. [myipaddress]

What does it mean ?

Hi David

The grey screen is because you don’t autojoin any rooms. See for more information.

We get the same errors using Candy (and other BOSH-based clients) with Openfire. I recommend you to use as connection manager since the HTTP-Bind module of Openfire is buggy. This error usually occurs when the connection between client and server is slightly unstable (delay, slowness, packet loss, …).

The setup of punjab is painless and the software is very stable and efficient.



In index.html autojoin was set to true, and it didnt work:

autojoin: true

I changed it to **[‘test@conference.myhostname’] **and success!

autojoin: [‘test@conference.myhostname’]

Thanks Patrick