Autor Thema: PS2PDF mit JavaAgent - IllegalArgumentException -Callback method is inaccessible  (Gelesen 2235 mal)

Offline endiAN

  • Frischling
  • *
  • Beiträge: 35
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

Offline Ralf_M_Petter

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.879
  • Geschlecht: Männlich
  • Jeder ist seines eigenen Glückes Schmied
    • Ralf's Blog
Jede Menge Tipps und Tricks zu IT Themen findet Ihr auf meinem Blog  Everything about IT  Eine wahre Schatzkiste sind aber sicher die Beiträge zu meinem Lieblingsthema Tipps und Tricks zu IBM Notes/Domino Schaut doch einfach mal rein.

Offline endiAN

  • Frischling
  • *
  • Beiträge: 35
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

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz