[forge-dev] Seam render issue with @include in scaffolding

Ronald van Kuijk rvkuijk at gmail.com
Fri Jun 17 03:21:00 EDT 2011


Ah, ok. I was already looking in this direction after creating a
testclass that eventually demonstrated the same problem and seeing the
test case in seam-render. I'll try this myself (some experience withe
the seam2 core, not the weld internals) over the weekend and get back
to you after that. Have a good conference.

Cheers,

Ronald

2011/6/17, Lincoln Baxter, III <lincolnbaxter at gmail.com>:
> Ahhh, yes. I know why this is happening. We need to register a custom
> BeanManagerProvider with the ServiceProvider API. I'll take a look at this
> as soon as possible. But it might be a few days since I am getting ready for
> a conference.
>
> If you wanted to try to do this yourself, in a @Singleton or
> @ApplicationScoped bean, we can implement the BeanManagerLocator interface
> and register it. In order to obtain an instance of the BeanManager, we'd
> need a class like this:
>
> It would have to be registered by creating a service file. This file needs
> to contain the fully qualified class name of the provider, for instance:
>
> -------------------------------------------------
> *
> src/main/resources/META-INF/services/org.jboss.seam.solder.beanManager.BeanManagerProvider
> *
> org.jboss.seam.forge.shell.ObserverBeanManagerLocator
>
> -------------------------------------------------
> public class ObserverBeanManagerLocator implements BeanManagerProvider
> {
>   private BeanManager manager;
>
>   public void onStartup(@Observes Startup event, BeanManager manager)
>   {
>      this.manager = manager;
>   }
>
>   public BeanManager getBeanManager()
>   {
>      return manager;
>   }
>
> }
> -------------------------------------------------
>
> On Thu, Jun 16, 2011 at 7:27 PM, Ronald van Kuijk <rvkuijk at gmail.com> wrote:
>
>> I'm making nice progress with extending the scaffolding of webpages from
>> entities. To keep the different pages for different JSF component
>> frameworks
>> as short as possible I'm thinking of working with mvel/seam-render
>> @include
>> templates.
>>
>> Just adding a small line like
>>
>> @include{'rf-colum.mv'}
>>
>> results in the error below when starting seam-forge
>>
>> It does not even make a difference whether the file even exists or not.
>> I'm
>> not sure if this is a seam-render issue or a seam-forge issue, So therefor
>> I
>> post the question here. I have debugged the code and have seen that the
>> *BeanManagerProviders do indeed not give back a BeanManager.
>>
>> Any clues?
>>
>> Cheers,
>>
>> Ronald
>>
>> [ERROR] Failed to execute goal
>> org.codehaus.mojo:exec-maven-plugin:1.1.1:java (default-cli) on project
>> forge-distribution: An exception occured while executing the Java class.
>> [Error: Failed to locate BeanManager using any of these providers:
>> org.jboss.seam.solder.beanManager.DefaultJndiBeanManagerProvider(11),
>> org.jboss.seam.solder.beanManager.ServletContainerJndiBeanManagerProvider(10)]
>> [ERROR] [Near : {... @include{'pf.mv'} ....}]
>> [ERROR] ^
>> [ERROR] [Line: 11, Column: 0]
>> [ERROR] -> [Help 1]
>> org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute
>> goal org.codehaus.mojo:exec-maven-plugin:1.1.1:java (default-cli) on
>> project
>> forge-distribution: An exception occured while executing the Java class.
>> [Error: Failed to locate BeanManager using any of these providers:
>> org.jboss.seam.solder.beanManager.DefaultJndiBeanManagerProvider(11),
>> org.jboss.seam.solder.beanManager.ServletContainerJndiBeanManagerProvider(10)]
>> [Near : {... @include{'pf.mv'} ....}]
>>                     ^
>> [Line: 11, Column: 0]
>>     at
>> org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:217)
>>     at
>> org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
>>     at
>> org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
>>     at
>> org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
>>     at
>> org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
>>     at
>> org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
>>     at
>> org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
>>     at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:319)
>>     at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
>>     at org.apache.maven.cli.MavenCli.execute(MavenCli.java:534)
>>     at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)
>>     at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
>>     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>     at
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>>     at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>     at java.lang.reflect.Method.invoke(Method.java:616)
>>     at
>> org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
>>     at
>> org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
>>     at
>> org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
>>     at
>> org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
>> Caused by: org.apache.maven.plugin.MojoExecutionException: An exception
>> occured while executing the Java class. [Error: Failed to locate
>> BeanManager
>> using any of these providers:
>> org.jboss.seam.solder.beanManager.DefaultJndiBeanManagerProvider(11),
>> org.jboss.seam.solder.beanManager.ServletContainerJndiBeanManagerProvider(10)]
>> [Near : {... @include{'pf.mv'} ....}]
>>                     ^
>> [Line: 11, Column: 0]
>>     at org.codehaus.mojo.exec.ExecJavaMojo.execute(ExecJavaMojo.java:338)
>>     at
>> org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:107)
>>     at
>> org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
>>     ... 19 more
>> Caused by: [Error: Failed to locate BeanManager using any of these
>> providers:
>> org.jboss.seam.solder.beanManager.DefaultJndiBeanManagerProvider(11),
>> org.jboss.seam.solder.beanManager.ServletContainerJndiBeanManagerProvider(10)]
>> [Near : {... @include{'pf.mv'} ....}]
>>                     ^
>> [Line: 11, Column: 0]
>>     at
>> org.jboss.seam.render.template.compiler.CustomTemplateCompiler.compileFrom(CustomTemplateCompiler.java:295)
>>     at
>> org.jboss.seam.render.template.compiler.CustomTemplateCompiler.compile(CustomTemplateCompiler.java:88)
>>     at
>> org.jboss.seam.render.template.compiler.CustomTemplateCompiler.compileTemplate(CustomTemplateCompiler.java:493)
>>     at
>> org.jboss.seam.render.template.CompiledTemplateResource.<init>(CompiledTemplateResource.java:99)
>>     at
>> org.jboss.seam.render.TemplateCompiler.compile(TemplateCompiler.java:140)
>>     at
>> org.jboss.seam.render.TemplateCompiler.compile(TemplateCompiler.java:129)
>>     at
>> org.jboss.seam.render.TemplateCompiler.compile(TemplateCompiler.java:107)
>>     at
>> org.metawidget.forge.MetawidgetScaffold.<init>(MetawidgetScaffold.java:122)
>>     at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
>> Method)
>>     at
>> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
>>     at
>> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
>>     at java.lang.reflect.Constructor.newInstance(Constructor.java:532)
>>     at
>> org.jboss.weld.introspector.jlr.WeldConstructorImpl.newInstance(WeldConstructorImpl.java:239)
>>     at
>> org.jboss.weld.injection.ConstructorInjectionPoint.newInstance(ConstructorInjectionPoint.java:134)
>>     at
>> org.jboss.weld.bean.ManagedBean.createInstance(ManagedBean.java:385)
>>     at
>> org.jboss.weld.bean.ManagedBean$ManagedBeanInjectionTarget.produce(ManagedBean.java:234)
>>     at org.jboss.weld.bean.ManagedBean.create(ManagedBean.java:338)
>>     at
>> org.jboss.weld.context.unbound.DependentContextImpl.get(DependentContextImpl.java:67)
>>     at
>> org.jboss.weld.manager.BeanManagerImpl.getReference(BeanManagerImpl.java:690)
>>     at
>> org.jboss.weld.manager.BeanManagerImpl.getReference(BeanManagerImpl.java:728)
>>     at
>> org.jboss.weld.bean.builtin.InstanceImpl.iterator(InstanceImpl.java:147)
>>     at
>> org.jboss.forge.project.services.FacetFactory.getFacets(FacetFactory.java:59)
>>     at
>> org.jboss.forge.project.services.ProjectFactory.registerFacets(ProjectFactory.java:184)
>>     at
>> org.jboss.forge.project.services.ProjectFactory.findProjectRecursively(ProjectFactory.java:129)
>>     at
>> org.jboss.forge.shell.project.ProjectInitializer.doInit(ProjectInitializer.java:87)
>>     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>     at
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>>     at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>     at java.lang.reflect.Method.invoke(Method.java:616)
>>     at
>> org.jboss.weld.util.reflection.SecureReflections$13.work(SecureReflections.java:305)
>>     at
>> org.jboss.weld.util.reflection.SecureReflectionAccess.run(SecureReflectionAccess.java:54)
>>     at
>> org.jboss.weld.util.reflection.SecureReflectionAccess.runAsInvocation(SecureReflectionAccess.java:163)
>>     at
>> org.jboss.weld.util.reflection.SecureReflections.invoke(SecureReflections.java:299)
>>     at
>> org.jboss.weld.introspector.jlr.WeldMethodImpl.invokeOnInstance(WeldMethodImpl.java:188)
>>     at
>> org.jboss.weld.introspector.ForwardingWeldMethod.invokeOnInstance(ForwardingWeldMethod.java:59)
>>     at
>> org.jboss.weld.injection.MethodInjectionPoint.invokeOnInstanceWithSpecialValue(MethodInjectionPoint.java:198)
>>     at
>> org.jboss.weld.event.ObserverMethodImpl.sendEvent(ObserverMethodImpl.java:270)
>>     at
>> org.jboss.weld.event.ObserverMethodImpl.sendEvent(ObserverMethodImpl.java:253)
>>     at
>> org.jboss.weld.event.ObserverMethodImpl.notify(ObserverMethodImpl.java:222)
>>     at
>> org.jboss.weld.manager.BeanManagerImpl.notifyObservers(BeanManagerImpl.java:632)
>>     at
>> org.jboss.weld.manager.BeanManagerImpl.fireEvent(BeanManagerImpl.java:625)
>>     at org.jboss.weld.event.EventImpl.fire(EventImpl.java:75)
>>     at
>> org.jboss.forge.shell.project.CurrentProject.setCurrentResource(CurrentProject.java:91)
>>     at org.jboss.forge.shell.ShellImpl.init(ShellImpl.java:317)
>>     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>     at
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>>     at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>     at java.lang.reflect.Method.invoke(Method.java:616)
>>     at
>> org.jboss.weld.bean.proxy.AbstractBeanInstance.invoke(AbstractBeanInstance.java:48)
>>     at
>> org.jboss.weld.bean.proxy.ProxyMethodHandler.invoke(ProxyMethodHandler.java:125)
>>     at org.jboss.forge.shell.org
>> $jboss$weld$bean-classpath-ManagedBean-org$jboss$forge$shell$ShellImpl[@javax$enterprise$context$ApplicationScoped()]{org$jboss$forge$shell$ShellImpl$commandHolder[@javax$inject$Inject()]$org$jboss$forge$shell$ShellImpl$environment[@javax$inject$Inject()]$org$jboss$forge$shell$ShellImpl$fshRuntime[@javax$inject$Inject()]$org$jboss$forge$shell$ShellImpl$manager[@javax$inject$Inject()]$org$jboss$forge$shell$ShellImpl$parameters[@javax$inject$Inject()@org$jboss$weld$environment$se$bindings$Parameters()]$org$jboss$forge$shell$ShellImpl$postStartup[@javax$inject$Inject()]$org$jboss$forge$shell$ShellImpl$projectContext[@javax$inject$Inject()]$org$jboss$forge$shell$ShellImpl$promptTypeConverter[@javax$inject$Inject()]$org$jboss$forge$shell$ShellImpl$resourceFactory[@javax$inject$Inject()]$org$jboss$forge$shell$ShellImpl$shellConfig[@javax$inject$Inject()]$org$jboss$forge$shell$ShellImpl$shutdown[@javax$inject$Inject()]$org$jboss$forge$shell$ShellImpl$doShell(org$jboss$forge$shell$events$AcceptUserInput[@javax$enterprise$event$Observes(during=IN_PROGRESS,notifyObserver=ALWAYS)])$org$jboss$forge$shell$ShellImpl$init(org$jboss$forge$shell$events$Startup[@javax$enterprise$event$Observes(during=IN_PROGRESS,notifyObserver=ALWAYS)],org$jboss$forge$shell$completer$PluginCommandCompleter)$org$jboss$forge$shell$ShellImpl$teardown(org$jboss$forge$shell$events$Shutdown[@javax$enterprise$event$Observes(during=IN_PROGRESS,notifyObserver=ALWAYS)],javax$enterprise$event$Event<org$jboss$forge$shell$events$PreShutdown>)$}_$$_WeldClientProxy.init(org$jboss$weld$bean-classpath-ManagedBean-org$jboss$forge$shell$ShellImpl[@javax$enterprise$context$ApplicationScoped()]{org$jboss$forge$shell$ShellImpl$commandHolder[@javax$inject$Inject()]$org$jboss$forge$shell$ShellImpl$environment[@javax$inject$Inject()]$org$jboss$forge$shell$ShellImpl$fshRuntime[@javax$inject$Inject()]$org$jboss$forge$shell$ShellImpl$manager[@javax$inject$Inject()]$org$jboss$forge$shell$ShellImpl$parameters[@javax$inject$Inject()@org$jboss$weld$environment$se$bindings$Parameters()]$org$jboss$forge$shell$ShellImpl$postStartup[@javax$inject$Inject()]$org$jboss$forge$shell$ShellImpl$projectContext[@javax$inject$Inject()]$org$jboss$forge$shell$ShellImpl$promptTypeConverter[@javax$inject$Inject()]$org$jboss$forge$shell$ShellImpl$resourceFactory[@javax$inject$Inject()]$org$jboss$forge$shell$ShellImpl$shellConfig[@javax$inject$Inject()]$org$jboss$forge$shell$ShellImpl$shutdown[@javax$inject$Inject()]$org$jboss$forge$shell$ShellImpl$doShell(org$jboss$forge$shell$events$AcceptUserInput[@javax$enterprise$event$Observes(during=IN_PROGRESS,notifyObserver=ALWAYS)])$org$jboss$forge$shell$ShellImpl$init(org$jboss$forge$shell$events$Startup[@javax$enterprise$event$Observes(during=IN_PROGRESS,notifyObserver=ALWAYS)],org$jboss$forge$shell$completer$PluginCommandCompleter)$org$jboss$forge$shell$ShellImpl$teardown(org$jboss$forge$shell$events$Shutdown[@javax$enterprise$event$Observes(during=IN_PROGRESS,notifyObserver=ALWAYS)],javax$enterprise$event$Event<org$jboss$forge$shell$events$PreShutdown>)$}_$$_WeldClientProxy.java)
>>     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>     at
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>>     at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>     at java.lang.reflect.Method.invoke(Method.java:616)
>>     at
>> org.jboss.weld.util.reflection.SecureReflections$13.work(SecureReflections.java:305)
>>     at
>> org.jboss.weld.util.reflection.SecureReflectionAccess.run(SecureReflectionAccess.java:54)
>>     at
>> org.jboss.weld.util.reflection.SecureReflectionAccess.runAsInvocation(SecureReflectionAccess.java:163)
>>     at
>> org.jboss.weld.util.reflection.SecureReflections.invoke(SecureReflections.java:299)
>>     at
>> org.jboss.weld.introspector.jlr.WeldMethodImpl.invokeOnInstance(WeldMethodImpl.java:188)
>>     at
>> org.jboss.weld.introspector.ForwardingWeldMethod.invokeOnInstance(ForwardingWeldMethod.java:59)
>>     at
>> org.jboss.weld.injection.MethodInjectionPoint.invokeOnInstanceWithSpecialValue(MethodInjectionPoint.java:198)
>>     at
>> org.jboss.weld.event.ObserverMethodImpl.sendEvent(ObserverMethodImpl.java:270)
>>     at
>> org.jboss.weld.event.ObserverMethodImpl.sendEvent(ObserverMethodImpl.java:253)
>>     at
>> org.jboss.weld.event.ObserverMethodImpl.notify(ObserverMethodImpl.java:222)
>>     at
>> org.jboss.weld.manager.BeanManagerImpl.notifyObservers(BeanManagerImpl.java:632)
>>     at
>> org.jboss.weld.manager.BeanManagerImpl.fireEvent(BeanManagerImpl.java:619)
>>     at
>> org.jboss.weld.manager.BeanManagerImpl.fireEvent(BeanManagerImpl.java:613)
>>     at org.jboss.forge.shell.Bootstrap$2.run(Bootstrap.java:92)
>>     at java.lang.Thread.run(Thread.java:636)
>> Caused by:
>> org.jboss.seam.solder.beanManager.BeanManagerUnavailableException: Failed
>> to
>> locate BeanManager using any of these providers:
>> org.jboss.seam.solder.beanManager.DefaultJndiBeanManagerProvider(11),
>> org.jboss.seam.solder.beanManager.ServletContainerJndiBeanManagerProvider(10)
>>     at
>> org.jboss.seam.solder.beanManager.BeanManagerLocator.getBeanManager(BeanManagerLocator.java:91)
>>     at
>> org.jboss.seam.render.template.nodes.ContextualNode.init(ContextualNode.java:58)
>>     at
>> org.jboss.seam.render.template.nodes.ContextualNode.<init>(ContextualNode.java:40)
>>     at
>> org.jboss.seam.render.template.nodes.IncludeNode.<init>(IncludeNode.java:35)
>>     at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
>> Method)
>>     at
>> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
>>     at
>> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
>>     at java.lang.reflect.Constructor.newInstance(Constructor.java:532)
>>     at java.lang.Class.newInstance0(Class.java:372)
>>     at java.lang.Class.newInstance(Class.java:325)
>>     at
>> org.jboss.seam.render.template.compiler.CustomTemplateCompiler.compileFrom(CustomTemplateCompiler.java:257)
>>     ... 69 more
>>
>>
>> _______________________________________________
>> forge-dev mailing list
>> forge-dev at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/forge-dev
>>
>>
>
>
> --
> Lincoln Baxter, III
> http://ocpsoft.com
> http://scrumshark.com
> "Keep it Simple"
>



More information about the forge-dev mailing list