The data structures are identical to those used in a C program. The solution to your problem is documented. I wrote a 3D engine on JOGL a few months ago; everything required to do that is documented, albeit in C.
The problems I had regarding threading and GLCanvas objects were mainly due to my own lack of experience in dealing with multithreaded apps.
I assume 'rasterised pixel data' means textures in this case. So basically you need to turn an image into an array of pixel colour values, right? Yeah, that is a bit of a sod in Java; no one ever thought it would be necessary to handle an image as anything other than an object... Shortsightedness of the worst kind.
*digs out the HyperDrive OGL abstraction layer*
Pixels are stored in row-major order, and each one is a quadruple of either bytes or floats depending on the texture format you've selected. Remember to set the byte order of any buffer handling non-'byte' values to ByteOrder.nativeOrder() before writing the pixels to it, or you'll end up with some really weird, frustrating bugs.
You can use a PixelGrabber to get pixel data out of a BufferedImage object in TYPE_INT_RGB format, then do some byte-twiddling to fill a byte array. The PixelGrabber will fill an array of ints, one per pixel. Each int consists of the four colour elements in ARGB order (alpha being the most significant byte). If you like, I'll PM you some code to do the conversion.
OpenGL normally takes pixel colour values in RGBA order. Plus, if you're using buffers that store 'float' colour values, you're probably in for a world of pain.
Most of JOGL's problems are less to do with a lack of Java-specific documentation and more to do with a lack of tools for converting objects to raw data.