[Freeswitch-users] mod_java - java.lang.NoClassDefFoundError

Damjan Jovanovic damjan at ecntelecoms.com
Sun Nov 25 22:35:41 PST 2007


X-ECN Telecoms-MailScanner-Information: Contact ECN Telecoms
X-ECN Telecoms-MailScanner: Found to be clean
X-ECN Telecoms-MailScanner-SpamCheck: not spam, SpamAssassin (not cached,
	score=-97.488, required 6, AWL -0.22, FH_HOST_ALMOST_IP 1.75,
	RCVD_IN_SORBS_DUL 0.88, RDNS_DYNAMIC 0.10,
	USER_IN_WHITELIST -100.00)
X-ECN Telecoms-MailScanner-From: damjan at ecntelecoms.com
X-Spam-Status: No

On Sat, 2007-11-24 at 19:46 -0800, jonathan augenstine wrote:
> I am encountering the following error when I try to use the mod_java
> interface:
> 
> 2007-11-24 18:38:07 [NOTICE] switch_core_state_machine.c:134
> switch_core_standard_on_execute() Execute java(fs_ivr arg1 arg2 arg3)
> Exception in thread "Thread-0" java.lang.NoClassDefFoundError:
> org/freeswitch/Launcher
> 
> My dialplan has the following entry:
> 
>  <extension name="Validation_Demo">
>     <condition field="destination_number" expression="1234"> 
>       <action application="java" data="fs_ivr arg1 arg2 arg3"/>
>     </condition>
>   </extension>

I'm assuming fs_ivr is a class without a package and outside any jar.

> java.conf.xml has the following entry:
> 
>  <options>
>     <!-- Your class path (make sure freeswitch.jar is on it) -->
>     <option
> value="-Djava.class.path=/usr/local/freeswitch/scripts/freeswitch.jar"/>

Make sure you have a /usr/local/freeswitch/scripts/freeswitch.jar

>     <option
> value="-Djava.class.path=/usr/local/freeswitch/scripts/fs_ivr"/> 

This means you have a directory /usr/local/freeswitch/scripts/fs_ivr
containing fs_ivr.class. Also I'm not sure if you can have multiple
-Djava.class.paths like this (that could be why it isn't finding
org/freeswitch/Launcher), you might have to have one colon (:) separated
list of paths. This is also why I prefer having JARs by the way, you
don't have to set the classpath before running freeswitch and reload
mod_java if it changes, and if you overwrite the JAR with a newer
version it starts using the newer version for calls made from then on
(no dialplan editing required :-).

>     <!-- Enable remote debugging -->
>     <option
> value="-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=MailScanner warning: numerical links are often malicious: 127.0.0.1:8000"/>
>   </options> 
> 
> I have also tried setting the class path to freeswitch.jar in the
> CLASSPATH environment variable.
> 
> export CLASSPATH=/usr/local/freeswitch/scripts/freeswitch.jar.

The CLASSPATH environment variable is ignored.

> None of the permutations have met with success.  Can anyone spot the
> error I am making?  Any ideas on what to try? 

Sorry it's so confusing, I'll document it better when you get it
working.

> Jonathan
> 

Damjan






More information about the FreeSWITCH-users mailing list