Podpięcie GUI pod WWW

0

Witam, piszę jeszcze raz tym razem z inny problemem, a raczej dalszym rozwinięciem aplikacji, chciałbym umieścić swoją aplikację która zawiera GUI na stronę WWW, tak aby powstała z niej aplikacja web'owa, nie będzie się ona łączyła z bazą danych, chodzi chyba o zwykły applet. Pytanie jest takie, ile zmian trzeba będzie przeprowadzić w tym kodzie aby umożliwić podpięcie go do strony WWW.

package fop;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.IOException;
import java.io.OutputStream;

import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.xml.transform.Result;
import javax.xml.transform.Source;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.sax.SAXResult;
import javax.xml.transform.stream.StreamSource;

import org.apache.commons.io.FileUtils;
import org.apache.fop.apps.FOUserAgent;
import org.apache.fop.apps.Fop;
import org.apache.fop.apps.FopFactory;
import org.apache.fop.apps.MimeConstants;

public class GUI extends JFrame implements ActionListener{

	JLabel lXSL, lXML, lPDF;
	JTextField tXSL,tXML,tPDF;
	JButton bXSL, bXML, bKonwertuj, bMiejsceDocelowe;
	String sXML, sXSL, sPDF;
	
	public GUI()
	{
		//window
		setSize(400,400);
		setTitle("Konwerter XSL:FO");
		setLayout(null);
		
		//label
		lXML = new JLabel("Plik XML:");
		lXML.setBounds(60, 50, 150, 20);
		add(lXML);
		
		lXSL = new JLabel("Plik XSL:");
		lXSL.setBounds(60, 70, 150, 20);
		add(lXSL);
		
		lPDF = new JLabel("Plik PDF:");
		lPDF.setBounds(60, 90, 150, 20);
		add(lPDF);
		
		//text
		tXML = new JTextField("");
		tXML.setBounds(120, 50, 150, 20);
		add(tXML);
		
		tXSL = new JTextField("");
		tXSL.setBounds(120, 70, 150, 20);
		add(tXSL);
		
		tPDF = new JTextField("");
		tPDF.setBounds(120, 90, 150, 20);
		add(tPDF);
		
		//button
		bXML = new JButton("Wczytaj XML");
		bXML.setBounds(50, 150, 110, 20);
		add(bXML);
		bXML.addActionListener(this);
		
		bXSL = new JButton("Wczytaj XSL");
		bXSL.setBounds(190, 150, 110, 20);
		add(bXSL);
		bXSL.addActionListener(this);
		
		bKonwertuj = new JButton("Konwertuj");
		bKonwertuj.setBounds(100, 210, 170, 50);
		add(bKonwertuj);
		bKonwertuj.addActionListener(this);
		
		bMiejsceDocelowe = new JButton("Miejsce docelowe PDF");
		bMiejsceDocelowe.setBounds(100, 180, 170, 20);
		add(bMiejsceDocelowe);
		bMiejsceDocelowe.addActionListener(this);
		
	}
	
	
	@Override
	public void actionPerformed(ActionEvent e) {
		Object z = e.getSource();
		if(z==bXML)
		{
			JFileChooser fc = new JFileChooser();
			if (fc.showOpenDialog(null)==JFileChooser.APPROVE_OPTION)
			{
				File plik_xml = fc.getSelectedFile();
				JOptionPane.showMessageDialog(null,"Wybrany plik to: "+ plik_xml.getAbsolutePath());
				tXML.setText(plik_xml.getName());
				sXML = plik_xml.getAbsolutePath();
			}
		}
		else if(z==bXSL)
		{
			JFileChooser fc = new JFileChooser();
			if (fc.showOpenDialog(null)==JFileChooser.APPROVE_OPTION)
			{
				File plik_xsl = fc.getSelectedFile();
				JOptionPane.showMessageDialog(null,"Wybrany plik to: "+ plik_xsl.getAbsolutePath());
				tXSL.setText(plik_xsl.getName());
				sXSL = plik_xsl.getAbsolutePath();
			}
		}
		else if(z==bMiejsceDocelowe)
		{
			JFileChooser fc = new JFileChooser();
			if (fc.showSaveDialog(null)==JFileChooser.APPROVE_OPTION)
			{
				File plik_pdf = fc.getSelectedFile();
				JOptionPane.showMessageDialog(null, "Miejsce docelowe: "+plik_pdf);
				tPDF.setText(plik_pdf.getName());
				sPDF = plik_pdf.getAbsolutePath();
			}
		}
		else if (z==bKonwertuj)
		{
        try {
            System.out.println("XML->PDF\n");
            System.out.println("Przygotowanie...");

            // Setup input and output files  
            File xmlfile = new File(sXML);
            File xsltfile = new File(sXSL);
            File pdffile = new File(sPDF);

            System.out.println("Plik wejściowy XML: (" + xmlfile + ")");
            System.out.println("Plik wejściowy XSL: (" + xsltfile+ ")");
            System.out.println("Plik wyjściowy PDF: (" + pdffile + ")");
            System.out.println();
            System.out.println("Konwertowanie...");

            // configure fopFactory as desired
            FopFactory fopFactory = FopFactory.newInstance();

            FOUserAgent foUserAgent = fopFactory.newFOUserAgent();
            // configure foUserAgent as desired

            // Setup output
            OutputStream out = new java.io.FileOutputStream(pdffile);
            out = new java.io.BufferedOutputStream(out);

            try {
                // Construct fop with desired output format
                Fop fop = fopFactory.newFop(MimeConstants.MIME_PDF, foUserAgent, out);
                System.out.println("Tworzenie PDF...");
                // Setup XSLT
                TransformerFactory factory = TransformerFactory.newInstance();
                Transformer transformer = factory.newTransformer(new StreamSource(xsltfile));

            // Set the value of a <param> in the stylesheet
                transformer.setParameter("versionParam", "2.0");

                // Setup input for XSLT transformation
                Source src = new StreamSource(xmlfile);

                // Resulting SAX events (the generated FO) must be piped through to FOP
                Result res = new SAXResult(fop.getDefaultHandler());

                // Start XSLT transformation and FOP processing
                transformer.transform(src, res);
            } finally {
                out.close();
            }

            System.out.println("Sukces!");
    } catch (Exception e1) {
            e1.printStackTrace(System.err);
            System.exit(-1);
            }
	}
	}

	public static void main(String[] args)
	{
		GUI aplikacja = new GUI();
		aplikacja.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		aplikacja.setVisible(true);
	}
}
 

Będę wdzięczny za wszelką radę jak to ugryźć.

Pozdrawiam

0

poczytaj o Java web start.

zdefiniuj odpowiednio plik .jnlp i powinno smigac.

0

Jeśli chodzi o zwykły aplet, to pozwól że zacytuję z jednej książki:
Zamiast rozszerzać JFrame, rozszerz JApplet i zamiast konstruktora użyj metody init().

public static void main(String[] args)
    {
        GUI aplikacja = new GUI();
        aplikacja.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        aplikacja.setVisible(true);
    }

To całe usunąć. Zarówna main() jak i inicjalizacja ramki, użycie setDefaultCloseOperation oraz setVisible są niepotrzbne. Nie ma też setSize i setTitle, wszystko to robisz w pliku HTML, w którym dajesz znacznik applet.

<html>
    <head>
        <title>Konwerter XSL:FO</title>
    </head>
    <body>
        <applet code="GUI.class" width="400" height="400">
        </applet>
    </body>
</html>
0

Nie wiem czy dobrze zrozumiałem ale kod został przerobiony na:

package fop;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.IOException;
import java.io.OutputStream;

import javax.swing.JApplet;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.xml.transform.Result;
import javax.xml.transform.Source;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.sax.SAXResult;
import javax.xml.transform.stream.StreamSource;

import org.apache.commons.io.FileUtils;
import org.apache.fop.apps.FOUserAgent;
import org.apache.fop.apps.Fop;
import org.apache.fop.apps.FopFactory;
import org.apache.fop.apps.MimeConstants;

public class Applet extends JApplet implements ActionListener{

		JLabel lXSL, lXML, lPDF;
		JTextField tXSL,tXML,tPDF;
		JButton bXSL, bXML, bKonwertuj, bMiejsceDocelowe;
		String sXML, sXSL, sPDF;
		
		public void init()
		{
			//window
			setLayout(null);
			
			//label
			lXML = new JLabel("Plik XML:");
			lXML.setBounds(60, 50, 150, 20);
			add(lXML);
			
			lXSL = new JLabel("Plik XSL:");
			lXSL.setBounds(60, 70, 150, 20);
			add(lXSL);
			
			lPDF = new JLabel("Plik PDF:");
			lPDF.setBounds(60, 90, 150, 20);
			add(lPDF);
			
			//text
			tXML = new JTextField("");
			tXML.setBounds(120, 50, 150, 20);
			add(tXML);
			
			tXSL = new JTextField("");
			tXSL.setBounds(120, 70, 150, 20);
			add(tXSL);
			
			tPDF = new JTextField("");
			tPDF.setBounds(120, 90, 150, 20);
			add(tPDF);
			
			//button
			bXML = new JButton("Wczytaj XML");
			bXML.setBounds(50, 150, 110, 20);
			add(bXML);
			bXML.addActionListener(this);
			
			bXSL = new JButton("Wczytaj XSL");
			bXSL.setBounds(190, 150, 110, 20);
			add(bXSL);
			bXSL.addActionListener(this);
			
			bKonwertuj = new JButton("Konwertuj");
			bKonwertuj.setBounds(100, 210, 170, 50);
			add(bKonwertuj);
			bKonwertuj.addActionListener(this);
			
			bMiejsceDocelowe = new JButton("Miejsce docelowe PDF");
			bMiejsceDocelowe.setBounds(100, 180, 170, 20);
			add(bMiejsceDocelowe);
			bMiejsceDocelowe.addActionListener(this);
			
		}
		
		
		@Override
		public void actionPerformed(ActionEvent e) {
			Object z = e.getSource();
			if(z==bXML)
			{
				JFileChooser fc = new JFileChooser();
				if (fc.showOpenDialog(null)==JFileChooser.APPROVE_OPTION)
				{
					File plik_xml = fc.getSelectedFile();
					JOptionPane.showMessageDialog(null,"Wybrany plik to: "+ plik_xml.getAbsolutePath());
					tXML.setText(plik_xml.getName());
					sXML = plik_xml.getAbsolutePath();
				}
			}
			else if(z==bXSL)
			{
				JFileChooser fc = new JFileChooser();
				if (fc.showOpenDialog(null)==JFileChooser.APPROVE_OPTION)
				{
					File plik_xsl = fc.getSelectedFile();
					JOptionPane.showMessageDialog(null,"Wybrany plik to: "+ plik_xsl.getAbsolutePath());
					tXSL.setText(plik_xsl.getName());
					sXSL = plik_xsl.getAbsolutePath();
				}
			}
			else if(z==bMiejsceDocelowe)
			{
				JFileChooser fc = new JFileChooser();
				if (fc.showSaveDialog(null)==JFileChooser.APPROVE_OPTION)
				{
					File plik_pdf = fc.getSelectedFile();
					JOptionPane.showMessageDialog(null, "Miejsce docelowe: "+plik_pdf);
					tPDF.setText(plik_pdf.getName());
					sPDF = plik_pdf.getAbsolutePath();
				}
			}
			else if (z==bKonwertuj)
			{
	        try {
	            System.out.println("XML->PDF\n");
	            System.out.println("Przygotowanie...");

	            // Setup input and output files  
	            File xmlfile = new File(sXML);
	            File xsltfile = new File(sXSL);
	            File pdffile = new File(sPDF);

	            System.out.println("Plik wejściowy XML: (" + xmlfile + ")");
	            System.out.println("Plik wejściowy XSL: (" + xsltfile+ ")");
	            System.out.println("Plik wyjściowy PDF: (" + pdffile + ")");
	            System.out.println();
	            System.out.println("Konwertowanie...");

	            // configure fopFactory as desired
	            FopFactory fopFactory = FopFactory.newInstance();

	            FOUserAgent foUserAgent = fopFactory.newFOUserAgent();
	            // configure foUserAgent as desired

	            // Setup output
	            OutputStream out = new java.io.FileOutputStream(pdffile);
	            out = new java.io.BufferedOutputStream(out);

	            try {
	                // Construct fop with desired output format
	                Fop fop = fopFactory.newFop(MimeConstants.MIME_PDF, foUserAgent, out);
	                System.out.println("Tworzenie PDF...");
	                // Setup XSLT
	                TransformerFactory factory = TransformerFactory.newInstance();
	                Transformer transformer = factory.newTransformer(new StreamSource(xsltfile));

	            // Set the value of a <param> in the stylesheet
	                transformer.setParameter("versionParam", "2.0");

	                // Setup input for XSLT transformation
	                Source src = new StreamSource(xmlfile);

	                // Resulting SAX events (the generated FO) must be piped through to FOP
	                Result res = new SAXResult(fop.getDefaultHandler());

	                // Start XSLT transformation and FOP processing
	                transformer.transform(src, res);
	            } finally {
	                out.close();
	            }

	            System.out.println("Sukces!");
	    } catch (Exception e1) {
	            e1.printStackTrace(System.err);
	            System.exit(-1);
	            }
		}
		}
}

Oraz HTML:

 
<html>
    <head>
        <title>Konwerter XSL:FO</title>
    </head>
    <body>
        <applet code="Applet.class" width="400" height="400">
        </applet>
    </body>
</html>

Dostaję komunikat "ClassNotFoundException"

Proszę o pomoc, gdyż nie wiem co ten błąd tak naprawdę mówi

0

Ktokolwiek spotkał się z takim błędem ? Przydałoby mi się to dość sprawnie rozwiązać gdyż chciałbym mieć ten projekt gotowy do środy

0

Po pierwsze, zmień nazwę swojej klasy. Applet to nazwa klasy ze standardowej biblioteki Javy.
Po drugie (i ważniejsze), użyłeś polecenia

package fop;

zatem Twoja klasa nazywa się fop.Applet.

0

Ten sam błąd, zmienił się jedynie opis błędu na fop.fop_applet.class, gdyż tak jak poradziłeś zmieniłem nazwę klasy na fop_applet, oraz w html jest wpisany fop.fop_applet.class.

Pozdrawiam

0

A gdzie umieściłeś plik fop.applet.class? Powinien być w podfolderze fop.

0

Jest tam, razem z plikiem .html

C:\Users\sobot_000\workspace\fop\src\fop

Edit: nie trzeba do html'a jakichś .jar dopinać czasem ? bo tych jest dość sporo jeśli chodzi o ten projekt z racji używania Apache fop

0

Jary musisz podpiąć

        <applet code="fop.fop_applet" archive="nazwy jarów oddzielone przecinkami" width="400" height="400">
        </applet>
0

Niestety błąd się nie zmienił dodatkowo podczas uruchomienia w przeglądarce dostałem błąd:

Exception in thread "AWT-EventQueue-2" java.lang.IllegalStateException: Applet's parent container not set up
	at sun.plugin2.applet.Plugin2Manager.start(Unknown Source)
	at sun.plugin2.main.client.PluginMain$StartAppletRunner.run(Unknown Source)
	at java.awt.event.InvocationEvent.dispatch(Unknown Source)
	at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
	at java.awt.EventQueue.access$400(Unknown Source)
	at java.awt.EventQueue$3.run(Unknown Source)
	at java.awt.EventQueue$3.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
	at java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.run(Unknown Source)
<html>
    <head>
        <title>Konwerter XSL:FO</title>
    </head>
    <body>
        <applet code="fop.fop_applet.class" archive="avalon-framework-4.2.0.jar,batik-all-1.7.jar,commons-io-1.3.1.jar,commons-logging-1.0.4.jar,serializer-2.7.0.jar,xalan-2.7.0.jar,xerceslmpl-2.7.1.jar,xml-apis-1.3.02.jar,xml-apis-ext.jar,xmlgraphics-commons-1.3.jar,fop.jar" width="400" height="400">
        </applet>
    </body>
</html>
0

Podpiąłem sobie wszystko pod nowy projekt, także nazywa się on fop_applet, tak jak na screenie:
http://screenshooter.net/100300148/eyqhgya
Wszystko pięknie mi się odpala jeśli chodzi o Eclipse
http://screenshooter.net/100300148/hkjngqt
Build się udał, został stworzony plik .class w podfolderze bin
http://screenshooter.net/100300148/cvaeins
Plik html wygląda w tym momencie tak
http://screenshooter.net/100300148/rimufka
A odpalenie appletu w przeglądarce daje taki wynik
http://screenshooter.net/100300148/bhpbfgu

Nie wiem czy to będzie pomocne, ale może ktoś dostrzeże mój głupi błąd.

Pozdrawiam

0

Skoro w pliku index.html napiszałeś

<applet code="fop.applikacja"....>

to przeglądarka szuka pliku application.class applikacja.class w podfolderze fop. Ja takiego podfolderu nie widzę.

0

Ehm, nic takiego nie napisałem :) przynajmniej nie w nowym projekcie, tam jest fop_applet.aplikacja

0

Pisałem nazwy z pamięci, nie zmienia to faktu, że podfolderu fop_applet nie ma.

0

http://screenshooter.net/100300148/cvaeins

Czyli plik html powinien być przed w hierarchii poza folderem fop_applet ?

EDIT:
W Chrome działa :) w Operze nie chce przejść security, nie wiem dlaczego, ale grunt że tutaj chodzi ok // ok już się ładuje również w Operze

EDIT2:
Applet się załadował tylko aplikacja kompletnie nie działa... tzn. podczas wyboru miejsc do czytania plików niestety aplikacja nie widzi partycji komputera, nie mam czego wybrać ani gdzie zapisać pliku, byłbym wdzięczny za pomoc w tym względzie

Pozdrawiam

0

Aplet, który ma odczytać lub zapisywać pliki lokalne musi być podpisany. Możesz sam podpisać aplet, ale osoby korzystające z tak podpisanego apletu muszą wyrazić dodatkową zgodę na jego uruchomienie. Podpisywane są pliki jar, zatem wpierw musisz utworzyć plik jar z Twoimi klasami a potem go podpisać.:keytool -genkey -keystore nazwa_magazynu -alias nazwa_aliasu - czynność jednorazowa
jarsigner -keystore nazwa_magazynu plik_jar nazwa_aliasu - po każdej zmianie jara

0

Do utworzenia pliku .jar będę potrzebował metody main(); więc moje pytanie jest takie, gdzie najlepiej u mnie taką metodę wstawić bądź podmienić za tą która obecnie jest.

0

Nie potrzebujesz metody main, bo nie tworzysz wykonywalnego jara.

0

Hmm trochę się pobawiłem w te podpisywanie i aktualnie zrobiłem tak:

  • utworzyłem plik .jar + manifest za pomocą wbudowanej funkcji Export w Eclipse
  • za pomocą keytool -genkey -keystore applet -alias fop_applet_podpis utworzyłem plik applet w którym mam cyfrowy podpis pliku .jar
  • dla pewności wykonałem jarsigner -keystore applet fop_applet.jar fop_applet_podpis po czym dostałem wiadomość o podpisie na 6 miesięcy
  • uruchomiłem AppletViewer z poziomu terimnala appletviewer index.html

No i niestety dalej nie mam dostępu do plików systemowych, więc sądzę że trzeba coś więcej oprócz tego co napisałeś aby mieć dostęp do plików systemowych

0

Zdecyduj się jak chcesz uruchamiać aplet, za pomocą programu appletviewer czy przez przeglądarkę. Appletviewer nie respektuje podpisów. Stwórz w folderze z plikiem HTML plik all.policy z taką zawartością:

grant {
    permission java.security.AllPermission;
};

i uruchamiaj aplet poleceniem appletviewer -J"-Djava.security.policy=all.policy" index.html

0

Przez przeglądarkę oczywiście, teraz działa, nie wiem dlaczego przedtem nie chciało zaskoczyć.

Po raz kolejny wielkie dzięki, mistrzu :)

Pozdrawiam

#EDIT:

Java Plug-in 11.25.2.18
Using JRE version 1.8.0_25-b18 Java HotSpot(TM) Client VM
User home directory = C:\Users\sobot_000
----------------------------------------------------
c:   clear console window
f:   finalize objects on finalization queue
g:   garbage collect
h:   display this help message
l:   dump classloader list
m:   print memory usage
o:   trigger logging
q:   hide console
r:   reload policy configuration
s:   dump system and deployment properties
t:   dump thread list
v:   dump thread stack
x:   clear classloader cache
0-5: set trace level to <n>
----------------------------------------------------
CacheEntry[file:/E:/Applet_security/fop_applet.jar]: updateAvailable=false,lastModified=Sun Nov 30 15:11:29 CET 2014,length=5654
Missing Permissions manifest attribute in main jar: file:/E:/Applet_security/fop_applet.jar
XML->PDF

Przygotowanie...
Plik wejściowy XML: (E:\books.xml)
Plik wejściowy XSL: (E:\books.xsl)
Plik wyjściowy PDF: (C:\Users\sobot_000\Desktop\test.pdf)

Konwertowanie...
Exception in thread "AWT-EventQueue-2" java.lang.NoClassDefFoundError: org/apache/fop/apps/FopFactory
	at fop_applet.aplikacja.actionPerformed(aplikacja.java:145)
	at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
	at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
	at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
	at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
	at java.awt.Component.processMouseEvent(Unknown Source)
	at javax.swing.JComponent.processMouseEvent(Unknown Source)
	at java.awt.Component.processEvent(Unknown Source)
	at java.awt.Container.processEvent(Unknown Source)
	at java.awt.Component.dispatchEventImpl(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
	at java.awt.EventQueue.access$400(Unknown Source)
	at java.awt.EventQueue$3.run(Unknown Source)
	at java.awt.EventQueue$3.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
	at java.awt.EventQueue$4.run(Unknown Source)
	at java.awt.EventQueue$4.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
	at java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: java.lang.ClassNotFoundException: org.apache.fop.apps.FopFactory
	at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source)
	at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(Unknown Source)
	at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
	at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	... 36 more

Rozumiem że w folderze w którym mam projekt muszę umieścić jeszcze inne .jar które są używane przez projekt ?

0

Stworzyłem sobie folder lib w którym umieściłem wszystkie potrzebne .jar, przynajmniej mam taką nadzieję, są tam .jar od Apache, classpath mam podany jeśli chodzi o windowsa, lecz pomimo tego program dalej wyrzuca podobne błędy, nie wiem czy w pliku manifest mam coś robić dodatkowego ?

0

Miałem nadzieje że podpięcie .JAR pod HTML'a pomoże aczkolwiek niczego to nie rozwiązało, tzn. konsola mi znika, applet również, strona zostaje przeładowana i pozostaje mi jedynie kod HTML odpowiedzialny za wyświetlenie tytułu strony oraz nagłówka, applet znika, wszystko byłoby w tym w porządku gdyby nie fakt że plik PDF nie zostaje stworzony

@Edit:
w tym momencie dostaję błąd taki jakby nie było w moim folderze .JAR avalon-framework z tym że jest hmmm

Java Plug-in 11.25.2.18
Using JRE version 1.8.0_25-b18 Java HotSpot(TM) Client VM
User home directory = C:\Users\sobot_000
----------------------------------------------------
c:   clear console window
f:   finalize objects on finalization queue
g:   garbage collect
h:   display this help message
l:   dump classloader list
m:   print memory usage
o:   trigger logging
q:   hide console
r:   reload policy configuration
s:   dump system and deployment properties
t:   dump thread list
v:   dump thread stack
x:   clear classloader cache
0-5: set trace level to <n>
----------------------------------------------------
CacheEntry[file:/E:/Applet_security/fop_applet.jar]: updateAvailable=false,lastModified=Sun Nov 30 15:11:29 CET 2014,length=5654
Missing Permissions manifest attribute in main jar: file:/E:/Applet_security/fop_applet.jar
XML->PDF

Przygotowanie...
Plik wejściowy XML: (E:\Applet_Security\Przykład\books.xml)
Plik wejściowy XSL: (E:\Applet_Security\Przykład\books.xsl)
Plik wyjściowy PDF: (E:\Applet_Security\Przykład\chrome.pdf)

Konwertowanie...
CacheEntry[file:/E:/Applet_security/batik-all-1.7.jar]: updateAvailable=false,lastModified=Wed Mar 19 11:50:20 CET 2008,length=3318083
CacheEntry[file:/E:/Applet_security/commons-io-1.3.1.jar]: updateAvailable=false,lastModified=Wed Mar 19 11:50:20 CET 2008,length=83613
CacheEntry[file:/E:/Applet_security/commons-logging-1.0.4.jar]: updateAvailable=false,lastModified=Wed Mar 19 11:50:20 CET 2008,length=38015
CacheEntry[file:/E:/Applet_security/fop.jar]: updateAvailable=false,lastModified=Wed Mar 19 11:50:24 CET 2008,length=2246637
CacheEntry[file:/E:/Applet_security/serializer-2.7.0.jar]: updateAvailable=false,lastModified=Wed Mar 19 11:50:20 CET 2008,length=188993
CacheEntry[file:/E:/Applet_security/xalan-2.7.0.jar]: updateAvailable=false,lastModified=Wed Mar 19 11:50:20 CET 2008,length=3078601
CacheEntry[file:/E:/Applet_security/xercesImpl-2.7.1.jar]: updateAvailable=false,lastModified=Wed Mar 19 11:50:20 CET 2008,length=1203860
CacheEntry[file:/E:/Applet_security/xml-apis-1.3.02.jar]: updateAvailable=false,lastModified=Wed Mar 19 11:50:20 CET 2008,length=194205
CacheEntry[file:/E:/Applet_security/xml-apis-ext.jar]: updateAvailable=false,lastModified=Wed Mar 19 11:50:20 CET 2008,length=85686
CacheEntry[file:/E:/Applet_security/xmlgraphics-commons-1.3.jar]: updateAvailable=false,lastModified=Wed Mar 19 11:50:20 CET 2008,length=509244
Exception in thread "AWT-EventQueue-2" java.lang.NoClassDefFoundError: org/apache/avalon/framework/configuration/ConfigurationException
	at org.apache.fop.apps.FopFactory.<init>(FopFactory.java:150)
	at org.apache.fop.apps.FopFactory.newInstance(FopFactory.java:166)
	at fop_applet.aplikacja.actionPerformed(aplikacja.java:145)
	at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
	at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
	at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
	at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
	at java.awt.Component.processMouseEvent(Unknown Source)
	at javax.swing.JComponent.processMouseEvent(Unknown Source)
	at java.awt.Component.processEvent(Unknown Source)
	at java.awt.Container.processEvent(Unknown Source)
	at java.awt.Component.dispatchEventImpl(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
	at java.awt.EventQueue.access$400(Unknown Source)
	at java.awt.EventQueue$3.run(Unknown Source)
	at java.awt.EventQueue$3.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
	at java.awt.EventQueue$4.run(Unknown Source)
	at java.awt.EventQueue$4.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
	at java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: java.lang.ClassNotFoundException: org.apache.avalon.framework.configuration.ConfigurationException
	at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source)
	at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(Unknown Source)
	at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
	at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	... 38 more
 
0

Po ściągnięciu nowego .JAR o nazwie avalon-framework-api-4.2.0 i podmianie go w pliku HTML, naciśnięcie przycisku Konweruj powoduje wyłączenie Javy, tzn. applet całkowicie znika, a strona jest w fazie ciągłego ładowania, oczywiście pliku wynikowego nie dostaję

1 użytkowników online, w tym zalogowanych: 0, gości: 1