Wyświetlenie Appletu w JSP błąd (ClassNotFoundEXceptio:nazwa_klasy))

0

Witam! Na wstępie dziękuję za pomoc na priv, ale niestety nie pomogło. Sprawa jest następująca.
**Konfiguracja:**Eclipse Version: Indigo Service Release 2 Build id: 20120216-1857
Java Version: 1.7.0_04_b22
tomcat version: Tomcat 7.0
Windows 7 Proffesional

Wszystko ładnie odpala się na serwerze przez localhost oprócz wyświetlania appletu na stronie- gdzie w eclipse jest widoczna sama ramka, a w firefoxie gdy kliknę pojawia się error: ClassNotFoundExcepton: "nazwa_klasa" - gdzie nazwa klasy to string podany w code=nazwa_klasyl

Przerobiłem wiele rozwiązań z różnych forów, ale bez skutecznie.

__Zadaniem jest stworzenie prostej stronki wyświetlającej Applet z napisem HelloWorld __

Oto jak postępuję:
1.Tworzę Dynamic Web project o nazwie: Project (konfigurację serwera wykonałem wcześniej)
2. W pliku web.xml pozostawiam w welcomefile list tylko plik o nazwie 1.jps
3.Tworzę plik 1.jsp
4. Konfiguruję folder dla plików źródłowych appletów i folder dla plików zbudowanych, gdyż standardowo przenosi pliki zbudowane do WEB-INF/classes który to folder jest prywatny i nie widoczny dla przeglądarki. Aby applet mógł być odczytany przez przeglądarkę pliki klas muszą znajdować się w innym katalaogu niż WEB-INF więc:
a) wchodzę do JavaBuiltPath i dodaję folder źródłowy Applets
b) zaznaczam opcję Allow output folder for source folder
c)"rozwiajam" w liście otworzony folder i tworzę nowy folder dla plików output tj. Appout
d)Wchodzę do zakładki Deployment Assembly i usuwam wiersz gdzie dla utworzonego folderu Applets deploy patch wynosi WEB-INF....
e)dodaję nowy folder Appout z deployPath "/"
5. Uzupełniam plik JSP pluginem

<jsp:plugin type="applet" code="Hello.class" codebase="Appout/com"  width="160" height="150" >
    <jsp:fallback>
        Plugin tag OBJECT or EMBED not supported by browser.
    </jsp:fallback>
</jsp:plugin> 

6.Tworzę applet o kodzie:

 package com;


import java.applet.Applet;
import java.awt.Font;
import java.awt.Graphics;

public class Hello extends Applet {

	  public void init() {
		  
	       resize(150,25);
	 
	       }
	 
      public void paint(Graphics g) {
	 
	       g.setFont(new Font("Helvetica", Font.PLAIN, 20));
	 
	       g.drawString("Hello world!", 50, 25);
	 
	       }
}

7.Uruchamiam i cały wysiłek na marne - błąd ja podałem wyżej.

Na koniec podam ścieżki dostępu takie jak podane w properities:

Konfiguracja automatycznie przenosi plik .class do folderu /project/AppOut/com/Hello.class

Pliki źródłowe .java znajdują się w: /project/Applets/com/Hello.java

Plik .jsp: /project/WebContent/1.jsp

codebase="" oraz code="" próbowałem na setkę sposobów , zalecono mi usunąć nawet codebase ale w mojej wersji java jest on wymagany. Znacznik <APPLET> napewt nie pwoduje wyświetlenia ramki
Proszę o pomoc za rozwiązanie duże piwo czeka :D :D :D

0

Przecież klasa nazywa się com.Hello, a nie Hello.

0

Próbowałem:

<jsp:plugin type="applet" code="com.Hello.class" codebase="AppOut" jreversion="1.2" width="160" height="150" >
    <jsp:fallback>
        Plugin tag OBJECT or EMBED not supported by browser.
    </jsp:fallback>
</jsp:plugin>
 <jsp:plugin type="applet" code="com.Hello" codebase="AppOut" jreversion="1.2" width="160" height="150" >
    <jsp:fallback>
        Plugin tag OBJECT or EMBED not supported by browser.
    </jsp:fallback>
