Re: WOOutputPath causes launch hang (fixed)
Re: WOOutputPath causes launch hang (fixed)
- Subject: Re: WOOutputPath causes launch hang (fixed)
- From: Clark Mueller <email@hidden>
- Date: Tue, 14 Nov 2006 03:18:50 -0700
Mike,
I think I missed this message after my last reply... and it's too
bad, because that's exactly what the problem was! My
resources.include.patternset (as you can see below) is definitely not
configured properly. It now looks like this:
**/*.eomodeld/ <-- fixed as per Zak's tip, and would have caused
problems later, but wasn't a part of this immediate issue
**/*.woa/**
**/*.framework/**
**/src
**/components
**/*.wo/** <-- now includes *.wo and anything under the .wo, which
was causing the blank pages
After doing this, I was still getting a blank page. These turned out
to be caused by an annoying character encoding problem on a couple of
my components that, IIRC, bit us with WO 5.3's WebObjects Builder
(thanks Apple, if I didn't have to deal with problems like that, I
don't know what I'd keep myself busy with).
I still have no idea as to what was happening with the actual app
"hangs" and deaths from JavaMonitor. Those stopped before I made the
change to the patternset file. But everything is launching just fine
now. I'm still having some issues getting images to show, but
hopefully I can tackle that one on my own.
Thanks to Chuck, Mike, and Zak!
Regards,
Clark
On 29 Oct 06, at 7:16 PM, Mike Schrag wrote:
Are all of the expected files inside of Main.wo? .woo, .html, .wod?
On Oct 29, 2006, at 8:32 PM, Clark Mueller wrote:
I'm using the one out of dist, but Yes and No on the
WebServerResources. To clarify, I HAD added the .wo as a
WebServerResource to see if it made any difference. It searched
for it there, and the same problem existed, but it does the same
thing if it is only added as a Resource. In that case, the error
message is the same, but with the Resources path instead of the
WebServerResources path:
[2006-10-29 04:08:12 MST] <WorkerThread0>
<com.webobjects.appserver._private.WOComponentDefinition> No
template found for component Main at "file:/Users/clark/Code/
eclipse/RepairStatus/dist/RepairStatus.woa/Contents/Resources/
Main.wo".
So at this time, all of the .wos are in Resources, web server
resources (two .gifs) are in WebServerResources, and the project
jar contains all of the right classes, and lives in Resources/Java.
Clark
On 29 Oct 06, at 5:45 PM, Mike Schrag wrote:
Just to be sure, you're using the woa from the "dist" folder and
not the woa from the "build" folder, right? And there's no
Main.wo in dist/RepairStatus.woa/Contents/WebServerResources like
the error message alludes to?
ms
On Oct 29, 2006, at 5:58 PM, Clark Mueller wrote:
I had added them to both to see if it made a difference, but it
doesn't; if they're only added as resources, the same error
occurs (for Resources instead of WSR).
resources.include.patternset:
**/*.eomodeld~/
**/*.woa/**
**/*.framework/**
**/src
**/components
**/*.wo
wsresources.include.patternset:
**/*.gif
**/*.xsl
**/*.css
**/*.png
**/*.jpg
**/*.js
classes.include.patternset:
**/*.class
*.properties
**/src
**/*.wo
**/*.java
Looking at the assembled .woa, it looks entirely normal... I've
got three components and the Java dir in the Resources dir, a
couple of images nested inside of WebServerResources, and
the .jar contains all the right classes... Very confused!
Thanks,
Clark
On 29 Oct 06, at 8:06 AM, Mike Schrag wrote:
It's not necessarily the cause of your problem, but it's
suspicious (depending on how your patterns are setup). *.wo
files are not WebServerResources, they are Resources. It's
suspicious that your Main.wo is in the WebServerResources
folder. Where is Main.wo in your actual project? What do your
resources.include.pattern and webserversources.include.pattern
contain? (don't know if i have those filenames exactly right --
i don't have wolips open right now in front of me)
ms
On Oct 29, 2006, at 6:18 AM, Clark Mueller wrote:
Yeah, I'm confused too. I revisited this problem tonight, and
while I'm not really much closer to a solution for it, I've
got at least "better" activity on the development side.
Somehow I've gotten from point A to point B, but I'm not
exactly sure what happened in between. My development builds
(using Ant only) are now spitting out this error when I visit
the app in a browser, running from the Ant build on a dev box:
[2006-10-29 04:08:12 MST] <WorkerThread0>
<com.webobjects.appserver._private.WOComponentDefinition> No
template found for component Main at "file:/Users/clark/Code/
eclipse/RepairStatus/dist/RepairStatus.woa/Contents/
WebServerResources/Main.wo".
That error appeared out of nowhere the first time I tried
building the app on the deployment box tonight, which is
interesting, because I repeatedly cleaned the project the
other night when I was originally having the problem. I found
a couple of posts on the list that allude to checking the
class name in the .api file. I don't have one... but I tried
creating one and indicated the class name for the component as
"package.Main". That didn't have any effect. I also found some
very badly mangled character encoding in one of my components,
but it was not the Main component (which is where ALL of the
problems are).
Switching to incremental builds in Eclipse work perfectly...
but don't leave me with anything I can deploy... I tried
toggling the build type to incremental, deleting build.xml and
cleaning the project, and then toggling it back to get a new
build.xml file (although I hadn't changed mine), and that made
no difference either. My working assumption is that the
build.xml file I'm getting is bad in some way... but I'm not
sure where to start looking.
? :-\
Thanks,
Clark
On 26 Oct 06, at 7:12 PM, Chuck Hill wrote:
Hi Clark,
On Oct 24, 2006, at 10:17 PM, Clark Mueller wrote:
Chuck,
Very odd! :-)
This is mostly a very, very simple application. There's
probably less than 100 lines of controller code in total,
and only three components. Nothing happens in the app
constructor. It uses Axis as a client (not using WO web
services), but not on launch. It has three models with no
custom business logic. I'm not using Wonder for this
project, and the frameworks are not even installed on the
deployment server. Here are the "weird" things I can think of:
- I built it under JDK v1.5. Still runs fine on my
development machine, and I certainly haven't had any
problems at least with apps LAUNCHING using JDK 1.5.
Building it under 1.4.2 doesn't seem to have made a difference.
Check
- The .woa shows up as a folder in the Finder on the
deployment machine... which is odd only because the other
apps don't.
That is odd. I am not sure why that would happen. I don't
know if it matters as it starts to launch.
The best I can figure is that it IS a WOLips specific
problem of some sort - but I don't know nearly enough about
what WOLips does differently in terms of building the
application bundle to figure out where to start
troubleshooting it. This is literally the first time I've
actually dealt with a woa built by WOLips, but the bundle
contents look correct...
I've never seen this happen before either.
The only other interesting thing I noticed is that while it
is hung, Monitor recognizes it as running, and if I go to
the app in a browser, it shows a blank page. Here is the
thread dump.
That sounds more like the app is throwing an exception when a
request arrives and the log output is being redirected
(perhaps to /dev/null). It will be hard to debug without log
output.
Full thread dump Java HotSpot(TM) Client VM (1.5.0_06-64
mixed mode, sharing):
"WorkerThread15" prio=5 tid=0x0051d0e0 nid=0x187fc00
waiting for monitor entry [0xf151a000..0xf151aab0]
at java.net.PlainSocketImpl.accept
(PlainSocketImpl.java:382)
- waiting to lock <0x268b0120> (a
java.net.SocksSocketImpl)
at java.net.ServerSocket.implAccept
(ServerSocket.java:450)
at java.net.ServerSocket.accept(ServerSocket.java:421)
at
com.webobjects.appserver._private.WOWorkerThread.run
(WOWorkerThread.java:238)
at java.lang.Thread.run(Thread.java:613)
These threads are just waiting for an incoming request.
"Thread-0" daemon prio=5 tid=0x00518260 nid=0x185e600
waiting on condition [0xf0d0a000..0xf0d0aab0]
at java.lang.Thread.sleep(Native Method)
at com.webobjects.appserver.WOApplication
$_LifebeatThread.run(WOApplication.java:1233)
"Session Timeout Thread" daemon prio=5 tid=0x00517b60
nid=0x1867000 waiting on condition [0xf0c89000..0xf0c89ab0]
at java.lang.Thread.sleep(Native Method)
at com.webobjects.appserver.WOSessionStore
$_SessionTimeoutManager.run(WOSessionStore.java:110)
at java.lang.Thread.run(Thread.java:613)
"Low Memory Detector" daemon prio=5 tid=0x0050a880
nid=0x1810800 runnable [0x00000000..0x00000000]
"CompilerThread0" daemon prio=9 tid=0x00509f30
nid=0x1810400 waiting on condition [0x00000000..0xf0b06358]
"Signal Dispatcher" daemon prio=9 tid=0x00509b30
nid=0x1815800 waiting on condition [0x00000000..0x00000000]
"Finalizer" daemon prio=8 tid=0x00509280 nid=0x1810000 in
Object.wait() [0xf0a04000..0xf0a04ab0]
at java.lang.Object.wait(Native Method)
- waiting on <0x26ce7000> (a
java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove
(ReferenceQueue.java:116)
- locked <0x26ce7000> (a
java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove
(ReferenceQueue.java:132)
at java.lang.ref.Finalizer$FinalizerThread.run
(Finalizer.java:159)
"Reference Handler" daemon prio=10 tid=0x00508e90
nid=0x180f000 in Object.wait() [0xf0983000..0xf0983ab0]
at java.lang.Object.wait(Native Method)
- waiting on <0x26ce7080> (a java.lang.ref.Reference
$Lock)
at java.lang.Object.wait(Object.java:474)
at java.lang.ref.Reference$ReferenceHandler.run
(Reference.java:116)
- locked <0x26ce7080> (a java.lang.ref.Reference$Lock)
"main" prio=5 tid=0x00501610 nid=0x1804600 in Object.wait()
[0xf07ff000..0xf08002c0]
at java.lang.Object.wait(Native Method)
- waiting on <0x268b1000> (a
com.webobjects.appserver._WORunLoop)
at
com.webobjects.appserver._WORunLoop._acceptInputBeforeDate
(_WORunLoop.java:217)
at com.webobjects.appserver._WORunLoop.runBeforeDate
(_WORunLoop.java:71)
- locked <0x268b1000> (a
com.webobjects.appserver._WORunLoop)
at com.webobjects.appserver.WOApplication._runOnce
(WOApplication.java:775)
at com.webobjects.appserver.WOApplication.run
(WOApplication.java:900)
at com.webobjects.appserver.WOApplication.main
(WOApplication.java:324)
at com.macxprts.repairstatus.Application.main
(Application.java:34)
at sun.reflect.NativeMethodAccessorImpl.invoke0
(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke
(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at com.webobjects._bootstrap.WOBootstrap.main
(WOBootstrap.java:71)
"VM Thread" prio=9 tid=0x005086b0 nid=0x1803c00 runnable
"VM Periodic Task Thread" prio=9 tid=0x0050bf30
nid=0x181a000 waiting on condition
"Exception Catcher Thread" prio=10 tid=0x00501820
nid=0x1804e00 runnable
Nothing looks hung there, just a WO app waiting for something
to do.
Chuck
On 24 Oct 06, at 10:27 PM, Chuck Hill wrote:
Clark,
This is rather odd! I can't think of what it might be.
Let's try getting a thread dump when it hangs and see where
it is stuck, maybe that will suggest something. Are you
using Log4J or anything else unusual? Are you using Wonder?
If you need help getting a thread dump, this should help:
http://www.gvcsitemaker.com/gvc.webobjects/
faq&mode=single&recordID=41413
Chuck
On Oct 24, 2006, at 9:01 PM, Clark Mueller wrote:
Chuck,
It doesn't appear to be. The appserver user has write
access to the /Library/WebObjects/Logs/RepairStatus
directory, and the files underneath it. I've tried running
from the CLI as both the appserver user and root, with
the same results. Here's an example of the full output:
This command hangs (with the -WOOutputPath flag, in this
case set to /dev/null):
root# /Library/WebObjects/Applications/RepairStatus.woa/
RepairStatus -WOPort 5001 -WOOutputPath /dev/null -
WOCachingEnabled NO -WODebuggingEnabled NO -
WOAutoOpenInBrowser NO -WOAutoOpenClientApplication NO -
WOLifebeatInterval 30 -WOLifebeatEnabled YES -
WOLifebeatDestinationPort 1085 -WOAdaptor
WODefaultAdaptor -WOWorkerThreadCount 8 -
WOListenQueueSize 128 -WOWorkerThreadCountMin 16 -
WOWorkerThreadCountMax 256 -NSProjectSearchPath "()" -
WOSessionTimeOut 3600 -WOApplicationName RepairStatus -
WOMonitorEnabled YES -WONoPause YES
Reading MacOSClassPath.txt ...
Launching RepairStatus.woa ...
java -XX:NewSize=2m -Xmx64m -Xms32m -DWORootDirectory="/
System" -DWOLocalRootDirectory="" -DWOUserDirectory="/
library/webobjects/applications" -DWOEnvClassPath="" -
DWOApplicationClass=com.macxprts.repairstatus.Application
-DWOPlatform=MacOS -Dcom.webobjects.pid=739 -classpath
WOBootstrap.jar com.webobjects._bootstrap.WOBootstrap -
WOPort 5001 -WOOutputPath /dev/null -WOCachingEnabled NO -
WODebuggingEnabled NO -WOAutoOpenInBrowser NO -
WOAutoOpenClientApplication NO -WOLifebeatInterval 30 -
WOLifebeatEnabled YES -WOLifebeatDestinationPort 1085 -
WOAdaptor WODefaultAdaptor -WOWorkerThreadCount 8 -
WOListenQueueSize 128 -WOWorkerThreadCountMin 16 -
WOWorkerThreadCountMax 256 -NSProjectSearchPath "()" -
WOSessionTimeOut 3600 -WOApplicationName RepairStatus -
WOMonitorEnabled YES -WONoPause YES
appRoot is /Library/WebObjects/Applications/
RepairStatus.woa/Contents
Loading /Library/WebObjects/Applications/RepairStatus.woa/
Contents/MacOS/MacOSClassPath.txt
Generated classpath:
/Library/WebObjects/Applications/RepairStatus.woa/
Contents/Resources/Java/
/Library/WebObjects/Applications/RepairStatus.woa/
Contents/Resources/Java/repairstatus.jar
/System/Library/Frameworks/JavaWebObjects.framework/
Resources/Java/javawebobjects.jar
/System/Library/Frameworks/JavaFoundation.framework/
Resources/Java/javafoundation.jar
/System/Library/Frameworks/JavaXML.framework/Resources/
Java/javaxml.jar
/System/Library/Frameworks/JavaEOAccess.framework/
Resources/Java/javaeoaccess.jar
/System/Library/Frameworks/JavaEOControl.framework/
Resources/Java/javaeocontrol.jar
/System/Library/Frameworks/JavaJDBCAdaptor.framework/
Resources/Java/javajdbcadaptor.jar
/Library/Frameworks/JavaWOExtensions.framework/
Resources/Java/JavaWOExtensions.jar
^C^C^C
This command works (no -WOOutputPath flag at all):
# sudo -u appserver /Library/WebObjects/Applications/
RepairStatus.woa/RepairStatus -WOPort 5001 -
WOCachingEnabled NO -WODebuggingEnabled NO -
WOAutoOpenInBrowser NO -WOAutoOpenClientApplication NO -
WOLifebeatInterval 30 -WOLifebeatEnabled YES -
WOLifebeatDestinationPort 1085 -WOAdaptor
WODefaultAdaptor -WOWorkerThreadCount 8 -
WOListenQueueSize 128 -WOWorkerThreadCountMin 16 -
WOWorkerThreadCountMax 256 -NSProjectSearchPath "()" -
WOSessionTimeOut 3600 -WOApplicationName RepairStatus -
WOMonitorEnabled YES -WONoPause YES
Reading MacOSClassPath.txt ...
Launching RepairStatus.woa ...
java -XX:NewSize=2m -Xmx64m -Xms32m -DWORootDirectory="/
System" -DWOLocalRootDirectory="" -DWOUserDirectory="/
library/webobjects/logs/RepairStatus" -DWOEnvClassPath=""
-
DWOApplicationClass=com.macxprts.repairstatus.Application
-DWOPlatform=MacOS -Dcom.webobjects.pid=782 -classpath
WOBootstrap.jar com.webobjects._bootstrap.WOBootstrap -
WOPort 5001 -WOCachingEnabled NO -WODebuggingEnabled NO -
WOAutoOpenInBrowser NO -WOAutoOpenClientApplication NO -
WOLifebeatInterval 30 -WOLifebeatEnabled YES -
WOLifebeatDestinationPort 1085 -WOAdaptor
WODefaultAdaptor -WOWorkerThreadCount 8 -
WOListenQueueSize 128 -WOWorkerThreadCountMin 16 -
WOWorkerThreadCountMax 256 -NSProjectSearchPath "()" -
WOSessionTimeOut 3600 -WOApplicationName RepairStatus -
WOMonitorEnabled YES -WONoPause YES
appRoot is /Library/WebObjects/Applications/
RepairStatus.woa/Contents
Loading /Library/WebObjects/Applications/RepairStatus.woa/
Contents/MacOS/MacOSClassPath.txt
Generated classpath:
/Library/WebObjects/Applications/RepairStatus.woa/
Contents/Resources/Java/
/Library/WebObjects/Applications/RepairStatus.woa/
Contents/Resources/Java/repairstatus.jar
/System/Library/Frameworks/JavaWebObjects.framework/
Resources/Java/javawebobjects.jar
/System/Library/Frameworks/JavaFoundation.framework/
Resources/Java/javafoundation.jar
/System/Library/Frameworks/JavaXML.framework/Resources/
Java/javaxml.jar
/System/Library/Frameworks/JavaEOAccess.framework/
Resources/Java/javaeoaccess.jar
/System/Library/Frameworks/JavaEOControl.framework/
Resources/Java/javaeocontrol.jar
/System/Library/Frameworks/JavaJDBCAdaptor.framework/
Resources/Java/javajdbcadaptor.jar
/Library/Frameworks/JavaWOExtensions.framework/
Resources/Java/JavaWOExtensions.jar
[2006-10-24 22:53:17 CDT] <main> Creating LifebeatThread
now with: RepairStatus 5001 <host>/<ip> 1085 30000
Welcome to RepairStatus!
[2006-10-24 22:53:17 CDT] <main> The URL for webserver
connect is:
http://<ip>/cgi-bin/WebObjects/RepairStatus.woa/-5001
[2006-10-24 22:53:17 CDT] <main> null
[2006-10-24 22:53:17 CDT] <main> Waiting for requests...
Thanks,
Clark
On 24 Oct 06, at 9:35 PM, Chuck Hill wrote:
Hi Clark,
It is probably a permissions problem as here:
http://www.gvcsitemaker.com/gvc.webobjects/
faq&mode=single&recordID=19193
HTH
Chuck
On Oct 24, 2006, at 8:31 PM, Clark Mueller wrote:
Hi everyone,
I'm having a problem deploying a new WO application.
This is a very small app, and it's the first that I've
built for deployment with WOLips (I am not sure if
that's related or not, but I did it according to the
tutorial @ http://www.objectstyle.org/confluence/display/
WOL/Deploy+a+WO+Application). What's happening is that
on launch, the application hangs immediately after
printing the class path. In monitor, it eventually times
out as a death. From the CLI, it looks like it just
hangs that way indefinitely. The launch arguments are
like so:
/Library/WebObjects/Applications/RepairStatus.woa/
RepairStatus -WOPort 5001 -WOOutputPath /dev/null -
WOCachingEnabled NO -WODebuggingEnabled NO -
WOAutoOpenInBrowser NO -WOAutoOpenClientApplication NO -
WOLifebeatInterval 30 -WOLifebeatEnabled YES -
WOLifebeatDestinationPort 1085 -WOAdaptor
WODefaultAdaptor -WOWorkerThreadCount 8 -
WOListenQueueSize 128 -WOWorkerThreadCountMin 16 -
WOWorkerThreadCountMax 256 -NSProjectSearchPath "()" -
WOSessionTimeOut 3600 -WOApplicationName RepairStatus -
WOMonitorEnabled YES -WONoPause YES
I've found that if I remove WOOoutputPath, the app
launches fine, but if it is set (apparently to
anything), the app will hang. Other apps on the server
are not having any problems launching.
Has anyone seen this before? Any thoughts?
Thanks,
Clark
--
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-deploy mailing list (Webobjects-
email@hidden)
Help/Unsubscribe/Update your Subscription:
email@hidden
This email sent to email@hidden
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-deploy mailing list (Webobjects-
email@hidden)
Help/Unsubscribe/Update your Subscription:
email@hidden
This email sent to email@hidden
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-deploy mailing list (Webobjects-
email@hidden)
Help/Unsubscribe/Update your Subscription:
40mdimension.com
This email sent to email@hidden
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
40mac.com
This email sent to email@hidden
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
40mdimension.com
This email sent to email@hidden
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
40mac.com
This email sent to email@hidden
_______________________________________________
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