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

Lincoln Baxter, III lincolnbaxter at gmail.com
Thu Jun 16 22:16:33 EDT 2011


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"
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/forge-dev/attachments/20110616/f8f2e8c9/attachment-0001.html 


More information about the forge-dev mailing list