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
>
>
>
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 |