commons-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Thad Humphries <thad.humphr...@gmail.com>
Subject Re: [daemon] ClassNotFoundException though class in path
Date Tue, 19 Nov 2013 19:13:29 GMT
Thanks. That seems to have done it. And adding "-pidfile /var/run/jsvc.pid
-stop" stops it.

However now I don't see the System.out.println() that I was (lazily) using
to track MultiThread and its three SubTreads. I guess I've got to swap
those for a logger if I want to see anything, huh?


On Tue, Nov 19, 2013 at 1:40 PM, Thomas Neidhart
<thomas.neidhart@gmail.com>wrote:

> On 11/19/2013 07:35 PM, Thad Humphries wrote:
> > Different error this time (see list below).
> >
> > The failure is "2013-11-19 13:10:48.376 jsvc[18273:203] Apple AWT Java VM
> > was loaded on first thread -- can't start AWT.
> > java.lang.InternalError: Can't start the AWT because Java was started on
> > the first thread.  Make sure StartOnFirstThread is not specified in your
> > application's Info.plist or on the command line"
>
> well, I do not know what you are trying to do, but you may want to try
> out the headless mode:
>
> http://www.oracle.com/technetwork/articles/javase/headless-136834.html
>
> Thomas
>
> > However I find no "StartOnFirstThread" in the Info.plist.
> >
> > Question: MultiThread spawns 3 threads of SubThread. Could that be the
> > problem? A thread that spawns threads? MultiThread grabs AWT so
> SubThread's
> > can't (though neither user AWT classes).
> >
> > I had been using a JVM shutdown
> > hook<http://javapapers.com/core-java/jvm-shutdown-hook/>for
> > MultiThread and assigning a shutdown hook to each of the SubThread
> > instances. In my target app, I want to give the user one process to start
> > via a shell script with the subthreads (variable in number) configured in
> > an XML file. I just today started looking at Daemon thinking it might be
> a
> > better way to go, especially as I'd also like this eventually to run as a
> > Windows service (beat writing a *.BAT file).
> >
> > Debug follows:
> >
> > $ sudo ~/bin/jsvc -jvm server -debug -cp
> >
> /Users/thad/.m2/repository/commons-daemon/commons-daemon/1.0.15/commons-daemon-1.0.15.jar:/Users/thad/jdevel/MultiThreadTest/target/MultiThread-1.0-SNAPSHOT.jar
> > com.mindwrap.sample.thread.MultiThread once
> > +-- DUMPING PARSED COMMAND LINE ARGUMENTS --------------
> > | Detach:          True
> > | Show Version:    No
> > | Show Help:       No
> > | Check Only:      Disabled
> > | Stop:            False
> > | Wait:            0
> > | Run as service:  No
> > | Install service: No
> > | Remove service:  No
> > | JVM Name:        "server"
> > | Java Home:       "null"
> > | PID File:        "/var/run/jsvc.pid"
> > | User Name:       "null"
> > | Extra Options:   1
> > |
> >
> "-Djava.class.path=/Users/thad/.m2/repository/commons-daemon/commons-daemon/1.0.15/commons-daemon-1.0.15.jar:/Users/thad/jdevel/MultiThreadTest/target/MultiThread-1.0-SNAPSHOT.jar"
> > | Class Invoked:   "com.mindwrap.sample.thread.MultiThread"
> > | Class Arguments: 1
> > |   "once"
> > +-------------------------------------------------------
> > Home not specified on command line, using environment
> > Home not on command line or in environment, searching
> > Attempting to locate Java Home in
> > /System/Library/Frameworks/JavaVM.framework/Home
> > Attempting to locate VM configuration file
> > /System/Library/Frameworks/JavaVM.framework/Home/jre/lib/jvm.cfg
> > Attempting to locate VM configuration file
> > /System/Library/Frameworks/JavaVM.framework/Home/lib/jvm.cfg
> > Found VM configuration file at
> > /System/Library/Frameworks/JavaVM.framework/Home/lib/jvm.cfg
> > Found VM client definition in configuration
> > Checking library
> >
> /System/Library/Frameworks/JavaVM.framework/Home/../Libraries/libclient.dylib
> > Found VM jvm definition in configuration
> > Checking library
> >
> /System/Library/Frameworks/JavaVM.framework/Home/../Libraries/libjvm.dylib
> > Found VM hotspot definition in configuration
> > Checking library
> >
> /System/Library/Frameworks/JavaVM.framework/Home/../Libraries/libhotspot.dylib
> > Found VM server definition in configuration
> > Checking library
> >
> /System/Library/Frameworks/JavaVM.framework/Home/../Libraries/libserver.dylib
> > Found VM classic definition in configuration
> > Checking library
> >
> /System/Library/Frameworks/JavaVM.framework/Home/../Libraries/libclassic.dylib
> > Cannot locate library for VM classic (skipping)
> > Java Home located in /System/Library/Frameworks/JavaVM.framework/Home
> > +-- DUMPING JAVA HOME STRUCTURE ------------------------
> > | Java Home:       "/System/Library/Frameworks/JavaVM.framework/Home"
> > | Java VM Config.:
> > "/System/Library/Frameworks/JavaVM.framework/Home/lib/jvm.cfg"
> > | Found JVMs:      4
> > | JVM Name:        "client"
> > |
> >
>  "/System/Library/Frameworks/JavaVM.framework/Home/../Libraries/libclient.dylib"
> > | JVM Name:        "jvm"
> > |
> >
>  "/System/Library/Frameworks/JavaVM.framework/Home/../Libraries/libjvm.dylib"
> > | JVM Name:        "hotspot"
> > |
> >
>  "/System/Library/Frameworks/JavaVM.framework/Home/../Libraries/libhotspot.dylib"
> > | JVM Name:        "server"
> > |
> >
>  "/System/Library/Frameworks/JavaVM.framework/Home/../Libraries/libserver.dylib"
> > +-------------------------------------------------------
> > redirecting stdout to /dev/null and stderr to /dev/null
> > Switching umask back to 022 from 077
> >
> > thad@Thads-Mac-mini.local:~/jdevel/MultiThreadTest
> > 630 $ Using specific JVM in
> >
> /System/Library/Frameworks/JavaVM.framework/Home/../Libraries/libserver.dylib
> > Attemtping to load library
> >
> /System/Library/Frameworks/JavaVM.framework/Home/../Libraries/libserver.dylib
> > JVM library
> >
> /System/Library/Frameworks/JavaVM.framework/Home/../Libraries/libserver.dylib
> > loaded
> > Attemtping to load library
> >
> /System/Library/Frameworks/JavaVM.framework/Home/../Libraries/libverify.dylib
> > Shell library
> >
> /System/Library/Frameworks/JavaVM.framework/Home/../Libraries/libverify.dylib
> > loaded
> > JVM library entry point found (0x07433762)
> > +-- DUMPING JAVA VM CREATION ARGUMENTS -----------------
> > | Version:                       0x010004
> > | Ignore Unrecognized Arguments: False
> > | Extra options:                 1
> > |
> >
> "-Djava.class.path=/Users/thad/.m2/repository/commons-daemon/commons-daemon/1.0.15/commons-daemon-1.0.15.jar:/Users/thad/jdevel/MultiThreadTest/target/MultiThread-1.0-SNAPSHOT.jar"
> > (0x00000000)
> > +-------------------------------------------------------
> > | Internal options:              4
> > |   "-Dcommons.daemon.process.id=18273" (0x00000000)
> > |   "-Dcommons.daemon.process.parent=18272" (0x00000000)
> > |   "-Dcommons.daemon.version=1.0.15-dev" (0x00000000)
> > |   "abort" (0x06ca5f50)
> > +-------------------------------------------------------
> > Java VM created successfully
> > Class org/apache/commons/daemon/support/DaemonLoader found
> > Native methods registered
> > java_init done
> > Daemon loading...
> > 2013-11-19 13:10:48.376 jsvc[18273:203] Apple AWT Java VM was loaded on
> > first thread -- can't start AWT.
> > java.lang.InternalError: Can't start the AWT because Java was started on
> > the first thread.  Make sure StartOnFirstThread is not specified in your
> > application's Info.plist or on the command line
> > at java.lang.ClassLoader$NativeLibrary.load(Native Method)
> > at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1833)
> > at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1730)
> > at java.lang.Runtime.loadLibrary0(Runtime.java:823)
> > at java.lang.System.loadLibrary(System.java:1044)
> > at sun.security.action.LoadLibraryAction.run(LoadLibraryAction.java:50)
> > at java.security.AccessController.doPrivileged(Native Method)
> > at java.awt.Toolkit.loadLibraries(Toolkit.java:1605)
> > at java.awt.Toolkit.<clinit>(Toolkit.java:1627)
> > at sun.awt.AppContext$2.run(AppContext.java:240)
> > at sun.awt.AppContext$2.run(AppContext.java:226)
> > at java.security.AccessController.doPrivileged(Native Method)
> > at sun.awt.AppContext.initMainAppContext(AppContext.java:226)
> > at sun.awt.AppContext.access$200(AppContext.java:112)
> > at sun.awt.AppContext$3.run(AppContext.java:306)
> > at java.security.AccessController.doPrivileged(Native Method)
> > at sun.awt.AppContext.getAppContext(AppContext.java:287)
> > at com.sun.jmx.trace.Trace.out(Trace.java:180)
> > at com.sun.jmx.trace.Trace.isSelected(Trace.java:88)
> > at
> >
> com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.isTraceOn(DefaultMBeanServerInterceptor.java:1830)
> > at
> >
> com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerDynamicMBean(DefaultMBeanServerInterceptor.java:929)
> > at
> >
> com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerObject(DefaultMBeanServerInterceptor.java:916)
> > at
> >
> com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerMBean(DefaultMBeanServerInterceptor.java:312)
> > at com.sun.jmx.mbeanserver.JmxMBeanServer$2.run(JmxMBeanServer.java:1195)
> > at java.security.AccessController.doPrivileged(Native Method)
> > at
> >
> com.sun.jmx.mbeanserver.JmxMBeanServer.initialize(JmxMBeanServer.java:1193)
> > at com.sun.jmx.mbeanserver.JmxMBeanServer.<init>(JmxMBeanServer.java:225)
> > at com.sun.jmx.mbeanserver.JmxMBeanServer.<init>(JmxMBeanServer.java:170)
> > at
> >
> com.sun.jmx.mbeanserver.JmxMBeanServer.newMBeanServer(JmxMBeanServer.java:1401)
> > at
> >
> javax.management.MBeanServerBuilder.newMBeanServer(MBeanServerBuilder.java:93)
> > at
> >
> javax.management.MBeanServerFactory.newMBeanServer(MBeanServerFactory.java:311)
> > at
> >
> javax.management.MBeanServerFactory.createMBeanServer(MBeanServerFactory.java:214)
> > at
> >
> javax.management.MBeanServerFactory.createMBeanServer(MBeanServerFactory.java:175)
> > at
> >
> sun.management.ManagementFactory.createPlatformMBeanServer(ManagementFactory.java:302)
> > at
> >
> java.lang.management.ManagementFactory.getPlatformMBeanServer(ManagementFactory.java:504)
> > at com.mindwrap.sample.thread.MultiThread.<init>(MultiThread.java:26)
> > at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
> > at
> >
> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
> > at
> >
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
> > at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
> > at java.lang.Class.newInstance0(Class.java:357)
> > at java.lang.Class.newInstance(Class.java:310)
> > at
> >
> org.apache.commons.daemon.support.DaemonLoader.load(DaemonLoader.java:190)
> > Cannot load daemon
> > java_load failed
> > Service exit with a return value of 3
> >
> >
> > On Tue, Nov 19, 2013 at 12:53 PM, Thomas Neidhart <
> thomas.neidhart@gmail.com
> >> wrote:
> >
> >> On 11/19/2013 06:11 PM, Thad Humphries wrote:
> >>> I've written a class called MultiThread which implements Daemon.
> However
> >>> when I try to run it with jsvc, it fails although the class is clearly
> >>> present in my classpath. What am I not seeing? The call and debug are
> >> below:
> >>>
> >>> $ sudo ~/bin/jsvc -jvm server -debug -cp
> >>>
> >>
> ~/.m2/repository/commons-daemon/commons-daemon/1.0.15/commons-daemon-1.0.15.jar:./target/MultiThread-1.0-SNAPSHOT.jar
> >>> com.mindwrap.sample.thread.MultiThread once
> >>
> >> try using an absolute path to the MultiThread jar file.
> >>
> >> Thomas
> >>
> >>> Password:
> >>> +-- DUMPING PARSED COMMAND LINE ARGUMENTS --------------
> >>> | Detach:          True
> >>> | Show Version:    No
> >>> | Show Help:       No
> >>> | Check Only:      Disabled
> >>> | Stop:            False
> >>> | Wait:            0
> >>> | Run as service:  No
> >>> | Install service: No
> >>> | Remove service:  No
> >>> | JVM Name:        "server"
> >>> | Java Home:       "null"
> >>> | PID File:        "/var/run/jsvc.pid"
> >>> | User Name:       "null"
> >>> | Extra Options:   1
> >>> |
> >>>
> >>
> "-Djava.class.path=/Users/thad/.m2/repository/commons-daemon/commons-daemon/1.0.15/commons-daemon-1.0.15.jar:./target/MultiThread-1.0-SNAPSHOT.jar"
> >>> | Class Invoked:   "com.mindwrap.sample.thread.MultiThread"
> >>> | Class Arguments: 1
> >>> |   "once"
> >>> +-------------------------------------------------------
> >>> Home not specified on command line, using environment
> >>> Home not on command line or in environment, searching
> >>> Attempting to locate Java Home in
> >>> /System/Library/Frameworks/JavaVM.framework/Home
> >>> Attempting to locate VM configuration file
> >>> /System/Library/Frameworks/JavaVM.framework/Home/jre/lib/jvm.cfg
> >>> Attempting to locate VM configuration file
> >>> /System/Library/Frameworks/JavaVM.framework/Home/lib/jvm.cfg
> >>> Found VM configuration file at
> >>> /System/Library/Frameworks/JavaVM.framework/Home/lib/jvm.cfg
> >>> Found VM client definition in configuration
> >>> Checking library
> >>>
> >>
> /System/Library/Frameworks/JavaVM.framework/Home/../Libraries/libclient.dylib
> >>> Found VM jvm definition in configuration
> >>> Checking library
> >>>
> >>
> /System/Library/Frameworks/JavaVM.framework/Home/../Libraries/libjvm.dylib
> >>> Found VM hotspot definition in configuration
> >>> Checking library
> >>>
> >>
> /System/Library/Frameworks/JavaVM.framework/Home/../Libraries/libhotspot.dylib
> >>> Found VM server definition in configuration
> >>> Checking library
> >>>
> >>
> /System/Library/Frameworks/JavaVM.framework/Home/../Libraries/libserver.dylib
> >>> Found VM classic definition in configuration
> >>> Checking library
> >>>
> >>
> /System/Library/Frameworks/JavaVM.framework/Home/../Libraries/libclassic.dylib
> >>> Cannot locate library for VM classic (skipping)
> >>> Java Home located in /System/Library/Frameworks/JavaVM.framework/Home
> >>> +-- DUMPING JAVA HOME STRUCTURE ------------------------
> >>> | Java Home:       "/System/Library/Frameworks/JavaVM.framework/Home"
> >>> | Java VM Config.:
> >>> "/System/Library/Frameworks/JavaVM.framework/Home/lib/jvm.cfg"
> >>> | Found JVMs:      4
> >>> | JVM Name:        "client"
> >>> |
> >>>
> >>
>  "/System/Library/Frameworks/JavaVM.framework/Home/../Libraries/libclient.dylib"
> >>> | JVM Name:        "jvm"
> >>> |
> >>>
> >>
>  "/System/Library/Frameworks/JavaVM.framework/Home/../Libraries/libjvm.dylib"
> >>> | JVM Name:        "hotspot"
> >>> |
> >>>
> >>
>  "/System/Library/Frameworks/JavaVM.framework/Home/../Libraries/libhotspot.dylib"
> >>> | JVM Name:        "server"
> >>> |
> >>>
> >>
>  "/System/Library/Frameworks/JavaVM.framework/Home/../Libraries/libserver.dylib"
> >>> +-------------------------------------------------------
> >>> redirecting stdout to /dev/null and stderr to /dev/null
> >>> Switching umask back to 022 from 077
> >>> Using specific JVM in
> >>>
> >>
> /System/Library/Frameworks/JavaVM.framework/Home/../Libraries/libserver.dylib
> >>> Attemtping to load library
> >>>
> >>
> /System/Library/Frameworks/JavaVM.framework/Home/../Libraries/libserver.dylib
> >>>
> >>> thad@Thads-Mac-mini.local:~/jdevel/MultiThreadTest
> >>> 621 $ JVM library
> >>>
> >>
> /System/Library/Frameworks/JavaVM.framework/Home/../Libraries/libserver.dylib
> >>> loaded
> >>> Attemtping to load library
> >>>
> >>
> /System/Library/Frameworks/JavaVM.framework/Home/../Libraries/libverify.dylib
> >>> Shell library
> >>>
> >>
> /System/Library/Frameworks/JavaVM.framework/Home/../Libraries/libverify.dylib
> >>> loaded
> >>> JVM library entry point found (0x09E34762)
> >>> +-- DUMPING JAVA VM CREATION ARGUMENTS -----------------
> >>> | Version:                       0x010004
> >>> | Ignore Unrecognized Arguments: False
> >>> | Extra options:                 1
> >>> |
> >>>
> >>
> "-Djava.class.path=/Users/thad/.m2/repository/commons-daemon/commons-daemon/1.0.15/commons-daemon-1.0.15.jar:./target/MultiThread-1.0-SNAPSHOT.jar"
> >>> (0x00000000)
> >>> +-------------------------------------------------------
> >>> | Internal options:              4
> >>> |   "-Dcommons.daemon.process.id=17848" (0x00000000)
> >>> |   "-Dcommons.daemon.process.parent=17847" (0x00000000)
> >>> |   "-Dcommons.daemon.version=1.0.15-dev" (0x00000000)
> >>> |   "abort" (0x096a6f50)
> >>> +-------------------------------------------------------
> >>> Java VM created successfully
> >>> Class org/apache/commons/daemon/support/DaemonLoader found
> >>> Native methods registered
> >>> java_init done
> >>> Daemon loading...
> >>> java.lang.ClassNotFoundException:
> com.mindwrap.sample.thread.MultiThread
> >>> at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
> >>> at java.security.AccessController.doPrivileged(Native Method)
> >>> at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
> >>> at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
> >>> at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
> >>> at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
> >>> at
> >>>
> >>
> org.apache.commons.daemon.support.DaemonLoader.load(DaemonLoader.java:151)
> >>> Cannot load daemon
> >>> java_load failed
> >>> Service exit with a return value of 3
> >>>
> >>>
> >>> As you can see, the class is in the jar:
> >>>
> >>> $ jar tvf target/MultiThread-1.0-SNAPSHOT.jar
> >>>      0 Tue Nov 19 12:08:06 EST 2013 META-INF/
> >>>    168 Tue Nov 19 12:08:04 EST 2013 META-INF/MANIFEST.MF
> >>>      0 Tue Nov 19 12:08:04 EST 2013 com/
> >>>      0 Tue Nov 19 12:08:04 EST 2013 com/mindwrap/
> >>>      0 Tue Nov 19 12:08:04 EST 2013 com/mindwrap/sample/
> >>>      0 Tue Nov 19 12:08:04 EST 2013 com/mindwrap/sample/thread/
> >>>   2255 Tue Nov 19 12:08:04 EST 2013
> >>> com/mindwrap/sample/thread/MultiThread$ShutdownHook.class
> >>>   4659 Tue Nov 19 12:08:04 EST 2013
> >>> com/mindwrap/sample/thread/MultiThread.class
> >>>    253 Tue Nov 19 12:08:04 EST 2013
> >>> com/mindwrap/sample/thread/ShutdownHookTest$1.class
> >>>    951 Tue Nov 19 12:08:04 EST 2013
> >>> com/mindwrap/sample/thread/ShutdownHookTest$JVMShutdownHook.class
> >>>   1191 Tue Nov 19 12:08:04 EST 2013
> >>> com/mindwrap/sample/thread/ShutdownHookTest.class
> >>>   2053 Tue Nov 19 12:08:04 EST 2013
> >>> com/mindwrap/sample/thread/SubThread.class
> >>>    282 Tue Nov 19 12:08:04 EST 2013
> >>> com/mindwrap/sample/thread/SubThreadMBean.class
> >>>      0 Tue Nov 19 12:08:06 EST 2013 META-INF/maven/
> >>>      0 Tue Nov 19 12:08:06 EST 2013
> >>> META-INF/maven/com.mindwrap.sample.thread/
> >>>      0 Tue Nov 19 12:08:06 EST 2013
> >>> META-INF/maven/com.mindwrap.sample.thread/MultiThread/
> >>>   1679 Tue Nov 19 12:07:52 EST 2013
> >>> META-INF/maven/com.mindwrap.sample.thread/MultiThread/pom.xml
> >>>    129 Tue Nov 19 12:08:06 EST 2013
> >>> META-INF/maven/com.mindwrap.sample.thread/MultiThread/pom.properties
> >>>
> >>>
> >>>
> >>
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: user-unsubscribe@commons.apache.org
> >> For additional commands, e-mail: user-help@commons.apache.org
> >>
> >>
> >
> >
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@commons.apache.org
> For additional commands, e-mail: user-help@commons.apache.org
>
>


-- 
"Hell hath no limits, nor is circumscrib'd In one self-place; but where we
are is hell, And where hell is, there must we ever be" --Christopher
Marlowe, *Doctor Faustus* (v, 121-24)

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message