Jump to content

kingofbrain

Mitglieder
  • Gesamte Inhalte

    2.093
  • Benutzer seit

  • Letzter Besuch

Über kingofbrain

  • Rang
    Reg.-Benutzer
  • Geburtstag 23.07.1978
  1. Ich habe mit dem "."-Operator noch nicht auf Inhalte einer Map mit JSP EL zugegriffen. Aber wenn das eine funktioniert (<c:out ... />), dann sollte das andere eigentlich auch gehen. Du kannst alternativ dazu probieren, über die Notation ${meineParameter['name'] eq 'jamaika'} den Wertvergleich auszuführen. Aus dem Kopf bin ich mir jetzt nicht sicher, ob 'name' wirklich in Hochkommata gestellt wird, denke aber schon. Schöne Grüße, Peter
  2. Schau Dir einfach den Classloading Mechanismus vom JBoss an. Der ist Open Source und macht so etwas. Du solltest allerdings ein bisschen Grundwissen über Classloading anschauen. Schöne Grüße, Peter
  3. Guten Morgen! Da hast Du eine andere Definition von Classpath als ich. Für mich ist der Classpath die Summe an Orten, an denen nach Klassen gesucht werden kann. Es gibt einen Bootclasspath, der beim Start des Servers feststeht, und den erweiterten Classpath, der durch dynamisches nachladen aufgebaut wird. Aber wir sind uns ja soweit einig, dass die Anzahl der für das Classloading verfügbaren Klassen während der Laufzeit einer Anwendung durch einen entsprechenden Classloader erweitert werden kann. Das Abräumen mit dem GC funktioniert übrigens bei geladenen Klassen so nicht. Diese landen in der Permanent Generation und sind dann bei wiederholten Hot Deploys die Ursache für entsprechende OutOfMemoryErrors. Schöne Grüße, Peter
  4. Doch, es ist schon möglich, zur Laufzeit den Classpath zu erweitern. Jeder Application Server mit Hot Deploy macht so etwas. Der OP kann sich z.B. mal das Classloading im JBoss anschauen. Es ist allerdings nicht trivial, so etwas zu ändern. Man sollte schon wissen, was man da macht. Schöne Grüße, Peter
  5. Servus Andrea, ich habe gleich den nächsten Termin, deshalb nur kurz die wichtigsten Punkte: Eclipse und JBoss: genau das macht die Server Runtime für den JBoss und das Eclipse Dynamic Web Project. Auf der jcp.org bist Du schon mal richtig. Jetzt noch dem Link zum Final Release folgen ("Download") und dort die drei Sachen runterladen: Spezifikation, Javadocs, JAR with schemas JSP und Servlet. Das Servlet überschreibt die doGet-Methode. Weil wir keine Clientlogik haben, sondern nur eine Seite anzeigen wollen, holt sich das Servlet mit request.getRequestDispatcher("Pfad zur JSP").forward(request, response); den RequestDispatcher und übergibt request und response über das forward an diese JSP. Bitte lies die API Doc von HttpServletRequest und RequestDispatcher dazu. Deine JSP sieht schon mal ganz gut aus. Achte darauf, ob Du wirklich ISO-xxx verwenden willst. Ich würde an Deiner Stelle konsequent mit UTF-8 arbeiten. Auch den HTML-Kopfbereich würde ich anpassen (-> SELFHTML) Deine Angaben zum Servlet und zum Mapping sind ja schon der Inhalt der web.xml. Jetzt noch den XML-Header und den Verweis auf das Schema (die korrekte Angabe des Schemas findest Du im Schema) und gut. Und jetzt lies Dich noch ein, wie das WAR aufgebaut ist (Spezifikation). Die Ressourcen, die Du erzeugst (web.xml, JSPs, Servlets, statische Ressourcen) müssen an definierte Orte im WAR. Eclipse kopiert Dir das beim Dynamic Web Project schon richtig hin, aber Du musst wissen, wie ein WAR aufgebaut ist. Viel Erfolg, Du bist auf dem richtigen Weg. Der Anfang ist schwer, aber so nach ein bis zwei Jahren geht es leichter. Das wird schon. Peter
  6. Guten Morgen Andrea, vielleicht tröstet es Dich: ich arbeite mit Java EE seit 2003 und Version 1.4 und kenne immer noch nicht jede Teilspezifikation auswendig. Das ist das interessante an unserem Job: man lernt nie aus. Maven ist eine gute Sache. Durch die ganzen Defaults kann man damit recht problemfrei arbeiten, solange man keine Sondereinstellungen braucht. Auch wenn Dein Kollege die Anwendung aus Netbeans heraus startet, wird deployed. Das macht Netbeans halt dann transparent. Die fehlende Bibliothek solltest Du doch bereits von jcp.org heruntergeladen haben. Beim Final Release der Java Servlet 3.0 Specification findest Du die Spezifikation, das JAR sowie die Javadocs. korrekt. Nö, das sind Interfaces, keine Methoden. Du willst die doGet-Methode überschreiben, die die von Dir genanten Interfaces als Parameter übergeben bekommt. Vielleicht meinst Du hier das richtige. Du willst innerhalb der Methode die Kontrolle an die JSP übergeben. Aber mit welchem Methodenaufruf geht das? Hint: RequestDispatcher Nein, das ist leider falsch. Du willst das Markup genau nicht im Servlet rendern, sondern in der dafür generierten JSP-Datei. Deshalb übergibst Du ja in der Frage oben drüber die Kontrolle an die JSP. Du willst mit den Elementen <servlet> und <servlet-mapping> Dein Servlet bekannt machen und auf einen Pfad in Deiner Anwendung mappen. Das sind die Verzeichnisse in Deiner Entwicklungsumgebung. Aus diesen Ressourcen wird ja die WAR-Datei erzeugt, die in Deinem Application Server deployed wird. Wie sieht der Inhalt der WAR-Datei aus. Das ist ja nur eine mit der Endung .war versehene .zip Datei. Das erstellen der web.xml funktioniert in Eclipse schon so wie von Dir beschrieben. Der von Dir gepostete Link ist allerdings kein Template, sondern die Schemadatei, die den Aufbau einer web.xml in Version 3.0 festlegt. Versuche jetzt noch mal, die fehlenden Fragen zu beantworten, lade die richtige Bibliothek herunter, erzeuge die Dateien und baue ein WAR. Bei Problemen wieder hier. Schöne Grüße, Peter
  7. Hallo Andrea, so, mit lesen solltest Du ja jetzt schon ein bisschen weiter gekommen sein. Wenn Du also einen JBoss hast, den Du aus Eclipse raus starten und stoppen kannst, sowie ein Eclipse Dynamic Web Project, dann gehts weiter: Wir wollen jetzt ein erstes Servlet erstellen (HelloJspServlet), das nichts macht, außer die Kontrolle an eine JSP weiterzugeben. Der Grund dafür ist, dass JSPs nie direkt angesprochen werden sollen, sondern immer ein Controller Servlet davor liegt, das die Clientlogik ausführt. Wenn keine Clientlogik nötig ist, so wie hier, dann gibt das Servlet die Kontrolle eben direkt an die JSP weiter. Beantworte folgende Fragen, ohne, dass Du jetzt etwas in Eclipse implementierst: - Welche Klasse wirst Du beerben, damit Du ein Servlet implementieren kannst? - Welche Methode der Klasse wirst Du überschreiben / implementieren? Hinweis: der Benutzer soll im Browser eine Adresse in der Adresszeile eingeben oder einem Link folgen können. - Wie übergibst Du die Kontrolle aus dem Servlet an die JSP? - Wie sieht die JSP-Datei aus, wenn Du nur ein HTML-Gerüst mit einer Überschrift 1. Ordnung ausgeben willst, die "Hello JSP!" sagt? - Was muss in der web.xml stehen, damit das Servlet auf HTTP-Anfragen reagiert? - An welchen Stellen im WAR werden die einzelnen erzeugten Dateien abgelegt, was passiert mit der von Dir implementierten Klasse (HelloJspServlet.java)? Versuche, die Fragen mit den Informationen aus der Spezifikation oder dem Oracle Java EE Tutorial zu beantworten. Wenn Du nicht auf die Lösung kommst, gib hier Bescheid. Die Lösungen postest Du auch einfach hier. Schöne Grüße und einen schönen Abend! Peter
  8. Guten Morgen, ok, die Schlagzahl war wohl ein wenig zu hoch. Wir fangen einen Schritt früher an. Was wolltest Du denn bei Oracle? Das JDK herunterladen? Das solltest Du bereits haben. Und zwar ein ganz einfaches JDK der Version 6 (aktuell ist die Updateversion 24, das ist aber wurscht). Dieses musst Du installieren (hast Du bestimmt auch schon). Danach brauchst Du die Bibliotheken für Java Webanwendungen. Diese erhältst Du wie oben beschrieben bei jcp.org. Du willst die Java Servlet 3.0 Specification plus API und die JavaServer Pages 2.1 mit API. Das sind die JSRs 245 und 315. Die Specifications sind in der Regel PDF-Dateien, die beschreiben, was die API kann und wie sie implementiert und verwendet werden muss. Die API ist das eigentliche JAR mit den .class Dateien. In der Regel sind das nur die Schnittstellen, weil die Implementierungen ja je nach Application Server unterschiedlich sind. Bis hier haben wir noch kein Eclipse, keinen JBoss und auch sonst nichts. Jetzt schaust Du mal in die Spezifikationen rein und verschaffst Dir einen Überblick über den Inhalt der zwei Spezifikationen. Das Thema Build und Deploy lassen wir fürs erste doch mal sein und arbeiten doch mit dem Eclipse Dynamic Web Project. Das tut es erstmal. Du brauchst also ein aktuelles Eclipse für Java EE Developers und einen aktuellen JBoss. Entpacke diesen und verändere nichts daran. Jetzt erstellst Du eine Server Runtime Konfiguration in Eclipse, d.h. Du öffnest die Servers View und erstellst dort eine neue Konfiguration, mit der Du den JBoss starten und stoppen kannst. Danach erstellst Du ein neues Dynamic Web Project und fügst das dem JBoss hinzu. Wenn Du so weit bist, reden wir weiter. Versuche nicht, zu interpretieren, was ich gemeint habe, wenn Du es nicht verstanden hast, sondern frag nach. Sonst läufst Du wieder in die falsche Richtung los. In meinen Augen müssen wir bei Dir ein Verständnis schaffen, was womit geregelt wird. Das mache ich mit der o.a. Anleitung auf eine bestimmte Art. Es gibt vermutlich unzählige andere Arten. Aber so, wie zwei Tutorials, die Du gleichzeitig liest, Dich verwirren, wird Dich eine Eigeninterpretation und zusätzliche Dinge hier auch verwirren. Ich habe heute ganztags Termine und weiß nicht, ob ich dazu komme, heute mittag mal hier reinzuschauen. Im Zweifelsfall kann ich also erst morgen wieder hier sein. Viel Erfolg und schöne Grüße, Peter
  9. Hallo Andrea, Dein Bild ist für den Anfang recht gut, aber Du verzettelst Dich noch. Meine Frage war vielleicht aber auch zu allgemein gestellt. Worauf ich hinauswollte, war folgendes: - Webanwendung in Java: im einfachsten Fall Servlets und JSP (JSF ist in meinen Augen erst im zweiten Schritt etwas) - Servlets implementieren die Logik des Clients, d.h. Eingaben des Benutzers entgegen nehmen und validieren, Geschäftslogik an der Serviceschicht in Anspruch nehmen, und Ausgabedaten für die View aggregieren und ggf. passend aufbereiten - JSPs implementieren die View der Webanwendung, sie bauen also das HTML (im Normalfall, es geht auch XML, JSON oder jeder andere Characterbasierte Output) - Laufen tut das ganze gepackt als WAR auf einer Servlet Engine, die in einem Java EE Application Server bereits verbaut ist. Du brauchst also: Servlet-API, JSP-API, evtl. Taglibs für die Verwendung von Tags. Ob Du das mit vi oder Eclipse entwickelst, ist völlig wurscht. Nächste Aufgabe. Besorg Dir die passenden Bibliotheken. Diese findest Du am besten nicht beim Serverhersteller Deiner Wahl, sondern direkt beim Hersteller der Spezifikation. In diesem Fall auf jcp.org. Diese Bibliotheken sind unabhängig vom Application Server und können deshalb auch ohne Probleme verwendet werden. Versuche dann, ein ganz einfaches WAR zu erstellen. Die enthaltene Webanwendung sollte folgendes können: - Eingabe einer beliebigen Ganzzahl zwischen 1 und 50 in einem HTML Formular - Entgegennehmen der Zahl und Validierung in einem Servlet. Berechnen der Fibonacci-Sequenz bis zu dieser Zahl (obere Grenze). - Ablegen der Ergebnisliste im Request - Weiterleiten an eine JSP zur Aufbereitung der Ergebnisse. Wenn Du soweit bist, dann poste bitte hier Deine Ergebnisse (Servlet, JSP, web.xml). Versuche, Dir nicht zu viel von einer IDE abnehmen zu lassen. Du kannst gerne mit Eclipse arbeiten, ich würde allerdings nicht die Eclipse Projektart Dynamic Web Project nehmen, sondern z.B. mit Maven arbeiten. Kennst Du Maven? Oder welches Werkzeug verwendet Ihr ansonsten für Build und Deploy? Ant? Falls Du Probleme bei Teilaufgaben oder dem Grundverständnis hast, sag Bescheid. Kann zwar immer ein bisschen dauern mit der Antwort, aber sie kommt. Schöne Grüße, Peter
  10. Guten Morgen, das Problem an Deinem Problem ist, dass Dir nicht nur eine Technologie fehlt, sondern vermutlich der gesamte oder große Teile des Unterbaus. Um Java EE Anwendungen wirklich entwickeln zu können, musst Du Mehrschichtarchitekturen verstanden haben. An Deiner Stelle würde ich an einer Stelle ansetzen, und versuchen, diese gut zu beherrschen. Das kollidiert aber mit Deinem Ansatz "schnell Java EE lernen". Du könntest z.B. in der Webschicht anfangen. Beantworte folgende Fragen: - wie sieht eine Webanwendung in Java EE aus? - welche Teiltechnologien stehen Dir zur Verfügung, um eine Java Webanwendung zu implementieren? - welche Teiltechnologie verwendest Du für welchen Part in einer solchen Anwendung? Lass Dinge wie Serviceschicht, Persistenzschicht, Authentisierung und Autorisierung und den ganzen Rest mal weg. Wenn Du die oben genannten Fragen beantwortet hast, dann poste die Antworten und wir können den nächsten Schritt gehen, nämlich mit den genannten Technologien eine kleine Anwendung schreiben. Wenn Du Lust hast, dieses Real Live Tutorial mitzumachen, bleib einfach im Thread. Schöne Grüße, Peter
  11. Servus, die Antworten aus Deinem anderen Thread gelten hier immer noch. Deine Probleme werden nicht durch einen Application Server gelöst (oder verursacht). Das mangelnde Wissen im Bereich Java EE ist der Grund für Deine Probleme. Die werden bei Geronimo vermutlich eine andere Auswirkung haben, jedoch nach wie vor vorhanden sein. Wenn Du wirklich Java EE lernen willst, dann nimm irgendeinen Application Server (Glassfish, JBoss oder Geronimo, die Reihenfolge spiegelt meine persönliche Präferenz), und befasse Dich mit den Grundlagen. Das Java EE Tutorial hilft Dir dabei, genauso aber die Spezifikationen im Umfeld Java EE. Die sind zwar kein Pageturner, enthalten aber die Information, die Du benötigst. Eine schlechte Idee ist die, die Du momentan verfolgst: irgendetwas tun, merken es geht nicht, irgendetwas ändern und merken, es geht immer noch nicht, um dann zu überlegen, die Plattform zu wechseln. Schöne Grüße, Peter
  12. evtl. am fehlenden Minus ("-")? Schöne Grüße, Peter
  13. kingofbrain

    JBoss mit Eclipse

    Servus Andrea, die Library mit der Servlet API im JBoss 5.1 liegt unter <JBOSS_HOME>/common/lib und heißt servlet-api.jar. Schöne Grüße, Peter
  14. kingofbrain

    JBoss mit Eclipse

    Guten Morgen, das ist wirklich gewagt, da die Servlet-Versionen nicht die selben sind. Und auch der JBoss 5 bringt die Servlet API mit, allerdings in einer neueren Version. Eigentlich sollte für den Start ein Eclipse "Dynamic Web Project" das Richtige für Dich sein. Da werden die nötigen Bibliotheken gleich mit als Library dem Projekt hinzugefügt. Allerdings ist meine Empfehlung folgendes: fang von vorne an. Lies das Java EE Tutorial von Oracle, lies ggf. Teile der Spezifikationen, die für Dich von Bedeutung sind, und versuche nicht, das alles irgendwie hinzufrickeln. Selbst wenn es erst mal zu funktionieren scheint, wirst Du recht schnell ans Ende Deiner Möglichkeiten kommen. Und wildes zusammenholen von Informationen hilft dann nicht mehr. Du würdest vermutlich auch kein mehrstöckiges Bürogebäude planen und bauen, nur weil Dein Chef sagt "Hol mal ein paar Steine und Mörtel, schau Dir andere Häuser an und leg los". Java EE Entwicklung ist nicht trivial. Schöne Grüße, Peter
  15. kingofbrain

    JBoss mit Eclipse

    Der Standard Timeout in der JBoss Run Configuration ist ein wenig kurz bemessen. Den kannst Du aber einfach hochsetzen. In der Servers View Doppelklick auf den konfigurierten JBoss und im entsprechenden Feld des Konfigurationseditors anpassen. Schöne Grüße, Peter

Fachinformatiker.de, 2019 SE Internet Services

fidelogo_small.png

if_icon-6-mail-envelope-closed_314900.pnSchicken Sie uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App


Get it on Google Play

Kontakt

Hier werben?
Oder senden Sie eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...

Wichtige Information

Fachinformatiker.de verwendet Cookies. Mehr dazu in unserer Datenschutzerklärung