[Pljava-dev] Passing custom java object to PL/Java

From: pmichalek at click(dot)cz ( Petr Michálek )
To:
Subject: [Pljava-dev] Passing custom java object to PL/Java
Date: 2005-10-17 21:45:05
Message-ID: 43541B61.8040400@click.cz
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pljava-dev

Hi!

I don't know, if I'm right, but try to serialize object Recurrence like
this:

CLIENT SIDE:
============
class Recurrence implements Serializable //...should be enough
{
...
}

Recurrence rec = ....;
ByteArrayOutputStream baos = new ...;
ObjectOutputStream oos = new ObjectOutputStream( baos );
oos.writeObject( rec );
oos.close();

byte[] value = baos.toByteArray();
statement.setBinaryStream( i++, new
ByteArrayInputStream(value),value.length); // Try use type BLOB!
// I don't know if this is most effective methond, how to pass BLOB
argument to JDBC statement...

SERVER SIDE:
============
....
Recurrence rec = (Recurrence)new ObjectInputStream( byteArrayInputStream
).readObject();

Try it and tell us if such method works!

If it throws SerializebleException, try to pass simpler argument like
string and so on.

Regards
Petr Michalek

Rakesh Vidyadharan wrote:
> Is it possible to pass custom Java objects to PL/Java (the reverse of
> passing from PL/Java to client programs? The error I get seems to
> indicate that the custom data type I defined in the deployment
> descriptor is not recognised when I do the setType on PGobject.
>
> I tried to do so as shown in the following files:
>
> http://www.rakeshv.org/tmp/test.java - wrapper program that does the
> JDBC invocation from client code.
>
> http://www.rakeshv.org/tmp/RecurrenceTest.java - The PL/Java utility class
>
> http://www.rakeshv.org/tmp/Recurrence.java - The custom data that is
> passed from client to server.
>
> http://www.rakeshv.org/tmp/DeploymentDescriptor.ddr - The deployment
> descriptor
>
> The following is the stack trace from the program:
>
> org.postgresql.util.PSQLException: Unknown type testType.
> at org.postgresql.jdbc2.AbstractJdbc2Statement.setPGobject
> (AbstractJdbc2Statement.java:1480)
> at org.postgresql.jdbc2.AbstractJdbc2Statement.setObject
> (AbstractJdbc2Statement.java:1616)
> at org.postgresql.jdbc3.AbstractJdbc3Statement.setObject
> (AbstractJdbc3Statement.java:1436)
> at org.postgresql.jdbc2.AbstractJdbc2Statement.setObject
> (AbstractJdbc2Statement.java:1627)
> at test.main(test.java:26)
>
> Rakesh
> _______________________________________________
> Pljava-dev mailing list
> Pljava-dev at gborg.postgresql.org
> http://gborg.postgresql.org/mailman/listinfo/pljava-dev
>
>
>

In response to

Responses

Browse pljava-dev by date

  From Date Subject
Next Message Rakesh Vidyadharan 2005-10-18 03:05:30 [Pljava-dev] Passing custom java object to PL/Java
Previous Message Thomas Hallgren 2005-10-17 18:58:53 [Pljava-dev] Passing custom java object to PL/Java