ColdFusion Idol Worship

When I was a kid I idolized athletes.  In college I idolized musicians.  As a middle aged dude I idolize superior programmers.

Today I achieved something I am very excited about. ¬†I got a couple of lines (and one of those is a comment) of code included in one of Ray Camden’s projects at RIAForge. ¬†The project is GoogleCal. ¬†It’s a ColdFusion CFC for interacting with Google’s Calendar service. ¬†My tiny, wee contribution: helping to submit an “all day” event. ¬†It is such a small, small, small, small, small (keep going), miniscule piece of Ray’s project, but just to be able to contribute ANYthing to someone who gives so much to the CF community is freaking AWESOME.

Check it GoogleCal out here.

Using Dreamweaver to work with .cfmail files

I had a BIG problem recently at a hosting company for a project I work on. They had “something go wrong” during an upgrade to ColdFusion 8 and they lost our site’s settings from ColdFusion 7. Rather than wasting valuable time trying to get them to restore a backup and redo the upgrade I forged on trying to set everything right.

One of the problems I came across was that the hosting company set the mail server to be a different one than what we had for CF7. Why did this matter? Well, there were about 300 messages sitting in the “Undelivr” folder that needed to go out. In each of those messages was the old (now incorrect) mail server info. Since I was under the gun to get the mail out I pulled them all down via FTP to parse through them with Dreamweaver.

I used this article to configure Dreamweaver to edit my extensions.txt file to be able to open and perform search and replace on .cfmail files:

http://kb.adobe.com/selfservice/viewContent.do?externalId=tn_16410

Here is a what the extensions.txt file looks like:

Dreamweaver\'s extensions.txt file

Once I got all of the .cfmail files updated, I FTP’d them back into the spool folder for re-processing. No dice. ColdFusion moved it all back to the “Undelivr” folder with a cryptic error:

The ColdFusion Mail Spool Encountered An Invalid Spool File In The Spool Directory. The invalid file MailXXXXXX.cfmail was moved to the undeliverable directory.

The next step… Hot Fix. Read about it here.

After the Hot Fix I again dropped the .cfmail files back into the spool folder for re-processing. This time… Sweet Success.

iPhone Cannot Restore Error (6) disaster averted

I was excited to download the iPhone 2.0.1 software tonight hoping it would stabilize my recently buggy iPhone 3G.  What I ended up with was this.

My iPhone hurled and was plunged into a limbo of cannot restore but cannot function.¬† I endured 3 failed attempts to restore.¬† Each ended with the dreaded “iPhone Cannot Restore Error (6)”.¬† I was using the machine I always sync it with, my iMac (iTunes 7.7.1) but I decided to roll the dice and plug it into my Macbook Air (iTunes 7.7).¬† I had to re-download the 250 MB update and restore to factory settings from the Air.¬† After that I plugged into the iMac and loaded my most recent backup.

Then I did a touchdown dance and spiked my iPhone.  Ok, not really.  Disaster averted.

To be clear I have a plain ole G3 with no jailbreak tomfoolery.

Enabling SSL on the ColdFusion 8 built-in web server

This tutorial assumes default install location for ColdFusion 8 on Windows XP.

The first thing you need to do is to create a keystore. This can be done with the keytool utility. I used the one that is part of ColdFusion 8.

Open a command prompt.

Execute the following command:
cd C:\ColdFusion8\runtime\jre\bin

Create the keystore with this command:
keytool -genkey -dname "cn=127.0.0.1, ou=CF, o=cfchimp, L=Decatur, ST=GA, C=US" -keyalg rsa -keystore mykey

If you have previously configured a keystore you might run into this error:
keytool error: java.lang.Exception: Key pair not generated, alias already exists

If you got the “already exists” error run this command to list the keystores:
keytool -list -v | more

If you got the “already exists” error run this command to delete the keystore:
keytool -delete -alias mykey

If you got the “already exists” error re-run the command to create the keystore.

Enter in a password when prompted (2 times)

Move the keystore file (mykey) to C:\ColdFusion8\runtime\lib\

Edit the config file C:\ColdFusion8\runtime\servers\coldfusion\SERVER-INF\jrun.xml with an xml editor of choice. This file is VERY sensitive so be sure to not screw up the syntax of it. You should probably make a copy of it before you edit it.


<!-- Uncomment this service to use SSL with the JRun Web Server
Note that you MUST create your own keystore before using this service -->
<service class="jrun.servlet.http.SSLService" name="SSLService">
<attribute name="enabled">true </attribute>
<attribute name="interface">* </attribute>
<attribute name="port">9100 </attribute>
<attribute name="keyStore">{jrun.rootdir}/lib/mykey </attribute>
<attribute name="keyStorePassword">mypassword </attribute>
<attribute name="trustStore">{jrun.rootdir}/lib/trustStore </attribute>
<attribute name="socketFactoryName">jrun.servlet.http.JRunSSLServerSocketFactory </attribute>
</service>

Restart the ColdFusion8 application service.

Create a test page in the ColdFusion 8 wwwroot and opening it in a web browser using: https://127.0.0.1:9100/testpage.cfm

You should be good to go.

REFERENCES:
For some keytool commands: http://www.instantssl.com/ssl-certificate-support/server_faq/ssl-server-certificate-java.html
Adobe instructions: http://www.adobe.com/support/coldfusion/using/ssl_with_cf_web_server/ssl_with_cf_web_server03.html