Hi All,
A client of mine has a requirement that all code that I write must run on
both Adobe CF and on OpenBD. To facilitate this I'm setting up a Jenkins
server on Windows to automatically deploy and run my tests on a push into
Git. Right now, when the build is executed I create a new folder:
D:\Builds\{buildnumber}
where buildnumber, shockingly, is the build number. I then clone the app
into this folder and make sure the correct branch and revision is checked
out. I also generate an Apache conf file:
D:\Builds\{buildnumber}.conf. This file is loaded by Apache with the
include directive:
Include "D:\Builds\*.conf"
The contents of the conf files looks like this:
<VirtualHost *:80>
DocumentRoot "D:\Builds\40\ts\webapps"
ServerName 40.cfusion.ts.foo.com
JkMountFile
"D:\ColdFusion10\config\wsconfig\1\uriworkermap_cfusion.properties"
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "D:\Builds\40\ts\webapps"
ServerName 40.openbd.ts.foo.com
#JkMountFile
"D:\ColdFusion10\config\wsconfig\1\uriworkermap_openbd.properties"
</VirtualHost>
Please note that I have two hostnames:
40.cfusion.ts.foo.com and 40.openbd.ts.foo.com
These are pointed at the server via a wildcard DNS entry. I have the
'cfusion' host names being served from Adobe ColdFusion right now just
fine. I used the wsconfig tool and then customized the mod_jk
configuration to use the correct CF instance.
OpenBD is installed under Tomcat 7 in d:\Tomcat7\webapps\ROOT (to make it
the root application, obviously)
ColdFusion is in its' standard(ish) d:\ColdFusion10 folder.
So, there are two separate Tomcat servers running on this server (three if
you could Jenkins).
*My Question:*
Adobe CF "knows" to process any CFML files in the D:\Builds\40\ts\webapps
folder, even though CF is running in Tomcat in a different location. Is
there any way to make OpenBD do the same thing? I don't want to have to
configure a new <Host /> element in the Server.xml file each time a build
is run.
*What I've done so far:*
Since I haven't toyed with mod_jk in the past I decided to try to use
Adobe's wsconfig to establish an initial mod_jk connection between Apache
and Adobe CF. I then edited the connection properties, defined another
worker for OpenBD and pointed it at the OpenBD server. Here's what this
file looks like now:
worker.list=cfusion,TestServer,openbd
worker.cfusion.type=ajp13
worker.cfusion.host=localhost
worker.cfusion.port=8012
worker.cfusion.max_reuse_connections=250
worker.TestServer.type=ajp13
worker.TestServer.host=localhost
worker.TestServer.port=8013
worker.TestServer.max_reuse_connections=250
worker.openbd.type=ajp13
worker.openbd.host=localhost
worker.openbd.port=8009
worker.openbd.max_reuse_connections=250
The uriworkermap_openbd.properties looks like this:
/*.cfml/* = openbd
/*.cfm = openbd
/*.cfm/* = openbd
/*.cfml = openbd
/*.cfc = openbd
/*.cfc/* = openbd
/*.cfr = openbd
/*.jsp = openbd
If I request 40.cfusion.ts.foo.com (the Adobe CF instance) it works just
fine. If I request 40.openbd.ts.foo.com (the OpenBD instance) it will
serve non-CFML resources via Apache and it will serve CFML files that are
directly under the app in OpenBD. For
example: /bluedragon/administrator/login.cfm. However, if I request
test.cfm which is under D:\Builds\40\ts\webapps, I get a 404 error from
Tomcat. I assume this is because the .cfm file isn't under the OpenBD app
in Tomcat.
Is there any way to resolve this issue? Like I said above, I'd rather not
have to edit the Tomcat configuration files and restart Tomcat every time
we do a build. I'd much rather just restart Apache and have it "magically"
find my configuration files and use OpenBD for the correct vhosts.
Any thoughts?
Thanks so much for your help,
Doug Hughes
--
--
online documentation: http://openbd.org/manual/
http://groups.google.com/group/openbd?hl=en
---
You received this message because you are subscribed to the Google Groups "Open
BlueDragon" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.