I'm trying to implement akka in java maven project with NetBeans. It runs fine when i run it from NetBeans but when I run the runnable jar from NetBeans, it generate error.
Exception in thread "main" com.typesafe.config.ConfigException$Missing: No configuration setting found for key 'akka.remote.log-received-messages'
When I add log-received-message in the configuration, it ask for another configuration. This is the plugin that i used to generate the jar file.
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
</plugin>
And my dependency are
<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>
The configuration for akka is
akka10300{
akka{
actor{provider = "akka.remote.RemoteActorRefProvider"}
remote {
enabled-transports = ["akka.remote.netty.tcp"]
netty.tcp {
hostname="127.0.0.1"
port=10300
}
}
}
}
There is a warning about running Akka from a "fat jar" at http://doc.akka.io/docs/akka/snapshot/general/configuration.html. The issue is that there are multiple reference.conf
configuration files, and the default behaviour of the Maven assembly or shade plugins is to overwrite earlier instances of the configuration file with later instances.
To fix this, the suggested approach is to use the Maven shade plugin to generate your executable jar and configure it to append all resource.conf
files into a single file instead of overwriting. The suggested Maven shade plugin configuration looks like:
<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>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With