From: macolman at tiscali.co.uk (Mark Colman) Date: Sun, 23 Apr 2006 02:00:31 +0100 Subject: [Pljava-dev] Trigger problem Message-ID: <000001c66671$519dee00$c800a8c0@DUR.AC.UK> Hi, I am running PostgreSQL 8.1 on Windows and installed pl/java automatically using the Windows installer. I have created a simple table and executed the following: Create function emailme() Returns trigger As 'dbudf.SendMail.send' Language java; Create trigger trg_emailme After insert on aTable For each row Execute procedure emailme(); I have written the following class: package dbudf; import javax.mail.*; import javax.mail.internet.*; import java.util.*; public class SendMail { public static void send(org.postgresql.pljava.TriggerData td) {try{ Properties props = System.getProperties(); props.put("mail.smtp.host", "smtp.tiscali.co.uk"); Session session = Session.getDefaultInstance(props, null); Message msg = new MimeMessage(session); msg.setFrom(new InternetAddress("macolman at tiscali.co.uk")); msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse("m.a.colman at durham.ac.uk", false)); msg.setSubject("A change to your data"); msg.setText("Your database has been changed.\n\nPlease use the PGAdmin tool to browse the table involved.\n\nMark Colman"); msg.setHeader("X-Mailer", "LOTONtechEmail"); msg.setSentDate(new Date()); Transport.send(msg); } catch (Exception e) { System.err.println("Error: "+e.toString()); } } } Which compiles fine, put it in a directory dbudf, and added the directory to a jar called SendMail.jar - I can then call dbudf.SendMail.send(null) from within a simple test harness and it sends the e-mail message expected. I have then executed Select sqlj.install_jar('file:///c:/j2sdk1.4.2_09/lib/SendMail.jar','SendMail',true ); Select sqlj.set_classpath('public','SendMail'); Which seems fine. Then I insert a row into the table, and get ERROR: Unable to find static method dbudf.SendMail.send with signature (Lorg/postgresql/pljava/TriggerData;)V Any help greatly appreciated - I am sure this is something glaringly obvious that I'm missing. Mark