Re: Question about setting CATALINA_OPTS when starting Tomcat using a Windows Service in Tomcat 7.0.54
Le ven. 3 août 2018 à 12:03, Louis Zipes a écrit : > Good catch!! I still had 'd' in front of my lines so once I removed those > JMX starts up using Management.properties file but as you mentioned it > doesn't really change the behavior at all and the Service still doesn't > stop cleanly. So is there a way to force the JMX to use CATALINA_OPTS in > this file. Something like SET CATALINA_OPTS = 'JMX settings'? > > That is if the JMX running on CATALINA_OPTS is indeed the answer. > Basically, trying to mimic the setenv file that is not used by the Window > Service. > > -Original Message- > From: Christopher Schultz [mailto:ch...@christopherschultz.net] > Sent: Friday, August 03, 2018 11:52 AM > To: users@tomcat.apache.org > Subject: Re: Question about setting CATALINA_OPTS when starting Tomcat > using a Windows Service in Tomcat 7.0.54 > > - - - external message, proceed with caution - - - > > > -BEGIN PGP SIGNED MESSAGE- > Hash: SHA256 > > Louis, > > On 8/3/18 11:32 AM, Louis Zipes wrote: > > Hi Daniel, I tried your suggestion and while I think it is now > > acknowledging the existence of the management.properties file > > (Windows Service wouldn't start if I purposely misspelled > > 'managemenX.properties') but it doesn't seem to be actually working > > (JMX can't connect). > > > > What I did: > > > > I created a copy of an existing logging.properties file already in > > the CONF folder, renamed it management.properties, and removed all > > contents of it and put in: > > Just FYI, there is nothing magical about an existing properties file. > It's just a text file with name=value items in it. > > > Dcom.sun.management.jmxremote > > Dcom.sun.management.jmxremote.port=8008 > > Dcom.sun.management.jmxremote.authenticate=false > > Dcom.sun.management.jmxremote.ssl=false > > Djava.rmi.server.hostname= > > I don't think you want those leading D characters. Is that a > copy/paste error? > > > -Dcom.sun.management.config.file= C:\ > structure>\Tomcat\conf\management.properties > > Daniel usually knows what he's talking about, but I'll be surprised if > Tomcat doesn't fail the same way after making these changes... you are > just moving the configuration from one place (multiple system > properties) to another (one system property pointing to another file > of properties). > > - -chris > As Christopher said, you this file management.properties can be named whatever abc.efg would do the same and in that file you have attribute=value pairs, everything that concerns the com.sun.management.xxx properties. Then you pass the name of that file as a single option to the JVM with -Dcom.sun.management.config.file=${catalina.base}/conf/abc.efg and remove everything else from the CATALINA_OPTS which is in the configuration file. I strongly suggest to locate this file in the same directory as the server.xml file and use the ${catalina.base} variable asis and litterally into the CATALINA_OPTS="-Dcom.sun.management.conf.file=${catalina.base}/conf/abc.efg" definition. I skipped other configuration files for authentication, in my case I am authenticating the users against the Active Directory database. So, the informations I gave for the content of the configuration file is incomplete and do not necessarily apply to your case, that's why I didn't bother to put it in my original post. But, you may have to use extra properties for you particular situation. Why did I say to put everything in the configuration file for com.sun.management.config.file? Because that way, the JVM knows these are for JMX and knows the port is for JMX and will not run into a nonesense when stopping the service saying the port is already in use. That's why you should put this into the configuration file and define the property to tell the JVM the pathname of the configuration file. Regards, - Daniel Savard
Tomcat native tc and a custom OpenSSL engine for ECDH
Dear tomcat community, I have a question - I am using tomcat and OpenSSL (with apr and tomcat= -native-1.2.16). Versions are as follows :- apr-1-config 1.5.2 tomcat-native-1.2.16 OpenSSL 1.1.0 Tomcat 8.5.31 This works fine with my custom OpenSSL 1.1.0 installation.=20 Next I wrote my own custom OpenSSL engine for ECDHE (ephemeral even), howeve= r tomcat native still seems to make calls to the default ECDHE engine that c= omes with OpenSSL (instead of using mine, even though I compiled, tested and= installed the needed shared object in the relevant directory for OpenSSL e= ngines shared objects). Does the tomcat native code needs to be modified to support a custom OpenSSL= engine for ECDHE.=20 If yes, can I get some help on which places and which files one needs to mod= ify (I have looked at the file sslcontext.c but it is bit very clear on how t= o tie your custom OpenSSL ECDHE engine with the EC keys being generated) Regards, Piyush Sent from my iPhone - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
RE: Question about setting CATALINA_OPTS when starting Tomcat using a Windows Service in Tomcat 7.0.54
Good catch!! I still had 'd' in front of my lines so once I removed those JMX starts up using Management.properties file but as you mentioned it doesn't really change the behavior at all and the Service still doesn't stop cleanly. So is there a way to force the JMX to use CATALINA_OPTS in this file. Something like SET CATALINA_OPTS = 'JMX settings'? That is if the JMX running on CATALINA_OPTS is indeed the answer. Basically, trying to mimic the setenv file that is not used by the Window Service. -Original Message- From: Christopher Schultz [mailto:ch...@christopherschultz.net] Sent: Friday, August 03, 2018 11:52 AM To: users@tomcat.apache.org Subject: Re: Question about setting CATALINA_OPTS when starting Tomcat using a Windows Service in Tomcat 7.0.54 - - - external message, proceed with caution - - - -BEGIN PGP SIGNED MESSAGE- Hash: SHA256 Louis, On 8/3/18 11:32 AM, Louis Zipes wrote: > Hi Daniel, I tried your suggestion and while I think it is now > acknowledging the existence of the management.properties file > (Windows Service wouldn't start if I purposely misspelled > 'managemenX.properties') but it doesn't seem to be actually working > (JMX can't connect). > > What I did: > > I created a copy of an existing logging.properties file already in > the CONF folder, renamed it management.properties, and removed all > contents of it and put in: Just FYI, there is nothing magical about an existing properties file. It's just a text file with name=value items in it. > Dcom.sun.management.jmxremote > Dcom.sun.management.jmxremote.port=8008 > Dcom.sun.management.jmxremote.authenticate=false > Dcom.sun.management.jmxremote.ssl=false > Djava.rmi.server.hostname= I don't think you want those leading D characters. Is that a copy/paste error? > -Dcom.sun.management.config.file= C:\ structure>\Tomcat\conf\management.properties Daniel usually knows what he's talking about, but I'll be surprised if Tomcat doesn't fail the same way after making these changes... you are just moving the configuration from one place (multiple system properties) to another (one system property pointing to another file of properties). - -chris -BEGIN PGP SIGNATURE- Comment: GPGTools - http://gpgtools.org Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ iQIzBAEBCAAdFiEEMmKgYcQvxMe7tcJcHPApP6U8pFgFAltkejcACgkQHPApP6U8 pFjRPBAAghgmIUA3IBV7qWtk2icUSTOkmF1qd7oFt64pwkitSQmlmJ0FecnDJwVH OoMCEB9yg1KvtIKMOJ9nHDIgTn7an0iS7wK2MzbKZs4cWMAqpxagS6S2M1AmygNr pnsig+WTSmO2r5OkcdWM+JE2qmn+oeQecf2E439RIkEcb/OuzTIJLjk0iIVKSOlQ EihDsVKh+dBvDyDol5RC9k+cxNxNQyYH06ZcOKOTbJCOclMvSUqcqpLesEWnoM5r Zh1TaOXc40HtcvtBQCda6aOdrQE/qieI4pxtduT0BDGxBnjS2GijitrY1isqVv0k RnUYGbvGlcI3OHdfUBAkitl0Bhrx24zqDnaFJ73PHuItlP0aqBeH7eSMTwt5AGXg T7h3PylWdpeL8G2qh1MEdvUCzRKStOHqAYweKnwb0REuNf4YJs6t8n+zRc1sbnkk bNXidsZlUD5ofxdh9fSVeWKiPnHfEYNz3aDqlavymgN1mKDkNJ+qmZoxctEUdKSo Gv4/vNhNOHK6Vb7RSYyp2Ac87jxy4DDl+RL5ltv2oDAp1rIoH1EamDzOTMiJtFpk Sy6EyW8PqWjoLzOBsBC8gH8OdJUNojRkTrl/D+B/dysAEz1tsUw5Kj/4o0HRPvIU svv56gDNaOPTfMbXQvX4vyykfCAxYKKBouB0zyjp7GAY0+4SAG4= =LV/k -END PGP SIGNATURE- - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org --- CONFIDENTIALITY NOTICE: This message is for intended addressee(s) only and may contain information that is confidential, proprietary or exempt from disclosure. If you are not the intended recipient, please contact the sender immediately. Unauthorized use or distribution is prohibited and may be unlawful.
Re: Question about setting CATALINA_OPTS when starting Tomcat using a Windows Service in Tomcat 7.0.54
-BEGIN PGP SIGNED MESSAGE- Hash: SHA256 Louis, On 8/3/18 11:32 AM, Louis Zipes wrote: > Hi Daniel, I tried your suggestion and while I think it is now > acknowledging the existence of the management.properties file > (Windows Service wouldn't start if I purposely misspelled > 'managemenX.properties') but it doesn't seem to be actually working > (JMX can't connect). > > What I did: > > I created a copy of an existing logging.properties file already in > the CONF folder, renamed it management.properties, and removed all > contents of it and put in: Just FYI, there is nothing magical about an existing properties file. It's just a text file with name=value items in it. > Dcom.sun.management.jmxremote > Dcom.sun.management.jmxremote.port=8008 > Dcom.sun.management.jmxremote.authenticate=false > Dcom.sun.management.jmxremote.ssl=false > Djava.rmi.server.hostname= I don't think you want those leading D characters. Is that a copy/paste error? > -Dcom.sun.management.config.file= C:\ structure>\Tomcat\conf\management.properties Daniel usually knows what he's talking about, but I'll be surprised if Tomcat doesn't fail the same way after making these changes... you are just moving the configuration from one place (multiple system properties) to another (one system property pointing to another file of properties). - -chris -BEGIN PGP SIGNATURE- Comment: GPGTools - http://gpgtools.org Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ iQIzBAEBCAAdFiEEMmKgYcQvxMe7tcJcHPApP6U8pFgFAltkejcACgkQHPApP6U8 pFjRPBAAghgmIUA3IBV7qWtk2icUSTOkmF1qd7oFt64pwkitSQmlmJ0FecnDJwVH OoMCEB9yg1KvtIKMOJ9nHDIgTn7an0iS7wK2MzbKZs4cWMAqpxagS6S2M1AmygNr pnsig+WTSmO2r5OkcdWM+JE2qmn+oeQecf2E439RIkEcb/OuzTIJLjk0iIVKSOlQ EihDsVKh+dBvDyDol5RC9k+cxNxNQyYH06ZcOKOTbJCOclMvSUqcqpLesEWnoM5r Zh1TaOXc40HtcvtBQCda6aOdrQE/qieI4pxtduT0BDGxBnjS2GijitrY1isqVv0k RnUYGbvGlcI3OHdfUBAkitl0Bhrx24zqDnaFJ73PHuItlP0aqBeH7eSMTwt5AGXg T7h3PylWdpeL8G2qh1MEdvUCzRKStOHqAYweKnwb0REuNf4YJs6t8n+zRc1sbnkk bNXidsZlUD5ofxdh9fSVeWKiPnHfEYNz3aDqlavymgN1mKDkNJ+qmZoxctEUdKSo Gv4/vNhNOHK6Vb7RSYyp2Ac87jxy4DDl+RL5ltv2oDAp1rIoH1EamDzOTMiJtFpk Sy6EyW8PqWjoLzOBsBC8gH8OdJUNojRkTrl/D+B/dysAEz1tsUw5Kj/4o0HRPvIU svv56gDNaOPTfMbXQvX4vyykfCAxYKKBouB0zyjp7GAY0+4SAG4= =LV/k -END PGP SIGNATURE- - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
RE: Question about setting CATALINA_OPTS when starting Tomcat using a Windows Service in Tomcat 7.0.54
Hi Daniel, I tried your suggestion and while I think it is now acknowledging the existence of the management.properties file (Windows Service wouldn't start if I purposely misspelled 'managemenX.properties') but it doesn't seem to be actually working (JMX can't connect). What I did: I created a copy of an existing logging.properties file already in the CONF folder, renamed it management.properties, and removed all contents of it and put in: Dcom.sun.management.jmxremote Dcom.sun.management.jmxremote.port=8008 Dcom.sun.management.jmxremote.authenticate=false Dcom.sun.management.jmxremote.ssl=false Djava.rmi.server.hostname= And then in the Tomcat7w GUI under the Java tab I added it (last line) -Dcatalina.home=C:\ \Tomcat -Dcatalina.base=C:\ \Tomcat -Djava.endorsed.dirs=C:\ \Tomcat\endorsed -Djava.io.tmpdir=C:\ \Tomcat\temp -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file=C:\ \Tomcat\conf\logging.properties -Dcom.sun.management.config.file= C:\ \Tomcat\conf\management.properties<== new line But it didn't connect through when opening up jconsole.exe under C:\Program Files\Java\jdk1.7.0_80\bin and I didn't see the PORT being used when I did NETSTAT. Note that I did an ECHO %CATALINA_OPTS% to make sure it wasn't hiding somewhere and nothing was returned Finally, just to confirm that my parameters in the management.properties file were correct I add in the contents of it back into the Tomcat7w GUI under the Java tab like I had originally set up (JMX does now work BUT my original problem of not being able to stop the Service cleanly returns) -Dcatalina.home=C:\ \Tomcat -Dcatalina.base=C:\ \Tomcat -Djava.endorsed.dirs=C:\ \Tomcat\endorsed -Djava.io.tmpdir=C:\ \Tomcat\temp -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file=C:\ \Tomcat\conf\logging.properties -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8008 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname= Did I miss something in your instructions? Thanks, Louis -Original Message- From: Daniel Savard [mailto:daniel.sav...@gmail.com] Sent: Thursday, August 02, 2018 6:15 PM To: Tomcat Users List Subject: Re: Question about setting CATALINA_OPTS when starting Tomcat using a Windows Service in Tomcat 7.0.54 - - - external message, proceed with caution - - - In ${Tomcat}/conf create the file management.properties and put your stuff in this file like: com.sun.management.jmxremote = true com.sun.management.jmxremote.port = 9876 com.sun.management.registry.ssl =true com.sun.management.ssl = true com.sun.management.ssl.enebled.protocols = TLSv1.2 ... Then, remove your stuff from the CATALINA_OPTS and just point to this file with -Dcom.sun.management.config.file=${CATALINA_BASE}/conf/management.properties and you port in use message will disappear since this configuration will be handled properly. Regards, Le 2 août 2018 3:58 PM, "Louis Zipes" a écrit : Hi All, I'm trying to enable JMX monitoring using Tomcat 7.0.54. Turning on the JMX monitoring is not the problem. To do this I added the following to the Apache Tomcat 7.0 Properties 'JAVA' tab GUI Window, which opens up when you run 'TOMCAT7w.exe //ES/', and it works in that JMX can monitor it. -Djava.rmi.server.hostname=localhost -Dcom.sun.management.jmxremote.port=8555 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl= The problem is that when I go to STOP the Service it gives me the following error Error: Exception thrown by the agent : java.rmi.server.ExportException: Port already in use: 8555; nested exception is: java.net.BindException: Address already in use: JVM_Bind I have to do a hard kill by either restarting the Appserver or doing SC QUERY which is not realistic I can find hits on the error message but the answers seem to relate to the need to set up JMX under CATALINA_OPTS. My issue is that I'm struggling to figure out how to set up CATALINA_OPTS that in Windows when starting Tomcat using a Service. The solutions I find either are Linux (I'm Windows) or talks about setting up JMX with a setenv.bat OR catalina.bat files. However, from my research the catalina.bat and setenv files are ignored when you use a Windows Service. So my question is how do I do I set up CATALINA_OPTS parameter in Tomcat 7.0.54 when I'm using a Windows Service? Thanks, Louis --- CONFIDENTIALITY NOTICE: This message is for intended addressee(s) only and may contain information that is confidential, proprietary or exempt from disclosure. If you are not the intended recipient, please contact the sender immediately. Unauthorized use or distribution is prohibited and may be unlawful. --- CONFIDENTIALITY NOTICE: This message is for intended addressee(s) only and may co
Re: Tomcat error at run-time.
Thanks Luis. Will definitely try it. On Fri, Aug 3, 2018 at 2:23 PM, Luis Rodríguez Fernández wrote: > Hello Noel, > > mmm, perhaps you could consider to use spring-boot for this. It provides a > nice out-of-the-box embedded tomcat: > https://spring.io/blog/2014/03/07/deploying-spring-boot-applications > > Hope it helps, > > Luis > > 2018-08-03 7:06 GMT+02:00 noel joseph : > > > Hey Chris, > > > > This is my code... > > > > package com.TomCat.EmbTC; > > > > import java.io.File; > > import javax.servlet.ServletException; > > import org.apache.catalina.LifecycleException; > > import org.apache.catalina.startup.Tomcat; > > > > public class App { > > public static void main(String[] args) throws LifecycleException, > > InterruptedException, > > ServletException { > > String docBase = "src/main/webapp/"; > > > > Tomcat tomcat = new Tomcat(); > > String webPort = System.getenv("PORT"); > > if(webPort == null || webPort.isEmpty()) { > > webPort = "8111"; > > } > > tomcat.setPort(Integer.valueOf(webPort)); > > > > tomcat.addWebapp("/", new File(docBase).getAbsolutePath()); > >System.out.println("configuring app with basedir: " + new File("./" + > > docBase).getAbsolutePath()); > > > > tomcat.start(); > > tomcat.getServer().await(); > > > > } > > } > > > > and this is my pom.xml file > > http://maven.apache.org/POM/4.0.0"; xmlns:xsi=" > > http://www.w3.org/2001/XMLSchema-instance"; > > xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 > > http://maven.apache.org/maven-v4_0_0.xsd";> > > 4.0.0 > > com.TomCat > > EmbTC > > jar > > 0.0.1-SNAPSHOT > > EmbTC Maven Webapp > > http://maven.apache.org > > > > UTF-8 sourceEncoding> > > 1.8 > > 1.8 > > 8.5.5 > > > > > > > > > > junit > > junit > > 3.8.1 > > test > > > > > > > > commons-logging > > commons-logging > > 1.2 > > > > > > org.apache.tomcat.embed > > tomcat-embed-core > > ${tomcat.version} > > > > > > > > org.apache.tomcat > > tomcat-jasper > > ${tomcat.version} > > > > > > > > org.apache.tomcat > > tomcat-jasper-el > > ${tomcat.version} > > > > > > > > org.apache.tomcat > > tomcat-jsp-api > > ${tomcat.version} > > > > > > > > EmbTC > > > > > > > > > > I am not making use of a web.xml file. > > This codes running perfectly on eclipse when run, depolying a tomcat > server > > as expected. > > But when i convert into a jar and run it as a jnlp file i get the > error... > > > > org.apache.catalina.LifecycleException: A child container failed during > > start > > at > > org.apache.catalina.core.ContainerBase.startInternal( > > ContainerBase.java:947) > > at > > org.apache.catalina.core.StandardEngine.startInternal( > > StandardEngine.java:262) > > at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) > > at > > org.apache.catalina.core.StandardService.startInternal( > > StandardService.java:422) > > at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) > > at > > org.apache.catalina.core.StandardServer.startInternal( > > StandardServer.java:793) > > at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) > > at org.apache.catalina.startup.Tomcat.start(Tomcat.java:344) > > at com.TomCat.EmbTC.App.main(App.java:23) > > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > > at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) > > at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) > > at java.lang.reflect.Method.invoke(Unknown Source) > > at com.sun.javaws.Launcher.executeApplication(Unknown Source) > > at com.sun.javaws.Launcher.executeMainClass(Unknown Source) > > at com.sun.javaws.Launcher.doLaunchApp(Unknown Source) > > at com.sun.javaws.Launcher.run(Unknown Source) > > at java.lang.Thread.run(Unknown Source) > > > > Please let me know what's the problem with my code. > > > > Thanks, > > Noel > > > > > > -- > > "Ever tried. Ever failed. No matter. Try Again. Fail again. Fail better." > > - Samuel Beckett >
Re: Tomcat error at run-time.
Hello Noel, mmm, perhaps you could consider to use spring-boot for this. It provides a nice out-of-the-box embedded tomcat: https://spring.io/blog/2014/03/07/deploying-spring-boot-applications Hope it helps, Luis 2018-08-03 7:06 GMT+02:00 noel joseph : > Hey Chris, > > This is my code... > > package com.TomCat.EmbTC; > > import java.io.File; > import javax.servlet.ServletException; > import org.apache.catalina.LifecycleException; > import org.apache.catalina.startup.Tomcat; > > public class App { > public static void main(String[] args) throws LifecycleException, > InterruptedException, > ServletException { > String docBase = "src/main/webapp/"; > > Tomcat tomcat = new Tomcat(); > String webPort = System.getenv("PORT"); > if(webPort == null || webPort.isEmpty()) { > webPort = "8111"; > } > tomcat.setPort(Integer.valueOf(webPort)); > > tomcat.addWebapp("/", new File(docBase).getAbsolutePath()); >System.out.println("configuring app with basedir: " + new File("./" + > docBase).getAbsolutePath()); > > tomcat.start(); > tomcat.getServer().await(); > > } > } > > and this is my pom.xml file > http://maven.apache.org/POM/4.0.0"; xmlns:xsi=" > http://www.w3.org/2001/XMLSchema-instance"; > xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 > http://maven.apache.org/maven-v4_0_0.xsd";> > 4.0.0 > com.TomCat > EmbTC > jar > 0.0.1-SNAPSHOT > EmbTC Maven Webapp > http://maven.apache.org > > UTF-8 > 1.8 > 1.8 > 8.5.5 > > > > > junit > junit > 3.8.1 > test > > > > commons-logging > commons-logging > 1.2 > > > org.apache.tomcat.embed > tomcat-embed-core > ${tomcat.version} > > > > org.apache.tomcat > tomcat-jasper > ${tomcat.version} > > > > org.apache.tomcat > tomcat-jasper-el > ${tomcat.version} > > > > org.apache.tomcat > tomcat-jsp-api > ${tomcat.version} > > > > EmbTC > > > > > I am not making use of a web.xml file. > This codes running perfectly on eclipse when run, depolying a tomcat server > as expected. > But when i convert into a jar and run it as a jnlp file i get the error... > > org.apache.catalina.LifecycleException: A child container failed during > start > at > org.apache.catalina.core.ContainerBase.startInternal( > ContainerBase.java:947) > at > org.apache.catalina.core.StandardEngine.startInternal( > StandardEngine.java:262) > at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) > at > org.apache.catalina.core.StandardService.startInternal( > StandardService.java:422) > at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) > at > org.apache.catalina.core.StandardServer.startInternal( > StandardServer.java:793) > at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) > at org.apache.catalina.startup.Tomcat.start(Tomcat.java:344) > at com.TomCat.EmbTC.App.main(App.java:23) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) > at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) > at java.lang.reflect.Method.invoke(Unknown Source) > at com.sun.javaws.Launcher.executeApplication(Unknown Source) > at com.sun.javaws.Launcher.executeMainClass(Unknown Source) > at com.sun.javaws.Launcher.doLaunchApp(Unknown Source) > at com.sun.javaws.Launcher.run(Unknown Source) > at java.lang.Thread.run(Unknown Source) > > Please let me know what's the problem with my code. > > Thanks, > Noel > -- "Ever tried. Ever failed. No matter. Try Again. Fail again. Fail better." - Samuel Beckett