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.