[forge-dev] Weird error again....

Lincoln Baxter, III lincolnbaxter at gmail.com
Tue Dec 20 21:31:17 EST 2011


Ok well, once I turned on logging I was able to figure out the root cause,
but I don't know exactly why yet. I'm assuming that the stack trace is
fairly obvious. The question is. "What is the correct way to resolve it?"

Side note: I really need to add a logging toggle in Forge itself, but it
would need to go into the launcher, just haven't gotten around to it yet.
Currently, one needs to edit the build to enable logging *gulp* (Search for
"LOGGING") in the source and you'll see what I mean :/ That might be my
tomorrow (in addition to working on this.) I'm going to be cutting a Beta5
very soon because of some issues in the recent Beta4.

Dec 20, 2011 9:25:43 PM org.jboss.weld.util.ServiceLoader prepareInstance
WARNING: Could not instantiate service class
org.switchyard.component.bean.SwitchYardCDIServiceDiscovery
java.lang.NoClassDefFoundError: org/apache/log4j/Logger
    at
org.switchyard.component.bean.SwitchYardCDIServiceDiscovery.<clinit>(SwitchYardCDIServiceDiscovery.java:59)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
    at
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
    at
org.jboss.weld.util.ServiceLoader.prepareInstance(ServiceLoader.java:273)
    at org.jboss.weld.util.ServiceLoader.loadService(ServiceLoader.java:238)
    at
org.jboss.weld.util.ServiceLoader.loadServiceFile(ServiceLoader.java:194)
    at org.jboss.weld.util.ServiceLoader.reload(ServiceLoader.java:157)
    at org.jboss.weld.util.ServiceLoader.iterator(ServiceLoader.java:346)
    at
org.jboss.weld.bootstrap.ExtensionBeanDeployer.addExtensions(ExtensionBeanDeployer.java:93)
    at
org.jboss.weld.bootstrap.WeldBootstrap.startInitialization(WeldBootstrap.java:340)
    at org.jboss.weld.environment.se.Weld.initialize(Weld.java:91)
    at org.jboss.forge.shell.Bootstrap$1.run(Bootstrap.java:90)
    at java.lang.Thread.run(Thread.java:680)
Caused by: java.lang.ClassNotFoundException: org.apache.log4j.Logger from
[Module "org.switchyard.switchyard-forge-plugin:0.3.0.Final" from local
module loader @6de1dadb (roots:
/Users/lbaxter/dev/forge/modules,/Users/lbaxter/.forge/plugins)]
    at
org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:191)
    at
org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:361)
    at
org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:333)
    at
org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:310)
    at
org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:103)
    ... 15 more


On Tue, Dec 20, 2011 at 5:50 PM, Tom Cunningham <tcunning at redhat.com> wrote:

