Copy link to clipboard
Copied
Just upgraded from CF8 to CF10 standard running on Win2008 Server w/IIS7.
Have two development sites that we're testing out before we upgrade our production sites. Only one showstopper: if I navigate to, say:
http://www.site.com/admin/index.cfm
Everything is fine.
If I navigate to:
Then I lose my entire session and get kicked back to my login page with a new JSESSIONID. Happens in every browser.
If I navigate to the CF Admin tool:
http://www.site.com/CFIDE/Administrator/index.cfm
Everything is great - but if I navigate instead to:
http://www.site.com/CFIDE/Administrator/
I get the following error. I don't even know where to look for this one, particularly because the same IIS7 server is running CF8 just fine, and if I switch a site from CF10 to CF8, I don't have this problem.
struct | |||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Browser | Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.52 Safari/536.5 | ||||||||||||||||||||||||||
DateTime | {ts '2012-06-04 14:52:05'} | ||||||||||||||||||||||||||
Diagnostics | javax/servlet/jsp/JspContext null <br>The error occurred on line -1. | ||||||||||||||||||||||||||
GeneratedContent | [empty string] | ||||||||||||||||||||||||||
HTTPReferer | [empty string] | ||||||||||||||||||||||||||
Mailto | [empty string] | ||||||||||||||||||||||||||
Message | javax/servlet/jsp/JspContext | ||||||||||||||||||||||||||
QueryString | [empty string] | ||||||||||||||||||||||||||
RemoteAddress | 99.17.196.50 | ||||||||||||||||||||||||||
RootCause |
| ||||||||||||||||||||||||||
StackTrace | java.lang.NoClassDefFoundError: javax/servlet/jsp/JspContext at java.lang.Class.getDeclaredConstructors0(Native Method) at java.lang.Class.privateGetDeclaredConstructors(Class.java:2389) at java.lang.Class.getConstructor0(Class.java:2699) at java.lang.Class.newInstance0(Class.java:326) at java.lang.Class.newInstance(Class.java:308) at coldfusion.runtime.TemplateClassLoader.newInstance(TemplateClassLoader.java:444) at coldfusion.tagext.lang.IncludeTag.setTemplate(IncludeTag.java:159) at coldfusion.tagext.lang.IncludeTag.setTemplatePath(IncludeTag.java:87) at coldfusion.filter.CfincludeFilter.invoke(CfincludeFilter.java:64) at coldfusion.filter.CfincludeFilter.include(CfincludeFilter.java:33) at coldfusion.filter.ApplicationFilter.invoke(ApplicationFilter.java:221) at coldfusion.filter.RequestMonitorFilter.invoke(RequestMonitorFilter.java:48) at coldfusion.filter.MonitoringFilter.invoke(MonitoringFilter.java:40) at coldfusion.filter.PathFilter.invoke(PathFilter.java:86) at coldfusion.filter.ExceptionFilter.invoke(ExceptionFilter.java:70) at coldfusion.filter.ClientScopePersistenceFilter.invoke(ClientScopePersistenceFilter.java:28) at coldfusion.filter.BrowserFilter.invoke(BrowserFilter.java:38) at coldfusion.filter.NoCacheFilter.invoke(NoCacheFilter.java:46) at coldfusion.filter.GlobalsFilter.invoke(GlobalsFilter.java:38) at coldfusion.filter.DatasourceFilter.invoke(DatasourceFilter.java:22) at coldfusion.CfmServlet.service(CfmServlet.java:198) at coldfusion.bootstrap.BootstrapServlet.service(BootstrapServlet.java:89) at jrun.servlet.FilterChain.doFilter(FilterChain.java:86) at coldfusion.monitor.event.MonitoringServletFilter.doFilter(MonitoringServletFilter.java:42) at coldfusion.bootstrap.BootstrapFilter.doFilter(BootstrapFilter.java:46) at jrun.servlet.FilterChain.doFilter(FilterChain.java:94) at jrun.servlet.FilterChain.service(FilterChain.java:101) at jrun.servlet.ServletInvoker.invoke(ServletInvoker.java:106) at jrun.servlet.JRunInvokerChain.invokeNext(JRunInvokerChain.java:42) at jrun.servlet.JRunRequestDispatcher.invoke(JRunRequestDispatcher.java:286) at jrun.servlet.ServletEngineService.dispatch(ServletEngineService.java:543) at jrun.servlet.jrpp.JRunProxyService.invokeRunnable(JRunProxyService.java:203) at jrunx.scheduler.ThreadPool$DownstreamMetrics.invokeRunnable(ThreadPool.java:320) at jrunx.scheduler.ThreadPool$ThreadThrottle.invokeRunnable(ThreadPool.java:428) at jrunx.scheduler.ThreadPool$UpstreamMetrics.invokeRunnable(ThreadPool.java:266) at jrunx.scheduler.WorkerThread.run(WorkerThread.java:66) Caused by: java.lang.ClassNotFoundException: javax.servlet.jsp.JspContext at coldfusion.runtime.TemplateClassLoader.findClass(TemplateClassLoader.java:153) at java.lang.ClassLoader.loadClass(ClassLoader.java:306) at java.lang.ClassLoader.loadClass(ClassLoader.java:251) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319) ... 36 more | ||||||||||||||||||||||||||
TagContext |
| ||||||||||||||||||||||||||
Template | /CFIDE/Administrator/index.cfm | ||||||||||||||||||||||||||
Type | coldfusion.runtime.CfErrorWrapper |
I found the issue on my system. It appears the CF10 installer left some (or all) of the ColdFusion 9 handler mappings in place. Not only did this root document error take place, but, once I shut down the CF9 services, every page (ncluding .html pages) took 20+ seconds to load. Looking at the site's handler mappings, I saw a series of "AboMapperCustom" handlers at the top, including *, *.jsp, *.cfm, etc., all pointing toward [ColdFusion9]\runtime\lib\wsconfig\jrun_iis6.dll. Removing the * ent
...Copy link to clipboard
Copied
Some more information:
I had it dump the cookie and session scope at the start of every request. Here they are on a page whose full URL I specify (e.g. directory/index.cfm and not directory/):
Cookie:
CFID | 1086768 |
CFTOKEN | c8ff27c68d62c002-A4F59D2E-D4C1-D5B4-65C0C81B87D62037 |
JSESSIONID | 40735EB6F2B51F1F9B79D469EC9FB0DF.cfusion |
__utma | 139485094.1530886024.1338502456.1338828444.1338846630.4 |
__utmb | 139485094.53.10.1338846630 |
__utmc | 139485094 |
__utmz | 139485094.1338502456.1.1.utmcsr |
Session:
attempts | [empty string] | ||
languageid | C6E045C4-0D89-4BCD-9C6C-4A24A6EA1C08 | ||
languagekey | language.english | ||
roles | User,Developer,SiteManager | ||
sessionid | 40735EB6F2B51F1F9B79D469EC9FB0DF.cfusion | ||
started | {ts '2012-06-04 15:00:38'} | ||
tracking |
| ||
urltoken | CFID=1086768&CFTOKEN=c8ff27c68d62c002-A4F59D2E-D4C1-D5B4-65C0C81B87D62037&jsessionid=40735EB6F2B51F1F9B79D469EC9FB0DF.cfusion | ||
Then I browse to a directory/ URL and get this:
Cookie:
CFID | 1086768 |
CFTOKEN | c8ff27c68d62c002-A4F59D2E-D4C1-D5B4-65C0C81B87D62037 |
JSESSIONID | 40735EB6F2B51F1F9B79D469EC9FB0DF.cfusion |
__utma | 139485094.1530886024.1338502456.1338828444.1338846630.4 |
__utmb | 139485094.54.10.1338846630 |
__utmc | 139485094 |
__utmz | 139485094.1338502456.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none) |
Session:
attempts | [empty string] | ||
languagekey | language.english | ||
roles | [empty string] | ||
sessionid | 6230ab4f06e060b1a4125e58643123e2f426 | ||
started | {ts '2012-06-04 15:18:10'} | ||
tracking |
| ||
urltoken | CFID=1086768&CFTOKEN=c8ff27c68d62c002-A4F59D2E-D4C1-D5B4-65C0C81B87D62037&jsessionid=6230ab4f06e060b1a4125e58643123e2f426 | ||
userid | [empty string] |
The cookie scope retains the old jsessionID but the session scope has a whole new one. This happens in both of our CF apps (totally unrelated codebases) and we aren't doing anything especially unusual with our session management.
Copy link to clipboard
Copied
Aquitaine wrote:
CFID1086768 CFTOKEN c8ff27c68d62c002-A4F59D2E-D4C1-D5B4-65C0C81B87D62037 JSESSIONID 40735EB6F2B51F1F9B79D469EC9FB0DF.cfusion __utma 139485094.1530886024.1338502456.1338828444.1338846630.4 __utmb 139485094.53.10.1338846630 __utmc 139485094 __utmz 139485094.1338502456.1.1.utmcsr
Hi Aquitaine,
CF10 is the first version which appends ".cfusion" to the end of the JSESSIONID value. The lack of this ".cfusion" in the other session dump indicates the request wasn't processed by CF10 (as you noticed).
Thanks,
-Aaron
Copy link to clipboard
Copied
I'm having the same problem on a Win7 Dev system. I'd love to know of any solution you find. I'm certainly not going to be installing this on our production server until this is resolved.
Copy link to clipboard
Copied
I found the issue on my system. It appears the CF10 installer left some (or all) of the ColdFusion 9 handler mappings in place. Not only did this root document error take place, but, once I shut down the CF9 services, every page (ncluding .html pages) took 20+ seconds to load. Looking at the site's handler mappings, I saw a series of "AboMapperCustom" handlers at the top, including *, *.jsp, *.cfm, etc., all pointing toward [ColdFusion9]\runtime\lib\wsconfig\jrun_iis6.dll. Removing the * entry seems to have cleared up the issue. I'll eventually remove the other "AboMapperCustom" entries, as well, but, for now, everything appears to be up and running. Sheesh. Hope this helps.
Copy link to clipboard
Copied
The only solution I found (prior to this) was to delete the site from IIS and re-add it. Your solution is clearly much better! Nice find.
Copy link to clipboard
Copied
I had similar problem with CF8->CF10 on WinServer2003 and while I didn't see this exact language you did, here's what fixed it for me based on MightyFlea's post:
Site Properties | Home Directory | Configuration | Mappings
There was an entry under "Wildcard applications maps (order of implementation):" and it's value was: "C:\ColdFusion8\runtime\lib\wsconfig\1\jrun_iis6_wildcard.dll"
Removed that entry, and the Administrative site worked like a champ and I was able to complete migration.
Initial check of other websites on that server shows they all still have this entry, but it does not appear to effect ordinary site operation. But it certainly DID effect the first running of /cfide/Administrator and prevented installation from completing until it was removed.
Copy link to clipboard
Copied
Thanks, MikeInAustin and itisdesign. We had clobbered this problem by adding and removing the site definition but I'm glad to understand where the problem came from better.
p.s. MikeInAustin - we're in Austin too!
Copy link to clipboard
Copied
MightyFlea wrote:
It appears the CF10 installer left some (or all) of the ColdFusion 9 handler mappings in place.
Hi MightyFlea,
When CF's installer runs wsconfig.exe, it doesn't remove a previous version's settings from the web server. This permits varying CF versions to run side-by-side. However, as you noticed, in certain scenarios there an be issues. Just as an FYI, CF10 does improve this going forward for IIS7+. CF10 is the first version which configures IIS7+ completely at the server level (C:\Windows\System32\inetsrv\config\applicationHost.config), instead of site leve (web.config). What this means is, there should be no issue running CF10 and CF11 side-by-side in IIS7+.
Thanks!,
-Aaron