当我尝试提交拓扑时,我发现了这个
Exception in thread "main" java.lang.RuntimeException: Found multiple defaults.yaml resources. You're probably bundling the Storm jars with your topology jar.
at backtype.storm.utils.Utils.findAndReadConfigFile(Utils.java:115)
at backtype.storm.utils.Utils.readDefaultConfig(Utils.java:135)
at backtype.storm.utils.Utils.readStormConfig(Utils.java:155)
at backtype.storm.StormSubmitter.submitTopology(StormSubmitter.java:61)
at backtype.storm.StormSubmitter.submitTopology(StormSubmitter.java:40)
at trident.myproject.main(myproject.java:288)
但是这个错误在pom.xml中更新后出现了
<scope>compile</scope> instead of <scope>provided</scope>
那是因为我是一个错误
An exception occured while executing the Java class. storm/trident/state/StateFactory
这是pom文件
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifest>
<mainClass>trident.myproject</mainClass>
<!-- <mainClass>crawler.Crawler</mainClass> -->
</manifest>
</archive>
</configuration>
pom文件的第2部分
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
pom文件的第3部分
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
</plugins>
在内部LocalCluster
或通过远程运行拓扑StormSubmitter
(这是项目中的默认设置)存在根本区别。
的范围storm- core
设置为<scope>provided</scope>
默认值,因为这些类文件仍然在群集中可用。provided
告诉Maven,这些类一定不能包含在jar
汇编文件中,从而减小了jar的大小。此外,如果文件被多次提供,则可以避免冲突-
default.yaml
如果将范围更改为,则会发生冲突compile
。在这种情况下,来自的所有文件storm- core
都打包到您中jar
并提交给集群。Storm在defaults.yaml
本地和群集中的本地计算机上(即本地在工作计算机上)找到文件jar
。因此,Storm不知道使用哪个,并引发错误。
但是,provided
如果您也在本地运行,则不包括那些类文件。当然,在本地这些文件不是自动可用的,但是在启动本地JVM时必须包含在
CLASSPATH中 。由于provided
从storm-core
您排除文件得到ClassNotFound
异常。
作为每次要提交到不同环境时更改范围的一种替代方法,可以将范围设置为,compile
并在maven-jar-plugin
设置中明确包含拓扑Main /
Bolt / Spout类。此明确包含将自动从jar中排除所有其他文件,即,从中排除所有文件storm-core
。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.6</version>
<executions>
<execution>
<id>MyTopology</id>
<phase>package</phase>
<goals>
<goal>jar</goal>
</goals>
<configuration>
<includes>
<include>my/topology/package/**/*.class</include>
</includes>
</configuration>
</execution>
</executions>
</plugin>
我正在做一个项目,编译并运行我的IDE工作正常。所有资源都找到了,它正常工作。然而,当我构建我的. jar时,它能够找到一些资源,但不是全部。我的项目结构看起来是这样的: 当我运行jar文件时,它能够找到图像并使用它们,但是当我尝试访问html文件时,它不会打开。下面是jar的项目结构; 我以前从未处理过jar文件,所以这似乎是我犯的一个非常明显的错误。感谢您的帮助,谢谢! 编辑:访问找不到的文件
我正在使用ADT 我的styles.xml:
我正在libs文件夹中使用Android-support-v7-appcompat.jar lib 我的目标是使我的应用程序兼容2.3或以上
问题内容: 出了点问题,这非常令人沮丧。我在Velocity的主页上读到,当我运行webapp时,应设置一些属性。我已经做到了,但是无论我做什么,我都会遇到相同的错误。 这是我设置道具并使用速度的地方 这些文件当然保存在/ WEB-INF / mailtemplates /中。 如果我用这个我得到这个错误: 感谢您的时间:) 问题答案: 您正在使用Webapp资源加载器,该资源加载器适用于Velo
当我将Android Studio更新到最新版本后,我试图构建我的项目时,我遇到了这个错误。我得到以下错误: C:\users\yacn.gradle\caches\transforms-2\files-2.1\5502c0022567bdcff063e0fb4352b137\folioReader-0.3.3\res\layout\progress_dialog.xml:10:aapt:错误:资
我正在对这些注释使用基本集成测试: 运行测试时,出现以下错误: 该错误是由以下注释引起的:SpringBootTest和DataMongoTest,包括BootstrapWith,如下所示: 我需要继续使用SpringBootTest进行SpringBootTest。WebEnvironment。RANDOM\u端口,但我还需要来自DataMongoTest的嵌入式mongodb 有什么建议吗?