This gets Tapestry working with JBoss 5.0.1... In AppModule...
// Tell Tapestry how to handle classpath URLs - we provide a converter to handle JBoss 5. // See http://wiki.apache.org/tapestry/HowToRunTapestry5OnJBoss5 . @SuppressWarnings("unchecked") public static void contributeServiceOverride(MappedConfiguration<Class, Object> configuration) { configuration.add(ClasspathURLConverter.class, new ClasspathURLConverterJBoss5()); } And the class is... package au.com.tenam.web.services; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.net.URL; import java.net.URLConnection; import org.apache.tapestry5.ioc.services.ClasspathURLConverter; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class ClasspathURLConverterJBoss5 implements ClasspathURLConverter { private static Logger _logger = LoggerFactory.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) { _logger.info(e.getCause().toString()); } } 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); } } You can see it works fine in the JumpStart demo, which is running on JBoss 5.0.1. http://jumpstart.doublenegative.com.au:8080/jumpstart/ I think you then add the fix for JBoss 5.1, ie. -Djboss.vfs.forceCopy=false Please let us know how it goes! Geoff On 16/03/2010, at 10:36 PM, jaques robert wrote: > Hello, > > I'm trying to run Tapestry 5.1 with JBoss 5.1. However, I'm still having this > error : > << > 09:58:56,329 ERROR [RequestExceptionHandler] Processing of request failed > with uncaught exception: Unable to resolve 'pagelink' to a component class > name. Available component types: (none). > org.apache.tapestry5.ioc.internal.util.TapestryException: Unable to resolve > 'pagelink' to a component class name. Available component types: (none). [at > classpath:com/pouet/repository/wizard/tapestry/pages/Index.tml, line 15] > at > org.apache.tapestry5.internal.pageload.PageLoaderImpl.startComponent(PageLoaderImpl.java:742) > at > org.apache.tapestry5.internal.pageload.PageLoaderImpl.component(PageLoaderImpl.java:614) >>> > > > I've looked in the mail archive of Tapestry-Users and saw : > > << > > ok, I found solution for JBoss 5.1.0. > It's enough to use the same url > converter that Geoff pointed out and add "-Djboss.vfs.forceCopy=false" > to JBoss JAVA_OPTS. At least, it solved the problem for me :) > enjoy, > m. >>> > > So I've added the -Djboss.vfs.forceCopy=false argument, however it doesn't > solve anything... > > I saw this case opened https://issues.apache.org/jira/browse/TAP5-576, > however the status is "Won't fix" :( > > I've read also that providing another implementation of > ClasspathURLConverter could resolve it : > "http://www.mail-archive.com/users@tapestry.apache.org/msg31403.html" > > However, how can I plug this classpathurlconverter to my existing project ? > > Does somebody > already managed to resolve this problem ? > > Regards, > mondes_engloutis. > >