I'm trying to get Sparkweb working with Openfire 3.8.0.
I'm running on CentOS, usign apache for Sparkweb.html file, but using Openfire's built-in web server for everything else.
I have SparkWeb working if I use "socket" connections on port 5222.
However, my goal is to get SparkWeb working using "https" connections.
When I try to use "http" or "https" bindings in SparkWeb, it just hangs after entering login credentials.
Debugging "https" is painful, so I stepped back to "http" to see if it's a general http-bind issue. It appears it is. The same thing happens (hangs after entering credentials) when I use http.
I have done a packet capture (using wireshark) when attempting to login with Sparkweb, and I encounter a "Server error".
Below is the relevant piece of SparkWeb.html (the rest of the file is unaltered from the SparkWeb download package):
<script type="text/javascript">
function jive_sparkweb_getConfig()
{
return {
server: "{servername-omitted}",
connectionType: "http",
port: "7070",
bindPath: "/http-bind",
autoLogin: "false",
policyFileURL: "xmlsocket://{servername-omitted}:5229"
};
}
</script>
Here is the packet capture (capturing only port 7070) (red is sent from client to server, blue is sent from server to client):
POST /http-bind/ HTTP/1.0
Accept: */*
Accept-Language: en-US
Referer: http://{servername-omitted}/sparkweb/SparkWeb.swf
x-flash-version: 11,6,602,171
Content-Type: text/xml
Content-Length: 193
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; MS-RTC LM 8; MS-RTC EA 2; .NET4.0C; .NET4.0E)
Host: {servername-omitted}:7070
Connection: Keep-Alive
Pragma: no-cache
<body xmlns:xmpp="urn:xmpp:xbosh" xmlns="http://jabber.org/protocol/httpbind" rid="718238" hold="1" secure="false" to="{servername-omitted}" xmpp:version="1.0" xml:lang="en" wait="20" ver="1.6" />
HTTP/1.1 200 OK
Content-Type: text/xml;charset=UTF-8
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: PROPFIND, PROPPATCH, COPY, MOVE, DELETE, MKCOL, LOCK, UNLOCK, PUT, GETLIB, VERSION-CONTROL, CHECKIN, CHECKOUT, UNCHECKOUT, REPORT, UPDATE, CANCELUPLOAD, HEAD, OPTIONS, GET, POST
Access-Control-Allow-Headers: Overwrite, Destination, Content-Type, Depth, User-Agent, X-File-Size, X-Requested-With, If-Modified-Since, X-File-Name, Cache-Control
Access-Control-Max-Age: 86400
Content-Length: 573
Connection: keep-alive
Server: Jetty(7.x.y-SNAPSHOT)
<body xmlns="http://jabber.org/protocol/httpbind" xmlns:stream="http://etherx.jabber.org/streams" authid="5d02aacf" sid="5d02aacf" secure="true" requests="2" inactivity="30" polling="5" wait="20" hold="1" ack="718238" maxpause="300" ver="1.6"><stream:features><mechanisms xmlns="urn:ietf:params:xml:ns:xmpp-sasl"><mechanism>PLAIN</mechanism></mechanis ms><compression xmlns="zlibhttp://jabber.org/features/compress"><method>zlib</method></compression><bin d xmlns="urn:ietf:params:xml:ns:xmpp-bind"/><session xmlns="urn:ietf:params:xml:ns:xmpp-session"/></stream:features></body>
POST /http-bind/ HTTP/1.0
Accept: */*
Accept-Language: en-US
Referer: http://{servername-omitted}/sparkweb/SparkWeb.swf
x-flash-version: 11,6,602,171
Content-Type: text/xml
Content-Length: 213
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; MS-RTC LM 8; MS-RTC EA 2; .NET4.0C; .NET4.0E)
Host: meltdown.oati.net:7070
Connection: Keep-Alive
Pragma: no-cache
<body xmlns="http://jabber.org/protocol/httpbind" sid="5d02aacf" rid="718239"><auth xmlns="urn:ietf:params:xml:ns:xmpp-sasl" mechanism="PLAIN">ZXJpa2FAbWVsdGRvd24ub2F0aS5uZXQAZXJpa2EAY29hY2hPVUNIIQ==</aut h></body>
HTTP/1.1 500 Server Error
Cache-Control: must-revalidate,no-cache,no-store
Content-Type: text/html;charset=ISO-8859-1
Content-Length: 1283
Connection: keep-alive
Server: Jetty(7.x.y-SNAPSHOT)
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/>
<title>Error 500 Server Error</title>
</head>
<body>
<h2>HTTP ERROR: 500</h2>
<p>Problem accessing /http-bind/. Reason:
<pre> Server Error</pre></p>
<hr /><i><small>Powered by Jetty://</small></i>
</body>
</html>
POST /http-bind/ HTTP/1.0
Accept: */*
Accept-Language: en-US
Referer: http://meltdown.oati.net/sparkweb/SparkWeb.swf
x-flash-version: 11,6,602,171
Content-Type: text/xml
Content-Length: 97
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; MS-RTC LM 8; MS-RTC EA 2; .NET4.0C; .NET4.0E)
Host: meltdown.oati.net:7070
Connection: Keep-Alive
Pragma: no-cache
<body xmlns="http://jabber.org/protocol/httpbind" sid="5d02aacf" rid="718240" type="terminate" />
HTTP/1.1 200 OK
Content-Type: text/xml;charset=UTF-8
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: PROPFIND, PROPPATCH, COPY, MOVE, DELETE, MKCOL, LOCK, UNLOCK, PUT, GETLIB, VERSION-CONTROL, CHECKIN, CHECKOUT, UNCHECKOUT, REPORT, UPDATE, CANCELUPLOAD, HEAD, OPTIONS, GET, POST
Access-Control-Allow-Headers: Overwrite, Destination, Content-Type, Depth, User-Agent, X-File-Size, X-Requested-With, If-Modified-Since, X-File-Name, Cache-Control
Access-Control-Max-Age: 86400
Content-Length: 74
Connection: keep-alive
Server: Jetty(7.x.y-SNAPSHOT)
<body xmlns="http://jabber.org/protocol/httpbind" type="terminate"></body>
This also shows up in the 'warn.log' file:
2013.02.28 15:25:09 org.eclipse.jetty.servlet.ServletHandler - /http-bind/
java.util.concurrent.RejectedExecutionException
at java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.reject(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.execute(Unknown Source)
at org.jivesoftware.openfire.http.HttpSessionManager$HttpPacketSender.init(HttpSes sionManager.java:417)
at org.jivesoftware.openfire.http.HttpSessionManager$HttpPacketSender.access$200(H ttpSessionManager.java:405)
at org.jivesoftware.openfire.http.HttpSessionManager.forwardRequest(HttpSessionMan ager.java:319)
at org.jivesoftware.openfire.http.HttpBindServlet.handleSessionRequest(HttpBindSer vlet.java:254)
at org.jivesoftware.openfire.http.HttpBindServlet.parseDocument(HttpBindServlet.ja va:176)
at org.jivesoftware.openfire.http.HttpBindServlet.doPost(HttpBindServlet.java:145)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:547)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:480)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:22 5)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:94 1)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:409)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:186 )
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:875 )
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117)
at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandler Collection.java:250)
at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.jav a:149)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:110)
at org.eclipse.jetty.server.Server.handle(Server.java:349)
at org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:441)
at org.eclipse.jetty.server.HttpConnection$RequestHandler.content(HttpConnection.j ava:936)
at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:801)
at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:224)
at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:51 )
at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.jav a:586)
at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java :44)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:598 )
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:533)
at java.lang.Thread.run(Unknown Source)
Is there something special I have to do to get basic http-bind working? I have ticked the radio button in the admin console for enabling http-bind, but it seems this path "/http-bind/" is not liked by the server. What else must I do to get this working?
Any assistance would be greatly appreciated.
Thanks - Erik