Getting nearly double the length when reading byte[] from postgres with jpa

后端 未结 5 729
夕颜
夕颜 2021-01-06 11:50

I have an Image class that has a byte[] to contain the actual image data. I\'m able to upload and insert the image just fine in my webapp. When I attempt to display the im

5条回答
  •  星月不相逢
    2021-01-06 12:34

    Supplementary answer for GlassFish 3.x users (principles may apply to other app servers)

    You may be inadvertently using an old PostgreSQL JDBC driver. You can test this by injecting a DataSource somewhere (e.g. an EJB) and executing the following on it:

    System.out.println(ds.getConnection().getMetaData().getDriverVersion());

    In my case, it was 8.3 which was unexpected since I was deploying with 9.1 drivers.

    To find out where this was coming from:

    System.out.println(Class.forName("org.postgresql.Driver").getProtectionDomain().getCodeSource().getLocation());

    As it turned out for me, it was in the lib directory of my GlassFish domain. I'm not sure how it got there - GlassFish certainly doesn't ship that way - so I just removed it and the problem went away.

提交回复
热议问题