[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