Hello,

I've created an Akka microkernel distribution (2.2.3) and having a problem 
on a launch. My application depends on a library, which uses reflection to 
instantiate a logger implementation

val c = Class.forName(logger.className).getConstructor(classOf[Class[_]], 
> classOf[TypesafeConfig])
> c.newInstance(getClass, logger.props).asInstanceOf[Logger]


I specify className in properties and implementation class is located in my 
application code. So X library through reflection instantiates a class 
which is located in my app. It works fine when I launch in from IntelliJ 
Idea. 

But when I use Akka Microkernel these jars are located in different 
folders: my app's jar is in deploy folder, and lib's jar in lib folder. I 
use default start.sh so AKKA_CLASSPATH looks like this:

AKKA_CLASSPATH="$AKKA_HOME/config:$AKKA_HOME/lib/*"

So when I run it I get

> java.lang.ClassNotFoundException: my.LoggerImpl
>
> at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
>
> at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
>
> at java.security.AccessController.doPrivileged(Native Method)
>
> at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
>
> at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
>
> at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
>
> at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
>
> at java.lang.Class.forName0(Native Method)
>
> at java.lang.Class.forName(Class.java:188)
>
> at my.LoggerFactory$class.$init$(LoggerFactory.scala:25)
>
>
If I copy my app's jar to a lib directory or change Akka classpath to 
AKKA_CLASSPATH="$AKKA_HOME/config:$AKKA_HOME/deploy/*:$AKKA_HOME/lib/*" it 
works fine so it looks like my app's jar is not in classpath. But it was 
able to find my app's launch class because it tries to start properly.

So I know that I can always edit start.sh to make it work or use external 
scripts to fix it, but would prefer something what lives in SBT. So is 
there a way to do that automatically through SBT configuration? Like edit 
AKKA_CLASSPATH or copy my app into a lib folder (I've also found a source 
code for akka.sbt.AkkaKernelPlugin and it looks like that sh file is 
hardcoded). 

Thanks, Constantine

-- 
>>>>>>>>>>      Read the docs: http://akka.io/docs/
>>>>>>>>>>      Check the FAQ: http://akka.io/faq/
>>>>>>>>>>      Search the archives: https://groups.google.com/group/akka-user
--- 
You received this message because you are subscribed to the Google Groups "Akka 
User List" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/akka-user.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to