off screen image

ncubukcu ncubukcu at nc.rr.com
Mon Aug 7 07:57:25 MDT 2006


Thank you very much Bill
my exploration on this still continues but at least for now I found a 
solution to run visad in headless mode. First thing I do is to add
System.setProperty("java.awt.headless", "true");
before I do any visad stuff. This puts it in headles mode for sure.. 
Apparently calling an offscreen constructor is not enough ( the solution 
might be as simple as adding this line to one of the off screen 
constructor). Then I do
DisplayImplJ2D display = new DisplayImplJ2D("display1", xSize,ySize);
which is one of the constructor that works in headless mode. 
Unfortunately from here on the only thing I can do is to create a 
buffered image using display.getImage()/getImage(true).
I am still trying to see If I can do more with visad rather than just 
image io. If I can find a way to serialize my visad snippets, then I can 
make more interactive displays.  Sun docs on serialization implies that 
such things (serialize a code that uses "not serializable" 
methods/classes) are doable but I just don't know how it works yet. One 
step at a time:-)
nihat cubukcu
Bill Hibbard wrote:
> Hi nc,
>
> It looks to me like the problem is the declaration:
>
>   private static Component DUMMY = null;
>
> in DisplayEvent.java. The construction of a JPanel
> for this variable is inside a try {...}, but the
> declaration itself is probably triggering the
> NoClassDefFoundError.
>
> I don't work much with VisAD anymore, but perhaps this
> declaration can be changed to Object, with a cast to
> Component in the DisplayEvent.getDisplayComponent().
> Of course, the declaration of Component as the return
> value of this method may be enough to trigger a
> NoClassDefFoundError when a DisplayEvent is constructed.
> You or someone would have to experiment with this.
>
> My advice would be to see if you can find some changes
> to VisAD so that Java2D offscreen rendering will work
> on a system without a display. If you can find simple
> changes, perhaps one of the VisAD developers will apply
> them to the system.
>
> Good luck,
> Bill
>
> On Wed, 2 Aug 2006, ncubukcu wrote:
>
>   
>> if I remotely connect to my visad server and run a test program that
>> constructs something like following;
>> DisplayImplJ2D display = new DisplayImplJ2D("display1",300,300);
>>
>> this is what I get when I run my code;
>>
>> kCGErrorRangeCheck : Window Server communications from outside of
>> session allowed for root and console user only
>> Exception in thread "main" java.lang.NoClassDefFoundError
>>         at visad.DisplayRenderer.setWaitFlag(DisplayRenderer.java:176)
>>         at
>> visad.java2d.DisplayRendererJ2D.setWaitFlag(DisplayRendererJ2D.java:943)
>>         at visad.DisplayImpl.doAction(DisplayImpl.java:1732)
>>         at visad.java2d.DisplayImplJ2D.doAction(DisplayImplJ2D.java:312)
>>         at visad.ActionImpl.run(ActionImpl.java:353)
>>         at visad.util.ThreadPool$ThreadMinnow.run(ThreadPool.java:95)
>> java.lang.NoClassDefFoundError
>>         at visad.DisplayImpl.clearMaps(DisplayImpl.java:2191)
>>         at visad.java2d.DisplayImplJ2D.clearMaps(DisplayImplJ2D.java:303)
>>         at visad.DisplayImpl.<init>(DisplayImpl.java:170)
>>         at visad.java2d.DisplayImplJ2D.<init>(DisplayImplJ2D.java:233)
>>         at visad.java2d.DisplayImplJ2D.<init>(DisplayImplJ2D.java:211)
>>         at visad.java2d.DisplayImplJ2D.<init>(DisplayImplJ2D.java:203)
>>         at CreateImage.main(CreateImage.java:63)
>> *
>> *I know why I get this exception.. it want's me to run it in headless
>> mode or I have to set  display to my local machine.  What I don't
>> understand is why the off screen constructor above needs a display. Any
>> idea how I can go around this. I have done all my excercises on a local
>> machine but now that I need to use remote machine for visad, all my test
>> cases are failing...
>> thanks
>> nc
>>
>> ==============================================================================
>> To unsubscribe visad, visit:
>> http://www.unidata.ucar.edu/mailing-list-delete-form.html
>> ==============================================================================
>>
>>
>>     
>
> ==============================================================================
> To unsubscribe visad, visit:
> http://www.unidata.ucar.edu/mailing-list-delete-form.html
> ==============================================================================
>
>
>   

==============================================================================
To unsubscribe visad, visit:
http://www.unidata.ucar.edu/mailing-list-delete-form.html
==============================================================================



More information about the visad mailing list