java - 使用 runnable jar 运行 akka

标签 java maven netbeans jar akka

我正在尝试使用 NetBeans 在 java maven 项目中实现 akka。当我从 NetBeans 运行它时它运行良好,但是当我从 NetBeans 运行可运行的 jar 时,它会产生错误。

Exception in thread "main" com.typesafe.config.ConfigException$Missing: No configuration setting found for key 'akka.remote.log-received-messages'

当我在配置中添加 log-received-message 时,它​​要求另一个配置。这是我用来生成 jar 文件的插件。

<plugin>
        <artifactId>maven-assembly-plugin</artifactId>
</plugin>

我的依赖是

    <dependency>
        <groupId>com.typesafe.akka</groupId> 
        <artifactId>akka-actor_2.10</artifactId> 
        <version>2.3.7</version> 
    </dependency>
    <dependency>
        <groupId>com.typesafe.akka</groupId>
        <artifactId>akka-remote_2.10</artifactId>
        <version>2.3.7</version>
    </dependency>

akka的配置是

akka10300{
akka{
    actor{provider = "akka.remote.RemoteActorRefProvider"}
    remote {
    enabled-transports = ["akka.remote.netty.tcp"]
        netty.tcp {
            hostname="127.0.0.1"
            port=10300
        }
    }
}
}

最佳答案

http://doc.akka.io/docs/akka/snapshot/general/configuration.html 上有关于从“ fat jar 子”运行 Akka 的警告.问题在于存在多个 reference.conf 配置文件,Maven 程序集或着色器插件的默认行为是用较晚的实例覆盖配置文件的较早实例。

要解决此问题,建议的方法是使用 Maven 阴影插件生成可执行 jar 并将其配置为将所有 resource.conf 文件附加到单个文件中而不是覆盖。建议的 Maven 阴影插件配置如下所示:

<plugin>
 <groupId>org.apache.maven.plugins</groupId>
 <artifactId>maven-shade-plugin</artifactId>
 <version>1.5</version>
 <executions>
  <execution>
   <phase>package</phase>
   <goals>
    <goal>shade</goal>
   </goals>
   <configuration>
    <shadedArtifactAttached>true</shadedArtifactAttached>
    <shadedClassifierName>allinone</shadedClassifierName>
    <artifactSet>
     <includes>
      <include>*:*</include>
     </includes>
    </artifactSet>
    <transformers>
      <transformer
       implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
       <resource>reference.conf</resource>
      </transformer>
      <transformer
       implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
       <manifestEntries>
        <Main-Class>akka.Main</Main-Class>
       </manifestEntries>
      </transformer>
    </transformers>
   </configuration>
  </execution>
 </executions>
</plugin>

关于java - 使用 runnable jar 运行 akka,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28555174/

相关文章:

android - 找不到与文件模式 "**/target/*.apk"匹配的 Artifact

java - Netbeans GUI 不显示

java - 使用 servlet 登录,而不是验证->重定向方式

Java 网络启动 : how to vary heap memory request in jnlp depending on what client can manage?

java - 数组索引越界异常

maven - Cereal 和芝麻

java - Tomcat服务器使用Servlet时显示404错误

java - 如何将 JPanel 添加到 JFrame

php - 网络 bean 。连接到托管数据库

java - 如何用Java连接MySQL?