Hi All,

I'm facing another issue while upgrading Tapestry from 5.0.15 to 5.2.5. I
have registration form and when i submit the form, after filling all the
info i'm getting the below exception

aused by: java.lang.RuntimeException: Error invoking service builder method
org.apache.tapestry5.services.TapestryModule.buildComponentEventRequestHandler(List,
Logger, ComponentEventRequestHandlerImpl) (at TapestryModule.java:1699)
(for service 'ComponentEventRequestHandler'): Error invoking service
contribution method
com.test.ui.services.LoginAppModule.contributeComponentEventRequestHandler(OrderedConfiguration,
ObjectLocator): Error invoking constructor
com.test.ui.services.common.impl.AjaxFilter(Request, PageResponseRenderer,
Response, ComponentEventResultProcessor) (at AjaxFilter.java:26) (for
service 'ComponentEventRequestHandler'): Unable to locate a single service
assignable to type
org.apache.tapestry5.services.ComponentEventResultProcessor with marker
annotation(s) org.apache.tapestry5.services.Traditional.  All of the
following services match:
org.apache.tapestry5.internal.services.ComponentInstanceResultProcessor(Logger,
RequestPageCache, ActionRenderResponseGenerator) (at
ComponentInstanceResultProcessor.java:38) via
org.apache.tapestry5.services.TapestryModule.bind(ServiceBinder) (at
TapestryModule.java:327),
org.apache.tapestry5.services.TapestryModule.buildComponentEventResultProcessor(Map)
(at TapestryModule.java:1515).
    at
org.apache.tapestry5.ioc.internal.ServiceBuilderMethodInvoker.createObject(ServiceBuilderMethodInvoker.java:76)
    at
org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator$1.invoke(OperationTrackingObjectCreator.java:45)
    at
org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:65)
    at
org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:68)
    at
org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1063)
    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:60)
    at
org.apache.tapestry5.ioc.internal.InterceptorStackBuilder.createObject(InterceptorStackBuilder.java:52)
    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:65)
    at
org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:68)
    at
org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1063)
    at
org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator.createObject(OperationTrackingObjectCreator.java:49)
    at
org.apache.tapestry5.ioc.internal.services.JustInTimeObjectCreator.obtainObjectFromCreator(JustInTimeObjectCreator.java:68)
    ... 78 more
Caused by: java.lang.RuntimeException: Error invoking service contribution
method
com.test.ui.services.LoginAppModule.contributeComponentEventRequestHandler(OrderedConfiguration,
ObjectLocator): Error invoking constructor
com.test.ui.services.common.impl.AjaxFilter(Request, PageResponseRenderer,
Response, ComponentEventResultProcessor) (at AjaxFilter.java:26) (for
service 'ComponentEventRequestHandler'): Unable to locate a single service
assignable to type
org.apache.tapestry5.services.ComponentEventResultProcessor with marker
annotation(s) org.apache.tapestry5.services.Traditional.  All of the
following services match:
org.apache.tapestry5.internal.services.ComponentInstanceResultProcessor(Logger,
RequestPageCache, ActionRenderResponseGenerator) (at
ComponentInstanceResultProcessor.java:38) via
org.apache.tapestry5.services.TapestryModule.bind(ServiceBinder) (at
TapestryModule.java:327),
org.apache.tapestry5.services.TapestryModule.buildComponentEventResultProcessor(Map)
(at TapestryModule.java:1515).
    at
org.apache.tapestry5.ioc.internal.ContributionDefImpl.invokeMethod(ContributionDefImpl.java:139)
    at
org.apache.tapestry5.ioc.internal.ContributionDefImpl.contribute(ContributionDefImpl.java:82)
    at
org.apache.tapestry5.ioc.internal.RegistryImpl$9.run(RegistryImpl.java:651)
    at
org.apache.tapestry5.ioc.internal.OperationTrackerImpl$1.invoke(OperationTrackerImpl.java:50)
    at
org.apache.tapestry5.ioc.internal.OperationTrackerImpl$1.invoke(OperationTrackerImpl.java:48)
    at
org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:65)
    at
