2014-08-27 19 views
6

Windows Server 2008 R2 üzerinde IIS 7.5 üzerinde çalışan ColdFusion 9.0.1 çalışan bir tane üretim ve bir geliştirme olmak üzere iki sunucum var. İkisi de aynı şekilde yapılandırılmıştır. Geçtiğimiz haftalarda ve sorunsuz bir çalışma süresinin ardından, sitenin bazı bölümlerinin (özellikle CFIDE yönetici portalı ve cfwindow etiketli herhangi bir sayfa) "Coldfusion.security.ESAPIUtils sınıfını başlatılamadı" hatalarını atmaya başlayacağı geçici bir sorunumuz var. günlükleri."ESAPI.properties herhangi bir şekilde yüklenemedi. Başarısız." "Coldfusion.security.ESAPIUtils sınıfını başlatılamadı"

somerecommendationsrecommendations Tüm hot fix'leri kaldırdım ve yeniden yükledim, bunları doğru sırada uygulayıp kontrol etmediğimi ve doğru yönergeleri izlediğimi söyle.

Bu bir şeyleri düzeltmedi, ancak günlük dosyaları ile tarama yaparken, başka bir ESAPI ile ilgili hata olduğunu fark ettim ("ESAPI.properties herhangi bir şekilde yüklenemedi. Başarısız.") jRun yeniden başlat. Ben following declaration ekleyerek çalıştı java.argsjvm.config yılında:

-Dorg.owasp.esapi.resources=E:\JRun4\servers\cfusion\cfusion-ear\cfusion-war\WEB-INF\cfusion\lib 
aylarca sorunu gidermek gibiydi

; Hata yok, işler iyi çalıştı. Sonra, dün üretim sunucusu hataları tekrar atmaya başladı. JRun'u yeniden başlatmayı ve sunucuyu yeniden başlatmayı denedim ve hata devam ediyor. Geliştirme sunucusu gayet iyi.

Sadece ESAPIUtils örneğini başlatan ve cfdumps yapan bir komut dosyası oluşturmayı denedim. Dev üzerinde, nesne hakkındaki meta verileri döker; Üretimde, sayfa bir hatayla sonuçlanır.

Neredeyse bir yıldır bu konuyla uğraşıyorum. Bazen birkaç gün sonra kendini çözer, bazen haftalarca devam eder. Bu durumu "teşvik" etmenin bir yolunu bulmaya gelmedim, bu yüzden bir süredir işe yaramayan, ölçülebilir olmayan "düzeltmeler" ile sıkışıp kaldık.

Bu tamamen teğet görünüyor, ancak geçerli görüntüler için yerleşik IsImageFile() işlevinin yanlış döndüğü örneklere sahibiz. IsImageFile() tuhaflığı, "sınıf coldfusion.security.ESAPIUtils'i başlatamadı" deliliğinden biraz önce başlıyor gibi görünüyor.

ColdFusion Version: 9,0,1,274733 
Operating System: Windows Server 2008 R2 amd64 6.1 
Web Server Software: Microsoft-IIS/7.5 
Java JVM: 1.8.0_05 Oracle Corporation 
JEE Server: JRun/4.0 
Security Hotfixes (9.0.1): APSB13-27, APSB13-19, APSB13-13, APSB13-10, ColdFusion 9.0.1  Cumulative Hotfix 4 (APSB13-03, APSB12-26, APSB12-21, APSB12-06, APSB11-29, APSB11-14, APSB11-04, APSB10-18), ColdFusion 9.0.1 Cumulative Hotfix 3, ColdFusion 9.0.1 Cumulative Hotfix 2, ColdFusion 9.0.1 Cumulative Hotfix 1 
Connectors: JRun IIS 64 Bit Connector (Build 108858) 

Ve cfusion-out.log bir yığın takibi:

