奇怪的現象,高手進!!!!非高手勿看!

天龍工作室發表於2005-11-16

Digester digester = new Digester();
            digester.setValidating(false);
  
            digester.register("-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN", WebApplicationDescriptor.class
                    .getResource("web-app_2_2.dtd").toString());
            digester.register("-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN", WebApplicationDescriptor.class
                    .getResource("web-app_2_3.dtd").toString());
                    
            digester.addObjectCreate("web-app", WebApplicationDefinitionImpl.class);

            digester.addObjectCreate("web-app/security-role", SecurityRoleImpl.class);
            digester.addBeanPropertySetter("web-app/security-role/description", "description");
            digester.addBeanPropertySetter("web-app/security-role/role-name", "roleName");
            digester.addSetNext("web-app/security-role", "addSecurityRole");

            WebApplicationDefinitionImpl wd = (WebApplicationDefinitionImpl) digester.parse(webXmlReader);

            wd.setContextRoot(contextRoot);
            //wd.addDescription(locale, displayName);
            wd.addDescription(Locale.getDefault(), contextRoot);


上面程式碼是從org.apache.jetspeed.util.descriptor包的public MutableWebApplication createWebApplication() throws PortletApplicationException成員函式中取得的,上面程式碼在執行至

WebApplicationDefinitionImpl wd = (WebApplicationDefinitionImpl) digester.parse(webXmlReader);
時,digester.parse返回的是正確的例項,可執行時卻丟擲強制轉換的錯誤!!!!!!!!!!!!!!!!!!!
百思不得其解,這裡可能出現問題的地方可能是:jboss類裝載產生,Digester出現的問題,其它暫未產生想法,呵呵!!

Digester既然(parse())返回的的物件是正確的,應該不存在控制強制轉換吧!!!jboss類裝載出現問題??Digester在例項化該物件時沒錯誤啊!!!!很是奇怪!!!

環境 : jboss 4.0.1sp1 + jetspeed2.0M3

相關文章