agora inbox for pljava-dev@postgresql.org  
help / color / mirror / Atom feed
Subject: [Pljava-dev] Trigger problem
Date: Sun, 23 Apr 2006 02:00:31 +0100
Message-ID: <000001c66671$519dee00$c800a8c0@DUR.AC.UK> (raw)

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




view thread (8+ messages)  latest in thread

Message-ID: <000001c66671$519dee00$c800a8c0@DUR.AC.UK>
Permalink:  ../000001c66671$519dee00$c800a8c0@DUR.AC.UK/
Also on:    postgresql.org/message-id/000001c66671$519dee00$c800a8c0@DUR.AC.UK

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pljava-dev@postgresql.org
  Subject: Re: [Pljava-dev] Trigger problem
  In-Reply-To: <000001c66671$519dee00$c800a8c0@DUR.AC.UK>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox