Das Notes Forum

Domino 9 und frühere Versionen => ND9: Entwicklung => Thema gestartet von: endiAN am 21.05.15 - 14:54:30

Titel: PS2PDF mit JavaAgent - IllegalArgumentException -Callback method is inaccessible
Beitrag von: endiAN am 21.05.15 - 14:54:30
Hallo,

kennt jemand die Lösung für folgendes Problem:

Ein Java-Agent soll unter anderem aus einer PostScript-Datei eine PDF-Datei erzeugen. Dafür nutze ich Ghost4j. Hier der verwendete Code:

Code
public class JavaAgent extends AgentBase {

	public void NotesMain() {

        //get Ghostscript instance
        Ghostscript gs = Ghostscript.getInstance();
		System.out.println("nach Ghostscript gs = Ghostscript.getInstance();...");

        //prepare Ghostscript interpreter parameters
        //refer to Ghostscript documentation for parameter usage

	    String[] gsArgs = new String[10];

	    try {

	         gsArgs[0] = "-ps2pdf";
	         gsArgs[1] = "-dNOPAUSE";
	         gsArgs[2] = "-dBATCH";
	         gsArgs[3] = "-dSAFER";
	         gsArgs[4] = "-sDEVICE=pdfwrite";
	         gsArgs[5] = "-sOutputFile=c:\\reports\\input4.pdf";
	         gsArgs[6] = "-c";
	         gsArgs[7] = ".setpdfwrite";
	         gsArgs[8] = "-f";
	         gsArgs[9] = "c:\\reports\\input4.ps";//input file name

	    } catch(Exception e) {
	              e.printStackTrace();
	              System.out.println("ERROR: " + e.getMessage());
	              return;
	    }
        
        //execute and exit interpreter
        try {
    		System.out.println("vor gs.initialize(gsArgs);...");
        	gs.initialize(gsArgs);               
    		System.out.println("nach gs.initialize(gsArgs);...");
            gs.exit();
    		System.out.println("nach gs.exit();...");

        }catch (GhostscriptException e) {
            System.out.println("ERROR: " + e.getMessage());
            return;
        } 
	}
}


Auf meinem Entwicklungsrechner(Notes9.01) funktioniert es einwandfrei. Auf zwei weiteren Test-Rechnern(Note8.53 und Notes9.01) erhalte ich folgende Fehlermeldung:

Code
Exception in thread "AgentThread: JavaAgent" java.lang.IllegalArgumentException: Callback method is inaccessible, make sure the interface is public: public abstract int org.ghost4j.GhostscriptLibrary$stdout_fn.callback(com.sun.jna.Pointer,java.lang.String,int)
	at com.sun.jna.CallbackReference$DefaultCallbackProxy.<init>(CallbackReference.java:367)
	at com.sun.jna.CallbackReference.<init>(CallbackReference.java:143)
	at com.sun.jna.CallbackReference.getFunctionPointer(CallbackReference.java:332)
	at com.sun.jna.CallbackReference.getFunctionPointer(CallbackReference.java:314)
	at com.sun.jna.Function.convertArgument(Function.java:496)
	at com.sun.jna.Function.invoke(Function.java:258)
	at com.sun.jna.Library$Handler.invoke(Library.java:216)
	at $Proxy0.gsapi_set_stdio(Unknown Source)
	at org.ghost4j.Ghostscript.initialize(Ghostscript.java:323)
	at JavaAgent.NotesMain(JavaAgent.java:92)
	at lotus.domino.AgentBase.runNotes(Unknown Source)
	at lotus.domino.NotesThread.run(Unknown Source)

Ich kann mir den Fehler überhaupt nicht erklären. Bitte helft.

Danke im Voraus


Grüße

Andreas
Titel: Re: PS2PDF mit JavaAgent - IllegalArgumentException -Callback method is inaccessible
Beitrag von: Ralf_M_Petter am 22.05.15 - 09:19:18
Möglicherweise könnte folgender Blog Post eine Erklärung liefern. http://lekkimworld.com/2013/06/20/java_in_notes_domino_explained_on_java_security_and_how_it_relates_to_notes_domino.html
Titel: Re: PS2PDF mit JavaAgent - IllegalArgumentException -Callback method is inaccessible
Beitrag von: endiAN am 22.05.15 - 12:16:36
Hallo Ralf_M_Petter,

vielen Dank für den Link. Der hat genau ins Schwarze getroffen. Es geht. Wunderbares Gefühl, wenn der Schmerz nachlässt. Habe die java.policy vom Rechner, wo es geht, auf die Rechner kopiert, auf denen es nicht geht. Jetzt werde ich mal die Unterschiede suchen und schauen, wo hier der Haken ist. Wenn man erst einmal weiss, wo man suchen muß, ist das viel wert...

Unglaublich!!!

Nochmals Vielen Dank.


Beste Grüße

Andreas