You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@storm.apache.org by Hugo Sequeira <hu...@gmail.com> on 2014/05/17 13:05:25 UTC

Re: Topology submission exception caused by Class Not Found backtype.storm.daemon.nimbus$normalize_conf$get_merged_conf_val__3916$fn__3917

Hi,

I encountered the same problem using the 0.9.1-incubating version of Storm
with a custom 'logback.xml' file:

<?xml version="1.0" encoding="UTF-8"?>

<configuration scan="true">

<!-- BUG in Storm 0.9.1 level > INFO -->
<logger name="backtype.storm" level="ERROR" />

<logger name="org.apache.zookeeper" level="ERROR" />
<logger name="clojure.contrib" level="ERROR" />
 <logger name="com.abb.energystorm" level="DEBUG" />

<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
 <encoder class="com.colorlog.logback.ColorPatternLayoutEncoder">
<pattern>[%thread] %highlight(%-5level) %cyan(%logger{15}) - %msg
%n</pattern>
 <debugColor>36</debugColor>
</encoder>
</appender>
 <root level="INFO">
<appender-ref ref="CONSOLE" />
 </root>

</configuration>

Although, if in my custom logback.xml file, instead of:
"<logger name="backtype.storm" level="ERROR" />"

I use:

"<logger name="backtype.storm" level="INFO" />"

I don't have any warning or errors and the topology runs normally.

More clues...

Output:

[WARNING]
java.lang.reflect.InvocationTargetException
        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:601)
        at org.codehaus.mojo.exec.ExecJavaMojo$1.run(ExecJavaMojo.java:293)
        at java.lang.Thread.run(Thread.java:722)
Caused by: java.lang.RuntimeException: java.lang.ClassNotFoundException:
backtype.storm.daemon.nimbus$normalize_conf$get_merged_conf_val__3916$fn__3917
        at backtype.storm.utils.Utils.deserialize(Utils.java:88)
        at
backtype.storm.daemon.nimbus$read_storm_conf.invoke(nimbus.clj:89)
        at backtype.storm.daemon.nimbus$start_storm.invoke(nimbus.clj:724)
        at
backtype.storm.daemon.nimbus$eval3974$exec_fn__1459__auto__$reify__3987.submitTopologyWithOpts(nimbus.clj:962)
        at
backtype.storm.daemon.nimbus$eval3974$exec_fn__1459__auto__$reify__3987.submitTopology(nimbus.clj:971)
        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:601)
        at clojure.lang.Reflector.invokeMatchingMethod(Reflector.java:93)
        at clojure.lang.Reflector.invokeInstanceMethod(Reflector.java:28)
        at
backtype.storm.testing$submit_local_topology.invoke(testing.clj:253)
        at
backtype.storm.LocalCluster$_submitTopology.invoke(LocalCluster.clj:34)
        at backtype.storm.LocalCluster.submitTopology(Unknown Source)
        at
com.abb.energystorm.AggregationTopology.runLocal(AggregationTopology.java:141)
        at
com.abb.energystorm.AggregationTopology.main(AggregationTopology.java:164)
        ... 6 more
Caused by: java.lang.ClassNotFoundException:
backtype.storm.daemon.nimbus$normalize_conf$get_merged_conf_val__3916$fn__3917
        at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:355)

Maven:

 <dependency>
<groupId>org.apache.storm</groupId>
<artifactId>storm-core</artifactId>
 <version>0.9.1-incubating</version>
</dependency>
...

<build>

<sourceDirectory>src/jvm</sourceDirectory>
 <testSourceDirectory>test/jvm</testSourceDirectory>

<plugins>

 <!-- bind the maven-assembly-plugin to the package phase this will create
a jar file without the storm dependencies suitable for deployment to a
cluster. -->

<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
 <descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
 <archive>
<manifest>
<mainClass></mainClass>
 </manifest>
</archive>
</configuration>
 <executions>
<execution>
<id>make-assembly</id>
 <phase>package</phase>
<goals>
<goal>single</goal>
 </goals>
</execution>
</executions>
 </plugin>

<plugin>
<groupId>com.theoryinpractise</groupId>
 <artifactId>clojure-maven-plugin</artifactId>
<version>1.3.8</version>
<extensions>true</extensions>
 <configuration>
<sourceDirectories>
<sourceDirectory>src/clj</sourceDirectory>
 </sourceDirectories>
<includeProjectDependencies>true</includeProjectDependencies>
<includePluginDependencies>true</includePluginDependencies>
 </configuration>
<executions>
<execution>
 <id>compile</id>
<phase>compile</phase>
<goals>
 <goal>compile</goal>
</goals>
</execution>
 <execution>
<id>test</id>
<phase>test</phase>
 <goals>
<goal>test</goal>
</goals>
 </execution>
</executions>
</plugin>

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
 <configuration>
<source>1.6</source>
<target>1.6</target>
 </configuration>
</plugin>
</plugins>
 </build>