08/27 11:37:52 Error [jrpp-58] - Could not initialize class  08/27 11:37:52 Error [jrpp-58] - Could not initialize class coldfusion.security.ESAPIUtils The specific sequence of files included or processed is: E:\web\cfadmin\webroot\CFIDE\administrator\index.cfm, line: 30 
08/27 11:37:52 error ROOT CAUSE: 
java.lang.NoClassDefFoundError: Could not initialize class coldfusion.security.ESAPIUtils 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:483) 
at coldfusion.runtime.java.JavaProxy.invoke(JavaProxy.java:97) 
at coldfusion.runtime.CfJspPage._invoke(CfJspPage.java:2360) 
at cflogin2ecfm1599616868.runPage(C:\work\ColdFusion\cf9_u1_final_hotfix\cfusion\wwwroot\CFIDE\administrator\login.cfm:30) 
at coldfusion.runtime.CfJspPage.invoke(CfJspPage.java:231) 
at coldfusion.tagext.lang.IncludeTag.doStartTag(IncludeTag.java:416) 
at coldfusion.runtime.CfJspPage._emptyTcfTag(CfJspPage.java:2722) 
at cfApplication2ecfm1920815415._factor5(C:\work\cf9_u1_final_hotfix\cfusion\wwwroot\CFIDE\administrator\Application.cfm:210) 
at cfApplication2ecfm1920815415._factor9(C:\work\cf9_u1_final_hotfix\cfusion\wwwroot\CFIDE\administrator\Application.cfm:202) 
at cfApplication2ecfm1920815415.runPage(C:\work\cf9_u1_final_hotfix\cfusion\wwwroot\CFIDE\administrator\Application.cfm:1) 
at coldfusion.runtime.CfJspPage.invoke(CfJspPage.java:231) 
at coldfusion.tagext.lang.IncludeTag.doStartTag(IncludeTag.java:416) 
at coldfusion.filter.CfincludeFilter.invoke(CfincludeFilter.java:65) 
at coldfusion.filter.CfincludeFilter.include(CfincludeFilter.java:33) 
at coldfusion.filter.ApplicationFilter.invoke(ApplicationFilter.java:297) 
at coldfusion.filter.RequestMonitorFilter.invoke(RequestMonitorFilter.java:48) 
at coldfusion.filter.MonitoringFilter.invoke(MonitoringFilter.java:40) 
at coldfusion.filter.PathFilter.invoke(PathFilter.java:94) 
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.filter.CachingFilter.invoke(CachingFilter.java:62) 
at coldfusion.CfmServlet.service(CfmServlet.java:201) 
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$ThreadThrottle.invokeRunnable(ThreadPool.java:428) 
at jrunx.scheduler.WorkerThread.run(WorkerThread.java:66) 
javax.servlet.ServletException: ROOT CAUSE: 
java.lang.NoClassDefFoundError: Could not initialize class coldfusion.security.ESAPIUtils 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:483) 
at coldfusion.runtime.java.JavaProxy.invoke(JavaProxy.java:97) 
at coldfusion.runtime.CfJspPage._invoke(CfJspPage.java:2360) 
at cflogin2ecfm1599616868.runPage(C:\work\ColdFusion\cf9_u1_final_hotfix\cfusion\wwwroot\CFIDE\administrator\login.cfm:30) 
at coldfusion.runtime.CfJspPage.invoke(CfJspPage.java:231) 
at coldfusion.tagext.lang.IncludeTag.doStartTag(IncludeTag.java:416) 
at coldfusion.runtime.CfJspPage._emptyTcfTag(CfJspPage.java:2722) 
at cfApplication2ecfm1920815415._factor5(C:\work\cf9_u1_final_hotfix\cfusion\wwwroot\CFIDE\administrator\Application.cfm:210) 
at cfApplication2ecfm1920815415._factor9(C:\work\cf9_u1_final_hotfix\cfusion\wwwroot\CFIDE\administrator\Application.cfm:202) 
at cfApplication2ecfm1920815415.runPage(C:\work\cf9_u1_final_hotfix\cfusion\wwwroot\CFIDE\administrator\Application.cfm:1) 
at coldfusion.runtime.CfJspPage.invoke(CfJspPage.java:231) 
at coldfusion.tagext.lang.IncludeTag.doStartTag(IncludeTag.java:416) 
at coldfusion.filter.CfincludeFilter.invoke(CfincludeFilter.java:65) 
at coldfusion.filter.CfincludeFilter.include(CfincludeFilter.java:33) 
at coldfusion.filter.ApplicationFilter.invoke(ApplicationFilter.java:297) 
at coldfusion.filter.RequestMonitorFilter.invoke(RequestMonitorFilter.java:48) 
at coldfusion.filter.MonitoringFilter.invoke(MonitoringFilter.java:40) 
at coldfusion.filter.PathFilter.invoke(PathFilter.java:94) 
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.filter.CachingFilter.invoke(CachingFilter.java:62) 
at coldfusion.CfmServlet.service(CfmServlet.java:201) 
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$ThreadThrottle.invokeRunnable(ThreadPool.java:428) 
at jrunx.scheduler.WorkerThread.run(WorkerThread.java:66) 
at coldfusion.monitor.event.MonitoringServletFilter.doFilter(MonitoringServletFilter.java:70) 
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$ThreadThrottle.invokeRunnable(ThreadPool.java:428) 
at jrunx.scheduler.WorkerThread.run(WorkerThread.java:66) 
+0

bu sunucuda korumalı alan mıdır? –

+0

Evet. Üzgünüm, ilk başta bunu eklemeyi unuttum. Hata, üretim sunucusunda birden çok sanal alanda oluşur. (Aynı zamanda birden çok IIS uygulama havuzunda da ortaya çıkar.) – Rob

+1

Bu sanal alanlar için esapi.properties dosyasını okumak için izin eklemeyi denediniz mi? –

cevap

1

esapi.properties izni lib dizinine \ < CF_HOME> mevcut dosya okumak dosya ekleme

Aşağıda sunucu sürümleri bulunmaktadır her sanal alan için. CF Yönetici konsoluna erişemiyorsanız, bu izni < CF_HOME> \ lib dizininde bulunan neo-security.xml dosyasına ekleyin.

İlgili konular