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>