A fix for WCI Collaboration WebEdit using Office 2010

As we saw a couple days ago, WebCenter Collaboration Server doesn’t work with Office 2010. The problem is rooted in the fact that WebDAV calls to Collab from Office 2010 aren’t strictly RFC-compliant because they’re missing a Content-Length header, and Tomcat rejects them because of that – even before Collab gets the HTTP requests.

Which got me to thinking: what if we could create an intermediate server that would add this header for us?   Then Tomcat would accept the connection and we’d be able to tell if Collab was able to “do its thing”. I started down the path of creating an Apache ProxyPass to do just this, when a friend and fellow Hak’er (Brian Hak) – who has been fighting his own fires with Collab these days – suggested that I try AJP. Even better, he pointed out, Collab’s default configuration settings allow you to turn this on by just flipping a switch; with it, we could then use mod_headers to add the Content-Length header.

Tip o’ the the hat to Brian for the AJP idea – it turns out that if Apache and AJP are handling the HTTP requests rather than Tomcat and its embedded web server, we don’t even need to muck with HTTP headers, as the request does NOT get blocked:

… and WebEdit (mostly) works in Office 2010!

I should warn you before proceeding: While I can absolutely say that WebEdit works in my test environment with Office 2010, .NET WCI Portal 10.3.0, on IIS 6, your mileage may vary, and I can’t guarantee this will work. I’ve found that Office 2007 has its own quirks – it works with the Collab Office Tools plugin in the ribbon bar, but not the out-of-the-box “save” implementation using Office’s own WebDAV calls. Perhaps that’s a post for another day, but early results show that while this hack doesn’t hurt Office 2007 support, it doesn’t seem to help either. Obviously, do extensive testing before even considering moving to a production environment.  Stay tuned for the next update in these pages, as there’s yet another database hack needed to make it fully functional.

Disclaimers out of the way, let’s dig in. Basically, what we’re going to do is:

  1. Install Apache Web Server on the Collab Machine, with the AJP plugin
  2. Configure Collab to accept AJP calls
  3. Configure the portal to send requests to Apache instead of directly to Collab (Tomcat)


Here are the steps you can try on your own to support Office 2010 WebEdit with Collab 10.3.0(.1).  I suspect this will work in versions as far back as 4.2, but as of this post, I have yet to confirm this.

  1. Download and install Apache 2.2.17 to C:\Apache2.2\
  2. Download and copy mod_jk.so 1.3.31 to C:\Apache2.2\modules\
  3. Create a file called C:\apps\Apache2.2\conf\workers.properties containing the following:

    # Define worker using ajp13
    worker.list=worker1

    # Set properties for worker1 (ajp13)
    worker.worker1.type=ajp13
    worker.worker1.host=localhost
    worker.worker1.port=3002
    worker.worker1.lbfactor=50
    worker.worker1.socket_keepalive=1
    worker.worker1.socket_timeout=300

  4. Replace all instances of port 80 in C:\apps\Apache2.2\conf\httpd.conf with port 12930.
  5. Add the following lines to the bottom of C:\apps\Apache2.2\conf\httpd.conf

    LoadModule jk_module modules/mod_jk-1.2.31-httpd-2.2.3.so
    #JK configuration
    JkWorkersFile conf/workers.properties
    JkLogFile logs/mod_jk.log
    JkLogLevel info
    JkLogStampFormat “[%a %b %d %H:%M:%S %Y]”
    JkRequestLogFormat “%w %V %T”
    JkMount /* worker1

  6. Update %PORTAL_HOME%\alui\settings\configuration.xml.  Find the EAS: appconfig: collab section, and change the EAS:AJP13_Enabled setting to “true”.  Leave the port at 3002.
  7. Update the Collaboration Remote Server to use port 12930 instead of 11930.
  8. Important – restart BOTH Collaboration server AND the portal (the WebEdit port is somehow cached in the portal gateway settings)

What we’ve done here is tell the Collab embedded app server (Tomcat) to listen for AJP connections on port 3002, then set up Apache to listen on port 12930, which is directing all traffic through AJP on that port.  Finally, we told the portal to use Apache’s port to proxy the requests for us.

The result?  WebEdit saving works in Office 2010 using the “save” icon – no need for the Collab Tools Ribbon bar from Office 2007 or 2003:

Tags: , , , , , ,

Leave a Reply