Re: Deployment error on start up
Re: Deployment error on start up
- Subject: Re: Deployment error on start up
- From: William Hatch <email@hidden>
- Date: Wed, 21 May 2008 09:44:26 -0400
On May 20, 2008, at 10:33 PM, Chuck Hill wrote:
On May 20, 2008, at 9:19 AM, William Hatch wrote:
OK, so extreme stupidity accounts for what we'll refer to as
initial problem,
:-)
at least I think anyway as I now have new problems. Turns out the
iPhone SDK does install 5.4.2, which overwrote all the frameworks
in /System/Lib.../Frameworks.
What problem did that cause?
Initially, we were getting weird adaptor errors; I believe I'd posted
them previously. Basically: I run both 5.4 and 5.3 locally, so don't
see issues in dev when crossing the 5.3/5.4 line. However, it would
seem logical that if I developed locally (and unknowingly;-) on 5.4,
and then pushed the built app up to a Tiger server running 5.3 only
(and apache 1.3x etc) that there _could be problems. After uncovering
"extreme stupid mistake #1" I assumed that contributed towards the
adaptor errors I saw subsequently.
No problem I say, simply run the convenient wo53 script and I'll be
back in biz. Project rebuilt, manually configured the
MacOSClasspath.txt and MacOSXSClasspath.txt to get rid of the $
{jvm} bad argument
I had hoped that it was the iPhone SDK changes that caused this. It
sounds like it still happens after you re-installed 5.3? Sigh.
Yes, but eventually I began to think it was probably just the project
getting flaky so decided to rebuild a new one. This time, did NOT
select Wonder Project from the wizard; just made it a PO WO project
and added the wonder dependencies manually afterwards. That fixed
everything right away. But I first started by removing the wo.system
embeds, then the wo.local embeds, just to make sure there wasn't
something else going on. Now, it's not really related, but I noticed
on the wonderful (seriously) output you get on start up (using Wonder)
we now have this jar checker that very helpfully determines what jars
may have duplicate references. I have loads of them; even on this new
project. I'm not linking to the checked out, imported workspace
projects (I would, but I have some issue with the checked out version
of Wonder that seems to prevent me from ever being able to build it
all and install from subsequent cvs updates), so I occasionally
download the latest Wonder built frames... and use the check outs
largely as reference within the workspace. Instead, I reference the
installed frameworks. So, even with no project dependencies and with
the local libraries linked in properly I'm still seeing the jar
checker warnings. But perhaps this is also something that the new
classpath stuff will impact.
and fix the ERExtensions not showing up before ...foundation in
those files, (and it would be great to at least figure out how to
make eclipse do the right thing here; configuring the build path
didn't spotlight any obvious answers).
Mike has some very highly anticipated changes to WOLips classpath
handling that he is sitting on. I expect it will be a while before
he is ready to commit them.
Yes, and absolutely understandable for sure. My question was more out
of trying to understand all those internal details so I'd be able to
save my own day;-)
Anyway, as a refresher, I've got a built .woa which is completely
embedded; all System and Local frameworks are included in the
built .woa. Now, when trying to start up I get this:
Generated classpath:
/Library/WebObjects/Applications/locations-prod/CFiPhoneWeb.woa/
Contents/Resources/Java/
/Library/WebObjects/Applications/locations-prod/CFiPhoneWeb.woa/
Contents/Resources/Java/cfiphoneweb.jar
/Library/WebObjects/Applications/locations-prod/CFiPhoneWeb.woa/
Contents//Library/Frameworks/JavaEOAccess.framework/Resources/Java/
javaeoaccess.jar
/Library/WebObjects/Applications/locations-prod/CFiPhoneWeb.woa/
Contents//Library/Frameworks/JavaEOControl.framework/Resources/Java/
javaeocontrol.jar
/Library/WebObjects/Applications/locations-prod/CFiPhoneWeb.woa/
Contents//Library/Frameworks/ERExtensions/framework/Resources/Java/
ERExtensions.jar
There is the jar file that has the ERXApplication class that it says
it can't find. I did notice that this and the next few paths have
an extra slash: Contents//Library. My first suspicion would lie
there. Check the files in woproject/ (or the build.xml or ...
depending on how you are including these.
Yup, the build.xml was absolutely the issue; not sure where the
extra / was coming from, I don't recall modifying it in anyway,
although I typically would just to add some additional convenience
targets. I picked up on it after noticing the ant output : "Installing
xxx in //Library...." and thought it was odd. Perhaps some more
forensics today might reveal where that is coming from.
/Library/WebObjects/Applications/locations-prod/CFiPhoneWeb.woa/
Contents//Library/Frameworks/JavaFoundation.framework/Resources/
Java/javafoundation.jar
/Library/WebObjects/Applications/locations-prod/CFiPhoneWeb.woa/
Contents//Library/Frameworks/JavaJDBCAdaptor.framework/Resources/
Java/javajdbcadaptor.jar
/Library/WebObjects/Applications/locations-prod/CFiPhoneWeb.woa/
Contents//Library/Frameworks/JavaWebObjects.framework/Resources/
Java/javawebobjects.jar
/Library/WebObjects/Applications/locations-prod/CFiPhoneWeb.woa/
Contents//Library/Frameworks/JavaXML.framework/Resources/Java/
javaxml.jar
That is the last of the questionable paths.
/Library/WebObjects/Applications/locations-prod/CFiPhoneWeb.woa/
Contents/Library/Frameworks/CFPhoneEO_FW.framework/Resources/Java/
cfphoneeo_fw.jar
/Library/WebObjects/Applications/locations-prod/CFiPhoneWeb.woa/
Contents/Library/Frameworks/ERCaptcha.framework/Resources/Java/
commons-collections-3.2.jar
/Library/WebObjects/Applications/locations-prod/CFiPhoneWeb.woa/
Contents/Library/Frameworks/ERCaptcha.framework/Resources/Java/
ERCaptcha.jar
<snip>
/Library/WebObjects/Extensions/
java.lang.NoClassDefFoundError: er/extensions/ERXApplication
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
at
java.security.SecureClassLoader.defineClass(SecureClassLoader.java:
124)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at com.webobjects._bootstrap.WOBootstrap.main(WOBootstrap.java:84)
This would appear to indicate that the two (and which one should it
be using? MacOS or MacOSXS? we're running on Server, so I'd think
the latter) are being ignored. So, what next...
MacOSClassPath is what gets used. MacOSXServerClassPath is, AFAIK,
a obsolete relic of an earlier time.
Yeah, inspecting the logs later I found a line that indicated it's
only using the MacOS... one.
I'm loving Wonder. In development at least;-) I am getting so
desperate to get this ridiculously simple app deployed... Thanks
again.
We are close. I think...
Yes, and please don't take any of what I was saying as being critical
in any way of Wonder/WOLips and how it's all going. I mean really,
deployment has always been in a PITA for WO, (well, really java in
general, but that's another story) so it's not like this particular
problem was anything more stressful than usual. For the most part,
once you have a deployable app with a solid build system going, future
deploys are trivial and all; just seems to be the first one, or the
first one after major changes in some of the underlying moving parts
that will clobber your forehead with a crow bar. I'd say WO, WOLips
and everything else has come a long way in the last six years for
sure. The problems we complain about today seem pretty trivial
compared to some of the ones we complained about back in the 5.0 to
5.1 days for sure.
Thanks for all the help and advice; we're all so fortunate to have
such a great group of people willing to help out here. And never any
attitudes either. If anybody ever wants to appreciate that fully, feel
free to participate in some of the OSX admin lists lol;-)
Chuck
On May 19, 2008, at 10:35 PM, Chuck Hill wrote:
On May 19, 2008, at 7:29 PM, William Hatch wrote:
Hmm, interesting. But, wouldn't the rest of the apps not run
either in that case?
It probably depends on how they are configured. WO is notoriously
fickle (also called buggy) in this area. I believe that Pierre
has been fixing many of the inconsistencies. I am very much
looking forward to that!
Chuck
On May 19, 2008, at 10:18 PM, David LeBer wrote:
On 19-May-08, at 9:54 PM, William Hatch wrote:
Hi Chuck,
The particular server it's running on is about a year old, runs
several other apps no problem (all 5.3) so I don't _think that
would be the problem, but on the other hand, I'm extremely
reluctant to question you (or David, for that matter;-)
To be completely honest, I don't know where WOLips/Ant pulls the
$jvm from. Last time it happened to me, I hacked the ClassPath
file and went on with my business figuring I'd track it down
when I had time. But it hasn't reoccurred.
I am still having issues with the "No instance available",
which may be related to this line in the logs during start up:
May 19 20:24:55 locations[N/A] (ERXNSLogLog4jBridge.java:44)
DEBUG NSLog - Created adaptor of class WODefaultAdaptor on
port 2004 and address worldgaming.codefab.com.codefab.com/
199.103.21.241 with WOWorkerThread minimum of 16 and maximum of
256
May 19 20:24:55 locations[2004] (ERXNSLogLog4jBridge.java:44)
DEBUG NSLog - Creating LifebeatThread now with: locations 2004
worldgaming.codefab.com.codefab.com/199.103.21.241 1085 30000
So, it looks like it's adding an extra domain.TLD somehow. I
have the WOHost property set in Monitor, and later on in the
log, it shows properly. If I try to connect using the port, I
get a "...unexpectedly dropped the connection..." Safari
message. Any thoughts here?
Ooo! Ooo! I know this one :-) DNS error. You've got a an A
record or a CNAME without a trailing dot.
worldgaming.codefab.com A 199.103.21.241
should be:
worldgaming.codefab.com. A 199.103.21.241
Notice the dot after the domain. Without it Bind thinks it's a
partial name and appends the rest of the domain to it.
Bill Hatch
Macaulay Library
4-2116
On May 19, 2008, at 8:11 PM, Chuck Hill wrote:
On May 19, 2008, at 5:02 PM, David LeBer wrote:
On 19-May-08, at 7:45 PM, William Hatch wrote:
Oh jeez, sorry, that last one should have been:
Reading MacOSClassPath.txt ...
Launching myApp.woa ...
${jvm} -XX:NewSize=2m -Xmx64m -Xms32m -DWORootDirectory="/
System" -DWOLocalRootDirectory="" -DWOUserDirectory="/
Library/WebObjects/Applications/locations-prod/myApp.woa" -
DWOEnvClassPath="" -
DWOApplicationClass=com.codefab.Application -
DWOPlatform=MacOS -Dcom.webobjects.pid=28757 -classpath
WOBootstrap.jar com.webobjects._bootstrap.WOBootstrap
./CFiPhoneWeb: line 1: exec: -X: invalid option
exec: usage: exec [-cl] [-a name] file [redirection ...]
Ahh, that's better.
The problem is the ${jvm} value in the exec statement.
That probably should be 'java'
What doest the #JVM == line of your AppName.woa/Contents/
MacOS/MacOS*ClassPath.txt say?
IIRC, this can also come from an incorrect / complete install
of WO. If it can't find WOBootstrap.jar, it uses the WO 5.2
launch scripts and things go wrong. Mike posted something on
this recently, but I don't have the message at hand. I
_think_ this is the same error. A few people have been bitten
by it and some seemed to have correct install so let us know
when you figure it out.
Chuck
--
Practical WebObjects - for developers who want to increase
their overall knowledge of WebObjects or who are trying to
solve specific problems.
http://www.global-village.net/products/practical_webobjects
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list (Webobjects-
email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden
;david
--
David LeBer
Codeferous Software
'co-def-er-ous' adj. Literally 'code-bearing'
site: http://codeferous.com
blog: http://davidleber.net
profile: http://www.linkedin.com/in/davidleber
--
Toronto Area Cocoa / WebObjects developers group:
http://tacow.org
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden
--
Practical WebObjects - for developers who want to increase their
overall knowledge of WebObjects or who are trying to solve
specific problems.
http://www.global-village.net/products/practical_webobjects
--
Practical WebObjects - for developers who want to increase their
overall knowledge of WebObjects or who are trying to solve specific
problems.
http://www.global-village.net/products/practical_webobjects
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden