Fehler beim Hochladen: No X11 DISPLAY variable was set, but this program performed an

P_H_I_L

Erfahrenes Mitglied
Hallo,
ich versuche mit JAVA ein Bild zu rescalen. Ich schneide es auf eine bestimmt höhe/breite zu.... Unter Windows läuft es fehlerfrei. Doch deploye ich das ganze auf meinem linux server (centos) (Webapp--> warfile unter jboss)
kommt diese meldung:
Fehler beim Hochladen: No X11 DISPLAY variable was set, but this program performed an operation which requires it.

Wie kann ich den Fehler beheben.
Ich greife auf den Server nur mittls ssh puty zu. habe keine gui oder ähnliches.

Gibt es packages oder libraries, die man installieren kann um den fehler zu umgehen?

Lg,
Phil
 
Hallo,

ich weiß nicht ganz wie du es umgesetzt hast. Ich behaupte mal, dass was du nutzt auf den X11-Server zugreifen möchte. Dann kannst du nichts installieren. Ok, du könntest einen X11-Server installieren und starten, das ist aber nicht zweckmäßig.

Könntest du eventuell mal Source-Code zeigen?

Gruß

Sascha
 
verstehe beide antworten nicht ganz. sorry
bitte um weitere tipps.
also ich hab einen jboss, da ist ein war-file (webapp-projekt) deployed.
das alles läuft unter centOS.

DedicatedServer von mir....

Was muss ich wie starten mit diesem Headless Parameter :-)
den Jboss? Bitte um Info.

Und wie installiert man x11? Gibts da Packages?
Code:
public InputStream resizingFunk(InputStream in) {
        ByteArrayInputStream bis = null;
        try {

            BufferedImage source = ImageIO.read(in);
            int iw = source.getWidth(null);
            int ih = source.getHeight(null);
            if (iw > ih) {
                int numOfTests = 10;
                long[] timeArray = new long[numOfTests];
                //test 1-phase Bicubic Java2D-native resize
                for (int sizeIdx = 0; sizeIdx < thumbnail_sizes_w.length; sizeIdx++) {
                    int destWidth = thumbnail_sizes_w[sizeIdx][0];
                    int destHeight = thumbnail_sizes_w[sizeIdx][1];
                    BufferedImage result = null;
                    for (int testNum = 0; testNum < numOfTests; testNum++) {
                        long start = System.nanoTime();
                        result = resizeJava2DNative(source, destWidth, destHeight,
                                RenderingHints.VALUE_INTERPOLATION_BICUBIC);
                        timeArray[testNum] = System.nanoTime() - start;
                    }
                    //sort test results
                    Arrays.sort(timeArray);
                    //calculate average time except the best and the worst results
                    long sum = 0;
                    for (int i = 1; i < numOfTests - 1; i++) {
                        sum += timeArray[i] / 1000000;
                    }
                    //System.out.println("Average time of 1-phase Java2D-BICUBIC - [" + destWidth + "x" + destHeight + "]: " + (sum / (numOfTests - 2)) + "ms");
                    //writeJPEG(result, "C:\\result_java2d_" + destWidth + "_" + destHeight + ".jpg");


                    ByteArrayOutputStream out = new ByteArrayOutputStream();
                    ImageIO.write(result, "jpg", out);

                    // Read the outputstream into the inputstream for the return value
                    bis = new ByteArrayInputStream(out.toByteArray());



                }
            } else {
                int numOfTests = 10;
                long[] timeArray = new long[numOfTests];
                //test 1-phase Bicubic Java2D-native resize
                for (int sizeIdx = 0; sizeIdx < thumbnail_sizes_h.length; sizeIdx++) {
                    int destWidth = thumbnail_sizes_h[sizeIdx][0];
                    int destHeight = thumbnail_sizes_h[sizeIdx][1];
                    BufferedImage result = null;
                    for (int testNum = 0; testNum < numOfTests; testNum++) {
                        long start = System.nanoTime();
                        result = resizeJava2DNative(source, destWidth, destHeight,
                                RenderingHints.VALUE_INTERPOLATION_BICUBIC);
                        timeArray[testNum] = System.nanoTime() - start;
                    }
                    //sort test results
                    Arrays.sort(timeArray);
                    //calculate average time except the best and the worst results
                    long sum = 0;
                    for (int i = 1; i < numOfTests - 1; i++) {
                        sum += timeArray[i] / 1000000;
                    }
                    System.out.println("Average time of 1-phase Java2D-BICUBIC - [" + destWidth + "x" + destHeight + "]: " + (sum / (numOfTests - 2)) + "ms");
                    //writeJPEG(result, "C:\\result_java2d_" + destWidth + "_" + destHeight + ".jpg");
                    ByteArrayOutputStream out = new ByteArrayOutputStream();
                    ImageIO.write(result, "jpg", out);

                    // Read the outputstream into the inputstream for the return value
                    bis = new ByteArrayInputStream(out.toByteArray());
                }

Ich denke der Fehler tritt beim ImageIO auf. HAt wohl mas mit graphics zu tun. Kanns am server leider nicht debuggen. Aber laut Inet ist das der Fehler...

Lg,
Phil
 
Ich lade in prerender event der Seite diesen code:
System.setProperty("java.awt.headless", "true");


hilft auch nix.... :-(
 
habe das gleich ganz oben eingebaut. aber dann kommt file not found...
Sorry das ich mich so blöd stell, aber irgendwie komm ich nicht damit zurecht...

wie genau muss ich die codezeile im *.sh einbinden, damit die JVM mit dem Parameter gestartet wird?

Lg,
Phil
 
so habs jetzt den java_ops übergeben.

der Test. Piep Ton erscheint... Super.
Doch beim hochladen bekomme ich null zuück. Muss jetzt mal aufwendige Debug-Meldungen ins logging schreiben lassen... Irgendwas geht noch nicht...

Lg,
Phil
 
so konnte durch die debug infos nicht viel rausbekommen.
die x11 meldung ist weg. alerdings tritt noch ein null auf.

Lokal unter windows auf glassfish gings, kann es sein, dass im jboss/server/default/lib noch was fehlt?
gibt es für das ganze libs:
dieso sind eher untypisch und hab ich noch nicht gebraucht, darum frag ich euch ob ihr wisst wie die jarfiles hierzu heißen. Ober gibts ne möglichkeit diese zu downloaden. Google liefert nichts gutes... :-(

Code:
import javax.imageio.IIOImage;
import javax.imageio.ImageIO;
import javax.imageio.ImageWriteParam;
import javax.imageio.ImageWriter;
import javax.imageio.stream.FileImageOutputStream;
import javax.imageio.stream.ImageInputStream;
import javax.swing.ImageIcon;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.GraphicsConfiguration;
import java.awt.GraphicsDevice;
import java.awt.GraphicsEnvironment;
import java.awt.Image;
import java.awt.RenderingHints;
import java.awt.Toolkit;
import java.awt.geom.AffineTransform;
import java.awt.image.BufferedImage;

Ich denke für das java.awt muss es ein lib geben oder?
und für t javax.imageio.


Für Tipps bin ich sehr dankbar.
 
Zurück