org.apache.tapestry5.ioc.internal.OperationTrackerImpl.run(OperationTrackerImpl.java:46)
    at
org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.run(PerThreadOperationTracker.java:56)
    at
org.apache.tapestry5.ioc.internal.RegistryImpl.addToOrderedConfiguration(RegistryImpl.java:646)
    at
org.apache.tapestry5.ioc.internal.RegistryImpl.getOrderedConfiguration(RegistryImpl.java:492)
    at
org.apache.tapestry5.ioc.internal.ServiceResourcesImpl$2.invoke(ServiceResourcesImpl.java:110)
    at
org.apache.tapestry5.ioc.internal.ServiceResourcesImpl$2.invoke(ServiceResourcesImpl.java:108)
    at
org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:65)
    at
org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:68)
    at
org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1063)
    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:254)
    at
org.apache.tapestry5.ioc.internal.util.InternalUtils.access$000(InternalUtils.java:86)
    at
org.apache.tapestry5.ioc.internal.util.InternalUtils$2.invoke(InternalUtils.java:303)
    at
org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:65)
    at
org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:68)
    at
org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1063)
    at
org.apache.tapestry5.ioc.internal.util.InternalUtils.calculateParameters(InternalUtils.java:307)
    at
org.apache.tapestry5.ioc.internal.util.InternalUtils.calculateParametersForMethod(InternalUtils.java:270)
    at
org.apache.tapestry5.ioc.internal.ServiceBuilderMethodInvoker.createObject(ServiceBuilderMethodInvoker.java:56)
    ... 94 more
Caused by: java.lang.RuntimeException: Error invoking constructor
com.test.ui.services.common.impl.AjaxFilter(Request, PageResponseRenderer,
Response, ComponentEventResultProcessor) (at AjaxFilter.java:26) (for
service 'ComponentEventRequestHandler'): Unable to locate a single service
assignable to type
org.apache.tapestry5.services.ComponentEventResultProcessor with marker
annotation(s) org.apache.tapestry5.services.Traditional.  All of the
following services match:
org.apache.tapestry5.internal.services.ComponentInstanceResultProcessor(Logger,
RequestPageCache, ActionRenderResponseGenerator) (at
ComponentInstanceResultProcessor.java:38) via
org.apache.tapestry5.services.TapestryModule.bind(ServiceBinder) (at
TapestryModule.java:327),
org.apache.tapestry5.services.TapestryModule.buildComponentEventResultProcessor(Map)
(at TapestryModule.java:1515).
    at
org.apache.tapestry5.ioc.internal.ConstructorServiceCreator.createObject(ConstructorServiceCreator.java:76)
    at
org.apache.tapestry5.ioc.internal.ServiceResourcesImpl$4.invoke(ServiceResourcesImpl.java:160)
    at
org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:65)
    at
org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:68)
    at
org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1063)
    at
org.apache.tapestry5.ioc.internal.ServiceResourcesImpl.autobuild(ServiceResourcesImpl.java:146)
    at
org.apache.tapestry5.ioc.internal.ServiceResourcesImpl.autobuild(ServiceResourcesImpl.java:170)
    at
com.test.ui.services.LoginAppModule.contributeComponentEventRequestHandler(LoginAppModule.java:113)
    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:127)
    ... 122 more
Caused by: org.apache.tapestry5.ioc.internal.OperationException: Unable to
locate a single service assignable to type
org.apache.tapestry5.services.ComponentEventResultProcessor with marker
annotation(s) org.apache.tapestry5.services.Traditional.  All of the
following services match:
org.apache.tapestry5.internal.services.ComponentInstanceResultProcessor(Logger,
RequestPageCache, ActionRenderResponseGenerator) (at
ComponentInstanceResultProcessor.java:38) via
org.apache.tapestry5.services.TapestryModule.bind(ServiceBinder) (at
TapestryModule.java:327),
org.apache.tapestry5.services.TapestryModule.buildComponentEventResultProcessor(Map)
(at TapestryModule.java:1515).
    at
org.apache.tapestry5.ioc.internal.OperationTrackerImpl.logAndRethrow(OperationTrackerImpl.java:102)
    at