</jsp:plugin>

<applet code="com.Hello.class" codebase="AppOut" width="400" height="500"></applet>

<applet code="com.Hello" codebase="AppOut" width="400" height="500"></applet>
 

żadne z tych nie działa, to jest jakieś niemożliwe

0

Przed chwilą stworzyłem plik test.jsp z takim fragmentem;

<applet code="com.Hello" codebase="../applets" width="160" height="150">
</applet>

Mam taka strukturę katalgów:

  • plugin (zawiera plik test.jsp),
  • applets
    • com (zawiera plik Hello.class)
      I wszystko działa. Wyczyniasz cuda.
      Mam:
      Tomcat 7.0
      Windows XP SP3
      Java 1.7.0-b147
      Eclipsa do takich drobiazgów nie używam.
0

Mógłbyś mi podać pełną ścieżkę pliku .class oraz .jsp ? tzn. Path . Bo jsp musi zawierać się w WebContent z tego co mi wiadomo, choć nie powinno być to istotne

0

Zmodyfikowałem trochę przykłady dostarczone z Tomcatem.
webapps/examples/jsp/plugin/test.jsp
webapps/examples/jsp/applets/com/Hello.class

0

Zmieniłem lokację tak aby oba pliki znajdowały się w jednym katalogu tj. WebContent i aktualne ścieżki to:
/project/WebContent/Hello.class
/project/WebContent/1.jsp

jak należy do nich wpisać codebase="" oraz code="" ;

0
bogdans napisał(a):

Przed chwilą stworzyłem plik test.jsp z takim fragmentem;

<applet code="com.Hello" codebase="../applets" width="160" height="150">
</applet>

Mam taka strukturę katalgów:

  • plugin (zawiera plik test.jsp),
  • applets
    • com (zawiera plik Hello.class)
      I wszystko działa. Wyczyniasz cuda.
      Mam:
      Tomcat 7.0
      Windows XP SP3
      Java 1.7.0-b147
      Eclipsa do takich drobiazgów nie używam.

Zrobiłem tak jak poleciłeś:

Struktura:
/project/WebContent/applets/com/Hello.class
/project/WebContent/jspfile/1.jsp

i wywołanie z jsp

 
<applet code="com.Hello" codebase="../applets" width="160" height="150">
</applet>

i dalej nie działa
btw. jak interperetowac dwie kropki w codebase??

0

.. to katalog nadrzędny, odświeżyłeś stronę?

0
bogdans napisał(a):

.. to katalog nadrzędny, odświeżyłeś stronę?

no jasne że tak, próbowałem również odpalić z pliku html, ale również bez skutecznie. Może coś trzeba grzebać w katalogach tomcata?? Choć w sumei powinno się to robić wszystko zdalnie przez eclipse. Czarna magia chyba

0

Jeśli nie działa z pliku HTML, to znaczy że:

  • struktura katalogów jest inna niż Ci się wydaje,
  • zapomniałeś umieścić w katalogu com plik Hello.class,
  • skompilowałeś plik Hello.java bez instrukcji package.com;,
    ...
0

Dobra działa!
Powodów było kilka więc nałożyły się na siebie utrudniając rozwiązanie :
wersja działająca:
/project/WebContent/1.jsp
/project/WebContent/applets/com/Hello.class

konfiguracja:

<jsp:plugin type="applet" code="com.Hello.class" codebase="." jreversion="1.2" width="700" height="400" >
    <jsp:fallback>
        Plugin tag OBJECT or EMBED not supported by browser.
    </jsp:fallback>
</jsp:plugin>

kluczowym było codebase="" oraz to że wbudowana przeglądarka eclipse nie pokazuje appletów. Mam nadzieje że komuś w przyszłości tym pomogę gdyby pojawił się podobny problem. pozdrawiam i dziękuję za oferowaną pomoc bogdans

0

Nie przyszło mi do głowy, że testujesz w Eclipse. Końcowy użytkownik nie będzie miał Eclipse, będzie korzystał z przeglądarki. I w przeglądarce powinieneś testować

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