>
> Here's the steps to reproduce (there's quite a few, sorry for that, we
> should have this down to two in the next release) :
>
> Download
>
> http://downloads.jboss.org/switchyard/releases/v0.3/switchyard-installer-0.3.0.Final.zip
> unzip switchyard-installer-0.3.0.Final.zip
> cd switchyard-installer-0.3
> unzip a jboss-as-7.0.2 somewhere to install into, give that location to
> the installer
> Answer (y) that you would like to install the SwitchYard Forge plugin
> If you have FORGE_HOME set to forge-1.0.0.Beta4 or SNAPSHOT, it may
> error out on trying to write to the ~/.forge/plugins/installed.xml
> because JARs have moved around - in this case add the following line to
> installed.xml :
>
> <installed>
> <plugin name="org.switchyard.switchyard-forge-plugin" slot="0.3.0.Final"/>
> </installed>
>
> Change FORGE_HOME to forge-1.0.0.Beta4 or SNAPSHOT
>
> Edit
>
> ~/.forge/plugins/org/switchyard/switchyard-forge-plugin/0.3.0.Final/module.xml
> Change <module name="javax.enterprise.cdi-api"/>
> to <module name="javax.enterprise.api"/>
> Change <module name="org.jboss.forge.shell-api"/>
> to <module name="org.jboss.forge.shell.api"/>
>
> forge
>
>
>
>
>
> On 12/20/2011 12:44 PM, Lincoln Baxter wrote:
> > Hey Tom,
> >
> > (cc'ing dev list)
> >
> > I'm not exactly sure why this is happening. As long as the plugins are
> distributed as a single module, all resource-roots in that module should
> have classloader visibility between one another. They should also prefer
> their local classes over classes in other classloaders if there is
> duplication.
> >
> > Where can I try this out?
> >
> > ~Lincoln
> >
> > ----- Original Message -----
> > From: "Tom Cunningham"<tcunning at redhat.com>
> > To: "Lincoln Baxter"<lbaxter at redhat.com>
> > Sent: Saturday, December 17, 2011 1:24:57 AM
> > Subject: Weird error again....
> >
> > Lincoln,
> >
> > I'm seeing a weird error on SNAPSHOT again that I think I've seen
> > before.      We managed to remove the shading and got our plugins to
> > work with 1.0.0-Beta3, but when I go to SNAPSHOT I'm seeing the
> > exception at the bottom of this email when it tries to find
> > "org.switchyard.tools.forge.plugin.SwitchYardFacet".     We've put a
> > number of different plugins inside a common module, and SwitchYardFacet
> > is in switchyard.forge-plugin-0.4.0-SNAPSHOT.jar.      Can a facet in
> > one of the other plugin JARs refer to that one?     Do I need to go back
> > to shading?
> >
> > Example - this Facet is in switchyard-camel-plugin-0.4.0-SNAPSHOT.jar
> > but refers to  SwitchYardFacet which is in another resource-root :
> > switchyard-forge-plugin-0.4.0-SNAPSHOT.jar.
> >
> > import org.switchyard.tools.forge.plugin.SwitchYardFacet;
> >
> > /**
> >    * Forge facet for Camel bindings and services.
> >    */
> > @Alias("switchyard.camel")
> > @RequiresFacet({ DependencyFacet.class, PackagingFacet.class,
> > SwitchYardFacet.class })
> > @RequiresPackagingType(PackagingType.JAR)
> > public class CamelFacet extends AbstractFacet {
> >
> >
> > module.xml :
> >
> > <?xml version="1.0" encoding="UTF-8" standalone="no"?>
> > <module xmlns="urn:jboss:module:1.0"
> > name="org.switchyard.switchyard-forge-plugin" slot="0.4.0-SNAPSHOT">
> > <resources>
> > <!-- plugin dependencies that must be local to this module -->
> > <resource-root path="switchyard-forge-common-0.4.0-SNAPSHOT.jar"/>
> > <resource-root
> path="switchyard-component-common-rules-0.4.0-SNAPSHOT.jar"/>
> > <!-- core and component plugins -->
> > <resource-root path="switchyard-forge-plugin-0.4.0-SNAPSHOT.jar"/>
> > <resource-root path="switchyard-forge-bean-plugin-0.4.0-SNAPSHOT.jar"/>
> > <resource-root path="switchyard-forge-soap-plugin-0.4.0-SNAPSHOT.jar"/>
> > <resource-root path="switchyard-forge-rules-plugin-0.4.0-SNAPSHOT.jar"/>
> > <resource-root path="switchyard-forge-bpm-plugin-0.4.0-SNAPSHOT.jar"/>
> > <resource-root path="switchyard-forge-camel-plugin-0.4.0-SNAPSHOT.jar"/>
> > </resources>
> >
> >
> >
> > Error - the missing Type seems to be SwitchYardFacet :
> >
> > tcunning at localhost:tmp]$ forge
> > Listening for transport dt_socket at address: 8787
> > Plugin system disabled due to failure while loading one or more plugins;
> > try removing offending plugins with "forge remove-plugin<TAB>".
> > com.google.common.collect.ComputationException:
> > java.lang.ArrayStoreException:
> > sun.reflect.annotation.TypeNotPresentExceptionProxy
> >       at
> >
> com.google.common.collect.ComputingConcurrentHashMap.compute(ComputingConcurrentHashMap.java:218)
> >       at
> >
> com.google.common.collect.ComputingConcurrentHashMap.apply(ComputingConcurrentHashMap.java:100)
> >       at
> >
> com.google.common.collect.MapMaker$ComputingMapAdapter.get(MapMaker.java:515)
> >       at
> >
> org.jboss.weld.resources.ClassTransformer.loadClass(ClassTransformer.java:183)
> >       at
> org.jboss.weld.bootstrap.BeanDeployer.addClass(BeanDeployer.java:95)
> >       at
> > org.jboss.weld.bootstrap.BeanDeployer.addClasses(BeanDeployer.java:134)
> >       at
> >
> org.jboss.weld.bootstrap.BeanDeployment.createBeans(BeanDeployment.java:191)
> >       at
> >
> org.jboss.weld.bootstrap.WeldBootstrap.deployBeans(WeldBootstrap.java:368)
> >       at org.jboss.weld.environment.se.Weld.initialize(Weld.java:92)
> >       at org.jboss.forge.shell.Bootstrap$1.run(Bootstrap.java:87)
> >       at java.lang.Thread.run(Thread.java:662)
> > Caused by: java.lang.ArrayStoreException:
> > sun.reflect.annotation.TypeNotPresentExceptionProxy
> >       at
> >
> sun.reflect.annotation.AnnotationParser.parseClassArray(AnnotationParser.java:653)
> >       at
> >
> sun.reflect.annotation.AnnotationParser.parseArray(AnnotationParser.java:460)
> >       at
> >
> sun.reflect.annotation.AnnotationParser.parseMemberValue(AnnotationParser.java:286)
> >       at
> >
> sun.reflect.annotation.AnnotationParser.parseAnnotation(AnnotationParser.java:222)
> >       at
> >
> sun.reflect.annotation.AnnotationParser.parseAnnotations2(AnnotationParser.java:69)
> >       at
> >
> sun.reflect.annotation.AnnotationParser.parseAnnotations(AnnotationParser.java:52)
> >       at java.lang.Class.initAnnotationsIfNecessary(Class.java:3070)
> >       at java.lang.Class.getAnnotations(Class.java:3050)
> >       at
> > org.jboss.weld.introspector.jlr.WeldClassImpl.of(WeldClassImpl.java:98)
> >       at
> >
> org.jboss.weld.resources.ClassTransformer$TransformTypeToWeldClass.apply(ClassTransformer.java:54)
> >       at
> >
> org.jboss.weld.resources.ClassTransformer$TransformTypeToWeldClass.apply(ClassTransformer.java:42)
> >       at
> >
> com.google.common.collect.ComputingConcurrentHashMap.compute(ComputingConcurrentHashMap.java:206)
> >       ... 10 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/20111220/4ae1eadc/attachment-0001.html 


More information about the forge-dev mailing list