Dear Wiki user, You have subscribed to a wiki page or wiki category on "Tapestry Wiki" for change notification.
The following page has been changed by ShingHingMan: http://wiki.apache.org/tapestry/HowToRunTapestry5OnJboss5 ------------------------------------------------------------------------------ - Tapestry 5.x can not find the core pages and components from the URLs provided from classloaders in Jboss 5.x. Please see https://issues.apache.org/jira/browse/TAP5-576 for details. In JIRA 576, Benjamin Bentmann provided an implementation of ClasspathURLConverter to overcome the problem. + deleted - {{{ - public class ClasspathURLConverterJBoss5 implements ClasspathURLConverter - { - private static Logger log = Logger.getLogger(ClasspathURLConverterJBoss5.class); - - public URL convert(URL url) - { - if (url != null && url.getProtocol().startsWith("vfs")) - { - // supports virtual filesystem used by JBoss 5.x - try - { - URLConnection connection = url.openConnection(); - Object virtualFile = invokerGetter(connection, "getContent"); - Object zipEntryHandler = invokerGetter(virtualFile, "getHandler"); - Object realUrl = invokerGetter(zipEntryHandler, "getRealURL"); - return (URL) realUrl; - } - catch (Exception e) - { - log.info(e.getCause()); - } - } - return url; - } - - private Object invokerGetter(Object target, String getter) throws NoSuchMethodException, InvocationTargetException, IllegalAccessException - { - Class<?> type = target.getClass(); - Method method; - try - { - method = type.getMethod(getter); - } - catch (NoSuchMethodException e) - { - method = type.getDeclaredMethod(getter); - method.setAccessible(true); - } - return method.invoke(target); - } - - } - }}} - - To override the default implementation of ClasspathURLConverter, just add the above ClasspathURLConverterJBoss5.java to your project and add the following piece of code to your AppModule.java. - - {{{ - public static void contributeServiceOverride(MappedConfiguration<Class,Object> configuration) - { - configuration.add(ClasspathURLConverter.class, new ClasspathURLConverterJBoss5()); - } - - }}} - - The above just override the default ClaspathURLConverter service. For more information on overriding a general service, please see http://tapestry.apache.org/tapestry5.1/tapestry-ioc/cookbook/override.html - --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
