That's all the source for My.java. Tapestry version is 5.3 I intend to upgrade to the latest version very soon anyway.
On Wed, Jun 13, 2012 at 11:17 PM, Howard Lewis Ship <hls...@gmail.com>wrote: > What version of Tapestry is this? Can we see more source for > com.skycomm.charts.My? > > > > > On Wed, Jun 13, 2012 at 11:41 AM, Muhammad Gelbana <m.gelb...@gmail.com > >wrote: > > > The exception shows that I'm importing "org.apache.log4j.Logger" which > is a > > mistake but the same happens if I fix the import to become > > "org.slf4j.Logger" > > > > The long exception stack trace again: > > 13-06-12 20:39:21 ERROR (OperationTrackerImpl.java:127)-[main] No service > > implements the interface *org.slf4j.Logger*. > > 13-06-12 20:39:21 ERROR (OperationTrackerImpl.java:128)-[main] Operations > > trace: > > 13-06-12 20:39:21 ERROR (OperationTrackerImpl.java:137)-[main] [ 1] > > Realizing service RegistryStartup > > 13-06-12 20:39:21 ERROR (OperationTrackerImpl.java:137)-[main] [ 2] > > Instantiating service RegistryStartup implementation via > > org.apache.tapestry5.ioc.internal.services.RegistryStartup(Logger, List) > > (at RegistryStartup.java:36) via > > org.apache.tapestry5.ioc.services.TapestryIOCModule.bind(ServiceBinder) > (at > > TapestryIOCModule.java:49) > > 13-06-12 20:39:21 ERROR (OperationTrackerImpl.java:137)-[main] [ 3] > > Creating plan to instantiate > > org.apache.tapestry5.ioc.internal.services.RegistryStartup via public > > > > > org.apache.tapestry5.ioc.internal.services.RegistryStartup(org.slf4j.Logger,java.util.List) > > 13-06-12 20:39:21 ERROR (OperationTrackerImpl.java:137)-[main] [ 4] > > Determining injection value for parameter #2 (java.util.List) > > 13-06-12 20:39:21 ERROR (OperationTrackerImpl.java:137)-[main] [ 5] > > Collecting ordered configuration for service RegistryStartup > > 13-06-12 20:39:21 ERROR (OperationTrackerImpl.java:137)-[main] [ 6] > > Invoking > > > > > com.skycomm.cth.services.AppModule.contributeRegistryStartup(OrderedConfiguration, > > Logger) (at AppModule.java:315) > > 13-06-12 20:39:21 ERROR (OperationTrackerImpl.java:137)-[main] [ 7] > > Reloading class com.skycomm.charts.My. > > 13-06-12 20:39:21 ERROR (OperationTrackerImpl.java:137)-[main] [ 8] > > Creating plan to instantiate com.skycomm.charts.My via public > > com.skycomm.charts.My() > > 13-06-12 20:39:21 ERROR (OperationTrackerImpl.java:137)-[main] [ 9] > > Calculating possible injection value for field com.skycomm.charts.My.log > > (org.slf4j.Logger) > > 13-06-12 20:39:21 ERROR (OperationTrackerImpl.java:137)-[main] [10] > > Resolving object of type org.slf4j.Logger using MasterObjectProvider > > 13-06-12 20:39:23 ERROR > > (RecursiveServiceCreationCheckWrapper.java:64)-[main] Construction of > > service RegistryStartup failed: Error invoking service contribution > method > > > > > com.skycomm.cth.services.AppModule.contributeRegistryStartup(OrderedConfiguration, > > Logger): No service implements the interface org.slf4j.Logger. > > java.lang.RuntimeException: Error invoking service contribution method > > > > > com.skycomm.cth.services.AppModule.contributeRegistryStartup(OrderedConfiguration, > > Logger): No service implements the interface org.slf4j.Logger. > > at > > > > > org.apache.tapestry5.ioc.internal.ContributionDefImpl.invokeMethod(ContributionDefImpl.java:130) > > at > > > > > org.apache.tapestry5.ioc.internal.ContributionDefImpl.contribute(ContributionDefImpl.java:80) > > at > > > org.apache.tapestry5.ioc.internal.RegistryImpl$9.run(RegistryImpl.java:630) > > at > > > > > org.apache.tapestry5.ioc.internal.OperationTrackerImpl$1.invoke(OperationTrackerImpl.java:51) > > at > > > > > org.apache.tapestry5.ioc.internal.OperationTrackerImpl$1.invoke(OperationTrackerImpl.java:48) > > at > > > > > org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74) > > at > > > > > org.apache.tapestry5.ioc.internal.OperationTrackerImpl.run(OperationTrackerImpl.java:47) > > at > > > > > org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.run(PerThreadOperationTracker.java:76) > > at > > > > > org.apache.tapestry5.ioc.internal.RegistryImpl.addToOrderedConfiguration(RegistryImpl.java:626) > > at > > > > > org.apache.tapestry5.ioc.internal.RegistryImpl.getOrderedConfiguration(RegistryImpl.java:480) > > at > > > > > org.apache.tapestry5.ioc.internal.ServiceResourcesImpl$2.invoke(ServiceResourcesImpl.java:110) > > at > > > > > org.apache.tapestry5.ioc.internal.ServiceResourcesImpl$2.invoke(ServiceResourcesImpl.java:107) > > at > > > > > org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74) > > at > > > > > org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87) > > at > > > > > org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1121) > > at > > > > > org.apache.tapestry5.ioc.internal.ServiceResourcesImpl.getOrderedConfiguration(ServiceResourcesImpl.java:105) > > at > > > > > org.apache.tapestry5.ioc.internal.AbstractServiceCreator.getOrderedConfiguration(AbstractServiceCreator.java:123) > > at > > > > > org.apache.tapestry5.ioc.internal.AbstractServiceCreator.access$200(AbstractServiceCreator.java:35) > > at > > > > > org.apache.tapestry5.ioc.internal.AbstractServiceCreator$1.findResource(AbstractServiceCreator.java:103) > > at > > > > > org.apache.tapestry5.ioc.internal.util.DelegatingInjectionResources.findResource(DelegatingInjectionResources.java:38) > > at > > > > > org.apache.tapestry5.ioc.internal.util.InternalUtils.calculateInjection(InternalUtils.java:231) > > at > > > > > org.apache.tapestry5.ioc.internal.util.InternalUtils.access$000(InternalUtils.java:50) > > at > > > > > org.apache.tapestry5.ioc.internal.util.InternalUtils$4.invoke(InternalUtils.java:289) > > at > > > > > org.apache.tapestry5.ioc.internal.util.InternalUtils$4.invoke(InternalUtils.java:286) > > at > > > > > org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74) > > at > > > > > org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87) > > at > > > > > org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1121) > > at > > > > > org.apache.tapestry5.ioc.internal.util.InternalUtils.calculateParameters(InternalUtils.java:293) > > at > > > > > org.apache.tapestry5.ioc.internal.util.InternalUtils$23.invoke(InternalUtils.java:1488) > > at > > > > > org.apache.tapestry5.ioc.internal.util.InternalUtils$23.invoke(InternalUtils.java:1483) > > at > > > > > org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74) > > at > > > > > org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87) > > at > > > > > org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1121) > > at > > > > > org.apache.tapestry5.ioc.internal.util.InternalUtils.createConstructorConstructionPlan(InternalUtils.java:1480) > > at > > > > > org.apache.tapestry5.ioc.internal.ConstructorServiceCreator.getPlan(ConstructorServiceCreator.java:52) > > at > > > > > org.apache.tapestry5.ioc.internal.ConstructorServiceCreator.createObject(ConstructorServiceCreator.java:61) > > at > > > > > org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator$1.invoke(OperationTrackingObjectCreator.java:45) > > at > > > > > org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74) > > at > > > > > org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87) > > at > > > > > org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1121) > > at > > > > > org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator.createObject(OperationTrackingObjectCreator.java:49) > > at > > > > > org.apache.tapestry5.ioc.internal.SingletonServiceLifecycle.createService(SingletonServiceLifecycle.java:29) > > at > > > > > org.apache.tapestry5.ioc.internal.LifecycleWrappedServiceCreator.createObject(LifecycleWrappedServiceCreator.java:46) > > at > > > > > org.apache.tapestry5.ioc.internal.AdvisorStackBuilder.createObject(AdvisorStackBuilder.java:63) > > at > > > > > org.apache.tapestry5.ioc.internal.InterceptorStackBuilder.createObject(InterceptorStackBuilder.java:54) > > at > > > > > org.apache.tapestry5.ioc.internal.RecursiveServiceCreationCheckWrapper.createObject(RecursiveServiceCreationCheckWrapper.java:60) > > at > > > > > org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator$1.invoke(OperationTrackingObjectCreator.java:45) > > at > > > > > org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74) > > at > > > > > org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87) > > at > > > > > org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1121) > > at > > > > > org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator.createObject(OperationTrackingObjectCreator.java:49) > > at > > > > > org.apache.tapestry5.ioc.internal.services.JustInTimeObjectCreator.obtainObjectFromCreator(JustInTimeObjectCreator.java:66) > > at > > > > > org.apache.tapestry5.ioc.internal.services.JustInTimeObjectCreator.createObject(JustInTimeObjectCreator.java:54) > > at $Runnable_1a59e03880f0.delegate(Unknown Source) > > at $Runnable_1a59e03880f0.run(Unknown Source) > > at > > > > > org.apache.tapestry5.ioc.internal.RegistryImpl.performRegistryStartup(RegistryImpl.java:322) > > at > > > > > org.apache.tapestry5.ioc.internal.RegistryWrapper.performRegistryStartup(RegistryWrapper.java:80) > > at org.apache.tapestry5.TapestryFilter.init(TapestryFilter.java:118) > > at org.mortbay.jetty.servlet.FilterHolder.doStart(FilterHolder.java:97) > > at > org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) > > at > > > > > org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:713) > > at org.mortbay.jetty.servlet.Context.startContext(Context.java:140) > > at > > > > > org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1282) > > at > > org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:518) > > at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:499) > > at > org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) > > at > > org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130) > > at org.mortbay.jetty.Server.doStart(Server.java:224) > > at > org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) > > at runjettyrun.Bootstrap.main(Bootstrap.java:82) > > Caused by: org.apache.tapestry5.ioc.internal.OperationException: No > service > > implements the interface org.slf4j.Logger. > > at > > > > > org.apache.tapestry5.ioc.internal.OperationTrackerImpl.logAndRethrow(OperationTrackerImpl.java:121) > > at > > > > > org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:88) > > at > > > > > org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87) > > at > > > > > org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1121) > > at > > > > > org.apache.tapestry5.ioc.internal.services.MasterObjectProviderImpl.provide(MasterObjectProviderImpl.java:45) > > at $MasterObjectProvider_1a59e03880c0.provide(Unknown Source) > > at > > > > > org.apache.tapestry5.ioc.internal.RegistryImpl.getObject(RegistryImpl.java:868) > > at > > > > > org.apache.tapestry5.ioc.internal.ObjectLocatorImpl.getObject(ObjectLocatorImpl.java:57) > > at > > > > > org.apache.tapestry5.ioc.internal.util.InternalUtils$25.run(InternalUtils.java:1567) > > at > > > > > org.apache.tapestry5.ioc.internal.OperationTrackerImpl$1.invoke(OperationTrackerImpl.java:51) > > at > > > > > org.apache.tapestry5.ioc.internal.OperationTrackerImpl$1.invoke(OperationTrackerImpl.java:48) > > at > > > > > org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74) > > at > > > > > org.apache.tapestry5.ioc.internal.OperationTrackerImpl.run(OperationTrackerImpl.java:47) > > at > > > > > org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.run(PerThreadOperationTracker.java:76) > > at > > > org.apache.tapestry5.ioc.internal.RegistryImpl.run(RegistryImpl.java:1116) > > at > > > > > org.apache.tapestry5.ioc.internal.util.InternalUtils.extendPlanForInjectedFields(InternalUtils.java:1534) > > at > > > > > org.apache.tapestry5.ioc.internal.util.InternalUtils.access$200(InternalUtils.java:50) > > at > > > > > org.apache.tapestry5.ioc.internal.util.InternalUtils$23.invoke(InternalUtils.java:1496) > > at > > > > > org.apache.tapestry5.ioc.internal.util.InternalUtils$23.invoke(InternalUtils.java:1483) > > at > > > > > org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74) > > at > > > > > org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87) > > at > > > > > org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1121) > > at > > > > > org.apache.tapestry5.ioc.internal.util.InternalUtils.createConstructorConstructionPlan(InternalUtils.java:1480) > > at > > > > > org.apache.tapestry5.ioc.internal.ConstructorServiceCreator.getPlan(ConstructorServiceCreator.java:52) > > at > > > > > org.apache.tapestry5.ioc.internal.ConstructorServiceCreator.createObject(ConstructorServiceCreator.java:61) > > at > > > > > org.apache.tapestry5.ioc.internal.ReloadableServiceImplementationObjectCreator.createInstance(ReloadableServiceImplementationObjectCreator.java:52) > > at > > > > > org.apache.tapestry5.ioc.internal.AbstractReloadableObjectCreator$1.invoke(AbstractReloadableObjectCreator.java:127) > > at > > > > > org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74) > > at > > > > > org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87) > > at > > > > > org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1121) > > at > > > > > org.apache.tapestry5.ioc.internal.AbstractReloadableObjectCreator.createInstance(AbstractReloadableObjectCreator.java:121) > > at > > > > > org.apache.tapestry5.ioc.internal.AbstractReloadableObjectCreator.createObject(AbstractReloadableObjectCreator.java:113) > > at $IMyInterface_1a59e0388101.delegate(Unknown Source) > > at $IMyInterface_1a59e0388101.a(Unknown Source) > > at $IMyInterface_1a59e03880fc.a(Unknown Source) > > at > > > > > com.skycomm.cth.services.AppModule.contributeRegistryStartup(AppModule.java:316) > > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > > at > > > > > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > > at > > > > > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > > at java.lang.reflect.Method.invoke(Method.java:597) > > at > > > > > org.apache.tapestry5.ioc.internal.ContributionDefImpl.invokeMethod(ContributionDefImpl.java:120) > > ... 69 more > > Caused by: java.lang.RuntimeException: No service implements the > interface > > org.slf4j.Logger. > > at > > > > > org.apache.tapestry5.ioc.internal.RegistryImpl.getServiceByTypeAlone(RegistryImpl.java:661) > > at > > > > > org.apache.tapestry5.ioc.internal.RegistryImpl.getServiceByTypeAndMarkers(RegistryImpl.java:681) > > at > > > > > org.apache.tapestry5.ioc.internal.RegistryImpl.getService(RegistryImpl.java:640) > > at > > > > > org.apache.tapestry5.ioc.internal.ObjectLocatorImpl.getService(ObjectLocatorImpl.java:47) > > at > > > > > org.apache.tapestry5.ioc.internal.services.MasterObjectProviderImpl$1.invoke(MasterObjectProviderImpl.java:60) > > at > > > > > org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74) > > ... 108 more > > 2012-06-13 20:39:23.578:WARN::failed app: java.lang.RuntimeException: > > Exception constructing service 'RegistryStartup': Error invoking service > > contribution method > > > > > com.skycomm.cth.services.AppModule.contributeRegistryStartup(OrderedConfiguration, > > Logger): No service implements the interface org.slf4j.Logger. > > 2012-06-13 20:39:23.578:WARN::Failed startup of context > > org.mortbay.jetty.webapp.WebAppContext@5fb57890 > > {/,E:\Workspace\Eclipse\IpKaizen > > - Web\src\main\webapp} > > java.lang.RuntimeException: Exception constructing service > > 'RegistryStartup': Error invoking service contribution method > > > > > com.skycomm.cth.services.AppModule.contributeRegistryStartup(OrderedConfiguration, > > Logger): No service implements the interface org.slf4j.Logger. > > at > > > > > org.apache.tapestry5.ioc.internal.services.JustInTimeObjectCreator.obtainObjectFromCreator(JustInTimeObjectCreator.java:75) > > at > > > > > org.apache.tapestry5.ioc.internal.services.JustInTimeObjectCreator.createObject(JustInTimeObjectCreator.java:54) > > at $Runnable_1a59e03880f0.delegate(Unknown Source) > > at $Runnable_1a59e03880f0.run(Unknown Source) > > at > > > > > org.apache.tapestry5.ioc.internal.RegistryImpl.performRegistryStartup(RegistryImpl.java:322) > > at > > > > > org.apache.tapestry5.ioc.internal.RegistryWrapper.performRegistryStartup(RegistryWrapper.java:80) > > at org.apache.tapestry5.TapestryFilter.init(TapestryFilter.java:118) > > at org.mortbay.jetty.servlet.FilterHolder.doStart(FilterHolder.java:97) > > at > org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) > > at > > > > > org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:713) > > at org.mortbay.jetty.servlet.Context.startContext(Context.java:140) > > at > > > > > org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1282) > > at > > org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:518) > > at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:499) > > at > org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) > > at > > org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130) > > at org.mortbay.jetty.Server.doStart(Server.java:224) > > at > org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) > > at runjettyrun.Bootstrap.main(Bootstrap.java:82) > > > > > > On Wed, Jun 13, 2012 at 8:24 PM, Muhammad Gelbana <m.gelb...@gmail.com > > >wrote: > > > > > The is nothing really to show. > > > > > > *My* > > > package com.skycomm.charts; > > > import javax.inject.Inject; > > > import org.apache.log4j.Logger; > > > > > > public class My implements IMyInterface { > > > @Inject > > > private Logger log; > > > > > > public My() { > > > System.out.println(log); > > > log.info("Logger injected in service using > > @javax.inject.Inject"); > > > } > > > > > > @Override > > > public void a() { > > > System.out.println("a"); > > > } > > > }; > > > > > > *IMyInterface* > > > package com.skycomm.charts; > > > public interface IMyInterface { > > > void a(); > > > } > > > > > > *AppModule portion* > > > public void contributeRegistryStartup(OrderedConfiguration<Runnable> > > > configuration, final Logger log) { > > > m.a(); > > > // Other stuff > > > } > > > > > > *AppModule bind method* > > > public static void bind(ServiceBinder binder) { > > > //Many other binds > > > binder.bind(IMyInterface.class, My.class); //I originally had it with > > > .eagerLoad() because that's what I actually need, but I removed it > after > > I > > > suspected it to be causing the probelem, although now after I removed > it, > > > it still happens. > > > } > > > > > > *Very long exception* > > > 13-06-12 20:15:34 ERROR (OperationTrackerImpl.java:127)-[main] No > service > > > implements the interface org.apache.log4j.Logger. > > > 13-06-12 20:15:34 ERROR (OperationTrackerImpl.java:128)-[main] > Operations > > > trace: > > > 13-06-12 20:15:34 ERROR (OperationTrackerImpl.java:137)-[main] [ 1] > > > Realizing service RegistryStartup > > > 13-06-12 20:15:34 ERROR (OperationTrackerImpl.java:137)-[main] [ 2] > > > Instantiating service RegistryStartup implementation via > > > org.apache.tapestry5.ioc.internal.services.RegistryStartup(Logger, > List) > > > (at RegistryStartup.java:36) via > > > org.apache.tapestry5.ioc.services.TapestryIOCModule.bind(ServiceBinder) > > (at > > > TapestryIOCModule.java:49) > > > 13-06-12 20:15:34 ERROR (OperationTrackerImpl.java:137)-[main] [ 3] > > > Creating plan to instantiate > > > org.apache.tapestry5.ioc.internal.services.RegistryStartup via public > > > > > > org.apache.tapestry5.ioc.internal.services.RegistryStartup(org.slf4j.Logger,java.util.List) > > > 13-06-12 20:15:34 ERROR (OperationTrackerImpl.java:137)-[main] [ 4] > > > Determining injection value for parameter #2 (java.util.List) > > > 13-06-12 20:15:34 ERROR (OperationTrackerImpl.java:137)-[main] [ 5] > > > Collecting ordered configuration for service RegistryStartup > > > 13-06-12 20:15:34 ERROR (OperationTrackerImpl.java:137)-[main] [ 6] > > > Invoking > > > > > > com.skycomm.cth.services.AppModule.contributeRegistryStartup(OrderedConfiguration, > > > Logger) (at AppModule.java:315) > > > 13-06-12 20:15:34 ERROR (OperationTrackerImpl.java:137)-[main] [ 7] > > > Reloading class com.skycomm.charts.My. > > > 13-06-12 20:15:34 ERROR (OperationTrackerImpl.java:137)-[main] [ 8] > > > Creating plan to instantiate com.skycomm.charts.My via public > > > com.skycomm.charts.My() > > > 13-06-12 20:15:34 ERROR (OperationTrackerImpl.java:137)-[main] [ 9] > > > Calculating possible injection value for field > com.skycomm.charts.My.log > > > (org.apache.log4j.Logger) > > > 13-06-12 20:15:34 ERROR (OperationTrackerImpl.java:137)-[main] [10] > > > Resolving object of type org.apache.log4j.Logger using > > MasterObjectProvider > > > 13-06-12 20:15:36 ERROR > > > (RecursiveServiceCreationCheckWrapper.java:64)-[main] Construction of > > > service RegistryStartup failed: Error invoking service contribution > > method > > > > > > com.skycomm.cth.services.AppModule.contributeRegistryStartup(OrderedConfiguration, > > > Logger): No service implements the interface org.apache.log4j.Logger. > > > java.lang.RuntimeException: Error invoking service contribution method > > > > > > com.skycomm.cth.services.AppModule.contributeRegistryStartup(OrderedConfiguration, > > > Logger): No service implements the interface org.apache.log4j.Logger. > > > at > > > > > > org.apache.tapestry5.ioc.internal.ContributionDefImpl.invokeMethod(ContributionDefImpl.java:130) > > > at > > > > > > org.apache.tapestry5.ioc.internal.ContributionDefImpl.contribute(ContributionDefImpl.java:80) > > > at > > > > > > org.apache.tapestry5.ioc.internal.RegistryImpl$9.run(RegistryImpl.java:630) > > > at > > > > > > org.apache.tapestry5.ioc.internal.OperationTrackerImpl$1.invoke(OperationTrackerImpl.java:51) > > > at > > > > > > org.apache.tapestry5.ioc.internal.OperationTrackerImpl$1.invoke(OperationTrackerImpl.java:48) > > > at > > > > > > org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74) > > > at > > > > > > org.apache.tapestry5.ioc.internal.OperationTrackerImpl.run(OperationTrackerImpl.java:47) > > > at > > > > > > org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.run(PerThreadOperationTracker.java:76) > > > at > > > > > > org.apache.tapestry5.ioc.internal.RegistryImpl.addToOrderedConfiguration(RegistryImpl.java:626) > > > at > > > > > > org.apache.tapestry5.ioc.internal.RegistryImpl.getOrderedConfiguration(RegistryImpl.java:480) > > > at > > > > > > org.apache.tapestry5.ioc.internal.ServiceResourcesImpl$2.invoke(ServiceResourcesImpl.java:110) > > > at > > > > > > org.apache.tapestry5.ioc.internal.ServiceResourcesImpl$2.invoke(ServiceResourcesImpl.java:107) > > > at > > > > > > org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74) > > > at > > > > > > org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87) > > > at > > > > > > org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1121) > > > at > > > > > > org.apache.tapestry5.ioc.internal.ServiceResourcesImpl.getOrderedConfiguration(ServiceResourcesImpl.java:105) > > > at > > > > > > org.apache.tapestry5.ioc.internal.AbstractServiceCreator.getOrderedConfiguration(AbstractServiceCreator.java:123) > > > at > > > > > > org.apache.tapestry5.ioc.internal.AbstractServiceCreator.access$200(AbstractServiceCreator.java:35) > > > at > > > > > > org.apache.tapestry5.ioc.internal.AbstractServiceCreator$1.findResource(AbstractServiceCreator.java:103) > > > at > > > > > > org.apache.tapestry5.ioc.internal.util.DelegatingInjectionResources.findResource(DelegatingInjectionResources.java:38) > > > at > > > > > > org.apache.tapestry5.ioc.internal.util.InternalUtils.calculateInjection(InternalUtils.java:231) > > > at > > > > > > org.apache.tapestry5.ioc.internal.util.InternalUtils.access$000(InternalUtils.java:50) > > > at > > > > > > org.apache.tapestry5.ioc.internal.util.InternalUtils$4.invoke(InternalUtils.java:289) > > > at > > > > > > org.apache.tapestry5.ioc.internal.util.InternalUtils$4.invoke(InternalUtils.java:286) > > > at > > > > > > org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74) > > > at > > > > > > org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87) > > > at > > > > > > org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1121) > > > at > > > > > > org.apache.tapestry5.ioc.internal.util.InternalUtils.calculateParameters(InternalUtils.java:293) > > > at > > > > > > org.apache.tapestry5.ioc.internal.util.InternalUtils$23.invoke(InternalUtils.java:1488) > > > at > > > > > > org.apache.tapestry5.ioc.internal.util.InternalUtils$23.invoke(InternalUtils.java:1483) > > > at > > > > > > org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74) > > > at > > > > > > org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87) > > > at > > > > > > org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1121) > > > at > > > > > > org.apache.tapestry5.ioc.internal.util.InternalUtils.createConstructorConstructionPlan(InternalUtils.java:1480) > > > at > > > > > > org.apache.tapestry5.ioc.internal.ConstructorServiceCreator.getPlan(ConstructorServiceCreator.java:52) > > > at > > > > > > org.apache.tapestry5.ioc.internal.ConstructorServiceCreator.createObject(ConstructorServiceCreator.java:61) > > > at > > > > > > org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator$1.invoke(OperationTrackingObjectCreator.java:45) > > > at > > > > > > org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74) > > > at > > > > > > org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87) > > > at > > > > > > org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1121) > > > at > > > > > > org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator.createObject(OperationTrackingObjectCreator.java:49) > > > at > > > > > > org.apache.tapestry5.ioc.internal.SingletonServiceLifecycle.createService(SingletonServiceLifecycle.java:29) > > > at > > > > > > org.apache.tapestry5.ioc.internal.LifecycleWrappedServiceCreator.createObject(LifecycleWrappedServiceCreator.java:46) > > > at > > > > > > org.apache.tapestry5.ioc.internal.AdvisorStackBuilder.createObject(AdvisorStackBuilder.java:63) > > > at > > > > > > org.apache.tapestry5.ioc.internal.InterceptorStackBuilder.createObject(InterceptorStackBuilder.java:54) > > > at > > > > > > org.apache.tapestry5.ioc.internal.RecursiveServiceCreationCheckWrapper.createObject(RecursiveServiceCreationCheckWrapper.java:60) > > > at > > > > > > org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator$1.invoke(OperationTrackingObjectCreator.java:45) > > > at > > > > > > org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74) > > > at > > > > > > org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87) > > > at > > > > > > org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1121) > > > at > > > > > > org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator.createObject(OperationTrackingObjectCreator.java:49) > > > at > > > > > > org.apache.tapestry5.ioc.internal.services.JustInTimeObjectCreator.obtainObjectFromCreator(JustInTimeObjectCreator.java:66) > > > at > > > > > > org.apache.tapestry5.ioc.internal.services.JustInTimeObjectCreator.createObject(JustInTimeObjectCreator.java:54) > > > at $Runnable_190859b1af3c.delegate(Unknown Source) > > > at $Runnable_190859b1af3c.run(Unknown Source) > > > at > > > > > > org.apache.tapestry5.ioc.internal.RegistryImpl.performRegistryStartup(RegistryImpl.java:322) > > > at > > > > > > org.apache.tapestry5.ioc.internal.RegistryWrapper.performRegistryStartup(RegistryWrapper.java:80) > > > at org.apache.tapestry5.TapestryFilter.init(TapestryFilter.java:118) > > > at > org.mortbay.jetty.servlet.FilterHolder.doStart(FilterHolder.java:97) > > > at > > org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) > > > at > > > > > > org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:713) > > > at org.mortbay.jetty.servlet.Context.startContext(Context.java:140) > > > at > > > > > > org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1282) > > > at > > > > org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:518) > > > at > > org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:499) > > > at > > org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) > > > at > > > > org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130) > > > at org.mortbay.jetty.Server.doStart(Server.java:224) > > > at > > > > org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) > > > at runjettyrun.Bootstrap.main(Bootstrap.java:82) > > > Caused by: org.apache.tapestry5.ioc.internal.OperationException: No > > > service implements the interface org.apache.log4j.Logger. > > > at > > > > > > org.apache.tapestry5.ioc.internal.OperationTrackerImpl.logAndRethrow(OperationTrackerImpl.java:121) > > > at > > > > > > org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:88) > > > at > > > > > > org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87) > > > at > > > > > > org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1121) > > > at > > > > > > org.apache.tapestry5.ioc.internal.services.MasterObjectProviderImpl.provide(MasterObjectProviderImpl.java:45) > > > at $MasterObjectProvider_190859b1af08.provide(Unknown Source) > > > at > > > > > > org.apache.tapestry5.ioc.internal.RegistryImpl.getObject(RegistryImpl.java:868) > > > at > > > > > > org.apache.tapestry5.ioc.internal.ObjectLocatorImpl.getObject(ObjectLocatorImpl.java:57) > > > at > > > > > > org.apache.tapestry5.ioc.internal.util.InternalUtils$25.run(InternalUtils.java:1567) > > > at > > > > > > org.apache.tapestry5.ioc.internal.OperationTrackerImpl$1.invoke(OperationTrackerImpl.java:51) > > > at > > > > > > org.apache.tapestry5.ioc.internal.OperationTrackerImpl$1.invoke(OperationTrackerImpl.java:48) > > > at > > > > > > org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74) > > > at > > > > > > org.apache.tapestry5.ioc.internal.OperationTrackerImpl.run(OperationTrackerImpl.java:47) > > > at > > > > > > org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.run(PerThreadOperationTracker.java:76) > > > at > > > > > > org.apache.tapestry5.ioc.internal.RegistryImpl.run(RegistryImpl.java:1116) > > > at > > > > > > org.apache.tapestry5.ioc.internal.util.InternalUtils.extendPlanForInjectedFields(InternalUtils.java:1534) > > > at > > > > > > org.apache.tapestry5.ioc.internal.util.InternalUtils.access$200(InternalUtils.java:50) > > > at > > > > > > org.apache.tapestry5.ioc.internal.util.InternalUtils$23.invoke(InternalUtils.java:1496) > > > at > > > > > > org.apache.tapestry5.ioc.internal.util.InternalUtils$23.invoke(InternalUtils.java:1483) > > > at > > > > > > org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74) > > > at > > > > > > org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87) > > > at > > > > > > org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1121) > > > at > > > > > > org.apache.tapestry5.ioc.internal.util.InternalUtils.createConstructorConstructionPlan(InternalUtils.java:1480) > > > at > > > > > > org.apache.tapestry5.ioc.internal.ConstructorServiceCreator.getPlan(ConstructorServiceCreator.java:52) > > > at > > > > > > org.apache.tapestry5.ioc.internal.ConstructorServiceCreator.createObject(ConstructorServiceCreator.java:61) > > > at > > > > > > org.apache.tapestry5.ioc.internal.ReloadableServiceImplementationObjectCreator.createInstance(ReloadableServiceImplementationObjectCreator.java:52) > > > at > > > > > > org.apache.tapestry5.ioc.internal.AbstractReloadableObjectCreator$1.invoke(AbstractReloadableObjectCreator.java:127) > > > at > > > > > > org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74) > > > at > > > > > > org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87) > > > at > > > > > > org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1121) > > > at > > > > > > org.apache.tapestry5.ioc.internal.AbstractReloadableObjectCreator.createInstance(AbstractReloadableObjectCreator.java:121) > > > at > > > > > > org.apache.tapestry5.ioc.internal.AbstractReloadableObjectCreator.createObject(AbstractReloadableObjectCreator.java:113) > > > at $IMyInterface_190859b1af49.delegate(Unknown Source) > > > at $IMyInterface_190859b1af49.a(Unknown Source) > > > at $IMyInterface_190859b1af44.a(Unknown Source) > > > at > > > > > > com.skycomm.cth.services.AppModule.contributeRegistryStartup(AppModule.java:316) > > > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > > > at > > > > > > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > > > at > > > > > > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > > > at java.lang.reflect.Method.invoke(Method.java:597) > > > at > > > > > > org.apache.tapestry5.ioc.internal.ContributionDefImpl.invokeMethod(ContributionDefImpl.java:120) > > > ... 69 more > > > Caused by: java.lang.RuntimeException: No service implements the > > interface > > > org.apache.log4j.Logger. > > > at > > > > > > org.apache.tapestry5.ioc.internal.RegistryImpl.getServiceByTypeAlone(RegistryImpl.java:661) > > > at > > > > > > org.apache.tapestry5.ioc.internal.RegistryImpl.getServiceByTypeAndMarkers(RegistryImpl.java:681) > > > at > > > > > > org.apache.tapestry5.ioc.internal.RegistryImpl.getService(RegistryImpl.java:640) > > > at > > > > > > org.apache.tapestry5.ioc.internal.ObjectLocatorImpl.getService(ObjectLocatorImpl.java:47) > > > at > > > > > > org.apache.tapestry5.ioc.internal.services.MasterObjectProviderImpl$1.invoke(MasterObjectProviderImpl.java:60) > > > at > > > > > > org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74) > > > ... 108 more > > > 2012-06-13 20:15:36.602:WARN::failed app: java.lang.RuntimeException: > > > Exception constructing service 'RegistryStartup': Error invoking > service > > > contribution method > > > > > > com.skycomm.cth.services.AppModule.contributeRegistryStartup(OrderedConfiguration, > > > Logger): No service implements the interface org.apache.log4j.Logger. > > > 2012-06-13 20:15:36.602:WARN::Failed startup of context > > > org.mortbay.jetty.webapp.WebAppContext@428c6e04 > > {/,E:\Workspace\Eclipse\IpKaizen > > > - Web\src\main\webapp} > > > java.lang.RuntimeException: Exception constructing service > > > 'RegistryStartup': Error invoking service contribution method > > > > > > com.skycomm.cth.services.AppModule.contributeRegistryStartup(OrderedConfiguration, > > > Logger): No service implements the interface org.apache.log4j.Logger. > > > at > > > > > > org.apache.tapestry5.ioc.internal.services.JustInTimeObjectCreator.obtainObjectFromCreator(JustInTimeObjectCreator.java:75) > > > at > > > > > > org.apache.tapestry5.ioc.internal.services.JustInTimeObjectCreator.createObject(JustInTimeObjectCreator.java:54) > > > at $Runnable_190859b1af3c.delegate(Unknown Source) > > > at $Runnable_190859b1af3c.run(Unknown Source) > > > at > > > > > > org.apache.tapestry5.ioc.internal.RegistryImpl.performRegistryStartup(RegistryImpl.java:322) > > > at > > > > > > org.apache.tapestry5.ioc.internal.RegistryWrapper.performRegistryStartup(RegistryWrapper.java:80) > > > at org.apache.tapestry5.TapestryFilter.init(TapestryFilter.java:118) > > > at org.mortbay.jetty.servlet.FilterHolder.doStart(FilterHolder.java:97) > > > at > > > > org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) > > > at > > > > > > org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:713) > > > at org.mortbay.jetty.servlet.Context.startContext(Context.java:140) > > > at > > > > > > org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1282) > > > at > > > > org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:518) > > > at > org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:499) > > > at > > > > org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) > > > at > > > > org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130) > > > at org.mortbay.jetty.Server.doStart(Server.java:224) > > > at > > org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) > > > at runjettyrun.Bootstrap.main(Bootstrap.java:82) > > > > > > > > > > > > > > > > > > > > > On Wed, Jun 13, 2012 at 6:27 PM, Howard Lewis Ship <hls...@gmail.com > > >wrote: > > > > > >> On Wed, Jun 13, 2012 at 7:12 AM, Muhammad Gelbana < > m.gelb...@gmail.com> > > >> wrote: > > >> > I faced the same problem and I'm using the constructor's injection > > >> instead. > > >> > But why wouldn't the deprecated @InjectResource nor the @Inject > > >> annotation > > >> > work ? I'm using tapestry5.3.1 > > >> > > >> Without seeing the code, there's no way to answer. > > >> > > >> http://catb.org/esr/faqs/smart-questions.html > > >> > > >> > > > >> > On Wed, Dec 29, 2010 at 1:33 AM, Howard Lewis Ship < > hls...@gmail.com> > > >> wrote: > > >> > > > >> >> You're seeing the evolution of the framework. > > >> >> > > >> >> Originally, there was only constructor injection for services. > This > > is > > >> >> because we did not, originally, use a special class loader for > > service > > >> >> implementations and we were trying to avoid reflection. > > >> >> > > >> >> Components always used a special class loader, which allowed for > > proper > > >> >> injection (including intercepting attempted updates to the fields, > to > > >> make > > >> >> the read-only). > > >> >> > > >> >> Later (5.1 I believe) we started allowing injection into fields of > > >> service > > >> >> implementation, using reflection. > > >> >> > > >> >> However, there's an ambiguity. Normally, once Tapestry selects a > > >> >> constructor, it provides an injection value for each parameter, > based > > >> on > > >> >> type (and other annotation). > > >> >> > > >> >> Normally, a component parameter of type Logger is recognized, by > > type, > > >> as a > > >> >> service resource (i.e., not another service, but a unique value > > >> constructed > > >> >> just for this service). Adding the @Inject annotation tells > Tapestry > > >> to > > >> >> ignore it as a service resource and resolve it as an ordinary > > injection > > >> >> (i.e., a service, or an object obtained from the > > MasterObjectProvider). > > >> >> > > >> >> For fields, each field needs an @Inject annotation (Tapestry > ignores > > >> most > > >> >> fields and only performs injection on the ones that need it). But > > >> >> that ambiguity ... @Inject should also work the same for a field as > > it > > >> does > > >> >> for a parameter (meaning, resolve as a service, not a resource). > The > > >> >> solution was yet another annotation, @InjectResource, which is only > > for > > >> >> fields, and indicates that Tapestry should perform a resource > > >> injection on > > >> >> the field, as it would for a constructor parameter. > > >> >> > > >> >> Confusing? Yes, just a touch. It's one of the reasons I prefer > > >> constructor > > >> >> injection. > > >> >> > > >> >> On Tue, Dec 28, 2010 at 3:15 PM, Thiago H. de Paula Figueiredo < > > >> >> thiag...@gmail.com> wrote: > > >> >> > > >> >> > On Tue, 28 Dec 2010 21:11:58 -0200, Josh Canfield < > > >> >> joshcanfi...@gmail.com> > > >> >> > wrote: > > >> >> > > > >> >> > Weird. Has that always been true? > > >> >> >> > > >> >> > > > >> >> > No. I can't remember when, though. > > >> >> > > > >> >> > > > >> >> > I'm also confused > > >> >> >> why @Inject would work with Logger in a Component, but not in a > > >> service. > > >> >> >> > > >> >> > > > >> >> > Injection of some object types are handled by class > > transformations, > > >> not > > >> >> > IoC. > > >> >> > > > >> >> > > > >> >> > -- > > >> >> > Thiago H. de Paula Figueiredo > > >> >> > Independent Java, Apache Tapestry 5 and Hibernate consultant, > > >> developer, > > >> >> > and instructor > > >> >> > Owner, Ars Machina Tecnologia da Informação Ltda. > > >> >> > http://www.arsmachina.com.br > > >> >> > > > >> >> > > > --------------------------------------------------------------------- > > >> >> > To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org > > >> >> > For additional commands, e-mail: users-h...@tapestry.apache.org > > >> >> > > > >> >> > > > >> >> > > >> >> > > >> >> -- > > >> >> Howard M. Lewis Ship > > >> >> > > >> >> Creator of Apache Tapestry > > >> >> > > >> >> The source for Tapestry training, mentoring and support. Contact me > > to > > >> >> learn > > >> >> how I can get you up and productive in Tapestry fast! > > >> >> > > >> >> (971) 678-5210 > > >> >> http://howardlewisship.com > > >> >> > > >> > > > >> > > > >> > > > >> > -- > > >> > *Regards,* > > >> > *Muhammad Gelbana > > >> > Java Developer* > > >> > > >> > > >> > > >> -- > > >> Howard M. Lewis Ship > > >> > > >> Creator of Apache Tapestry > > >> > > >> The source for Tapestry training, mentoring and support. Contact me to > > >> learn how I can get you up and productive in Tapestry fast! > > >> > > >> (971) 678-5210 > > >> http://howardlewisship.com > > >> > > >> --------------------------------------------------------------------- > > >> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org > > >> For additional commands, e-mail: users-h...@tapestry.apache.org > > >> > > >> > > > > > > > > > -- > > > *Regards,* > > > *Muhammad Gelbana > > > Java Developer* > > > > > > > > > > > > -- > > *Regards,* > > *Muhammad Gelbana > > Java Developer* > > > > > > -- > Howard M. Lewis Ship > > Creator of Apache Tapestry > > The source for Tapestry training, mentoring and support. Contact me to > learn how I can get you up and productive in Tapestry fast! > > (971) 678-5210 > http://howardlewisship.com > -- *Regards,* *Muhammad Gelbana Java Developer*