org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:69)
    at
org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:68)
    at
org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1063)
    at
org.apache.tapestry5.ioc.internal.util.InternalUtils.calculateParameters(InternalUtils.java:307)
    at
org.apache.tapestry5.ioc.internal.util.InternalUtils.calculateParametersForConstructor(InternalUtils.java:278)
    at
org.apache.tapestry5.ioc.internal.ConstructorServiceCreator.createObject(ConstructorServiceCreator.java:56)
    ... 134 more
Caused by: java.lang.RuntimeException: Unable to locate a single service
assignable to type
org.apache.tapestry5.services.ComponentEventResultProcessor with marker
annotation(s) org.apache.tapestry5.services.Traditional.  All of the
following services match:
org.apache.tapestry5.internal.services.ComponentInstanceResultProcessor(Logger,
RequestPageCache, ActionRenderResponseGenerator) (at
ComponentInstanceResultProcessor.java:38) via
org.apache.tapestry5.services.TapestryModule.bind(ServiceBinder) (at
TapestryModule.java:327),
org.apache.tapestry5.services.TapestryModule.buildComponentEventResultProcessor(Map)
(at TapestryModule.java:1515).
    at
org.apache.tapestry5.ioc.internal.RegistryImpl.findServiceByMarkerAndType(RegistryImpl.java:885)
    at
org.apache.tapestry5.ioc.internal.RegistryImpl.getObject(RegistryImpl.java:803)
    at
org.apache.tapestry5.ioc.internal.ObjectLocatorImpl.getObject(ObjectLocatorImpl.java:50)
    at
org.apache.tapestry5.ioc.internal.util.InternalUtils.calculateInjection(InternalUtils.java:263)
    at
org.apache.tapestry5.ioc.internal.util.InternalUtils.access$000(InternalUtils.java:86)
    at
org.apache.tapestry5.ioc.internal.util.InternalUtils$2.invoke(InternalUtils.java:303)
    at
org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:65)
    ... 139 more


AjaxFilter.java

public class AjaxFilter implements ComponentEventRequestFilter {
    private final Request request;
    private final Response response;
    private final PageResponseRenderer renderer;
    @SuppressWarnings("unchecked")
    private final ComponentEventResultProcessor resultProcessor;

    public AjaxFilter(Request request,
            PageResponseRenderer renderer, Response response,
            @SuppressWarnings("unchecked")
            @Traditional ComponentEventResultProcessor resultProcessor) {
        this.request = request;
        this.renderer = renderer;
        this.response = response;
        this.resultProcessor = resultProcessor;
    }

    public void handle(ComponentEventRequestParameters parameters,
ComponentEventRequestHandler handler)
            throws IOException {
        handler.handle(parameters);

        //If markup or a redirect has already been generated, then we're
good.
        if (response.isCommitted()) {
            return;
        }

        // Otherwise, we should be operating in immediate mode. Figure out
which
        // page was selected to render.
        Page page = (Page)
request.getAttribute(InternalConstants.IMMEDIATE_RESPONSE_PAGE_ATTRIBUTE);
        if (page != null) {
            //page.getRootElement().triggerEvent(EventConstants.ACTIVATE,
new Object[0], null);
            ComponentResultProcessorWrapper callback = new
ComponentResultProcessorWrapper(resultProcessor);

            //if (parameters.getEventType().equals(EventConstants.ACTIVATE)
== false) {

page.getRootElement().triggerContextEvent(EventConstants.ACTIVATE,
parameters.getPageActivationContext(),
                            callback);
            //}

            if (callback.isAborted() == true) {
                return;
            }

            //If markup or a redirect has already been generated, then
we're good.
            if (response.isCommitted()) {
                return;
            }

            renderer.renderPageResponse(page);

            Logger logger= Logger.getLogger(Page.class);
            logger.info("immediate render: "+page.getRootElement());

            return;
        }

        throw new IllegalStateException(
                "Sanity check - neither a stream response nor a redirect
response was generated for this action request.");
    }

}

Please help me on this issue.


Thanks,
Rukmini

Reply via email to