jsf: Servlet aufrufen, wie geht das? web.xml Fehler?

Status
Nicht offen für weitere Antworten.

A.T.

Bekanntes Mitglied
Hallo zusammen,
arbeite immer noch an meinem Bilddarstellungsproblem und es scheint das mich meine Basiswissenslücke immer wieder einholt... Lieder!

Man kann Bilder wohl darstellen indem man ein Servlet schreibt das ein Bild auf den OutputStream schreibt. Habe es so viersucht wie in dem Link beschrieben.
balusc.blogspot.com/2007/04/imageservlet.html#ImageServletServingFromDatabase

Nur wann und wie wird dieses Servlet aufgerufen? Bei mir leider irgendwie gar nicht. Setze zwar eine ID mit einer Bean aber dann passiert an der Stelle nichts...

Kann dies mit der web.xml zusammen hängen?
web.xml
Code:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app id="WebApp_ID">
	<display-name>JGeldAktuellVerwaltung</display-name>
	<filter>
		<filter-name>MyFacesExtensionsFilter</filter-name>
		<filter-class>
			org.apache.myfaces.webapp.filter.ExtensionsFilter
		</filter-class>
		<init-param>
			<param-name>maxFileSize</param-name>
			<param-value>20m</param-value>
		</init-param>
	</filter>
	<filter-mapping>
		<filter-name>MyFacesExtensionsFilter</filter-name>
		<servlet-name>Faces Servlet</servlet-name>
	</filter-mapping>
	<filter-mapping>
		<filter-name>MyFacesExtensionsFilter</filter-name>
		<url-pattern>/faces/myFacesExtensionResource/*</url-pattern>
	</filter-mapping>
	<servlet>
		<servlet-name>Faces Servlet</servlet-name>
		<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
		<load-on-startup>1</load-on-startup>
	</servlet>
	<servlet-mapping>
		<servlet-name>Faces Servlet</servlet-name>
		<url-pattern>*.jsf</url-pattern>
	</servlet-mapping>
	
	<servlet>
		<servlet-name>imageServlet</servlet-name>
		<servlet-class>
			de.JGeldAktuellVerwaltung.Servlets.ImageServlet
		</servlet-class>
		<load-on-startup>2</load-on-startup>
	</servlet>
	<servlet-mapping>
		<servlet-name>imageServlet</servlet-name>
		<url-pattern>/image/*</url-pattern>
	</servlet-mapping>
	
	<welcome-file-list>
		<welcome-file>index.html</welcome-file>
		<welcome-file>index.htm</welcome-file>
		<welcome-file>index.jsp</welcome-file>
		<welcome-file>default.html</welcome-file>
		<welcome-file>default.htm</welcome-file>
		<welcome-file>default.jsp</welcome-file>
	</welcome-file-list>
</web-app>
Eclips meckert aber immer auf Höhe dieser Zeile <web-app id="WebApp_ID"> an das "The contend of element typ "web-app" must match "(ganz viele Attribute)"." Wenn ich die Tags zum zweiten servlet (imageServlet) komplett entfehrne ist diese Fehlermeldung weg...
Komme leider einfach nicht weiter.
Habt ihr einen Tip für mich?
 
M

maki

Gast
Was willst du genau machen?

Willst du img Tags haben welche die URL zum Servlet beinhalten?

Sehe auf den ersten Blick keinen Fheler, kommentiere doch aus bis Eclipse sich nicht mehr beschwert.
Andererseits finde ich die Servlet API 2.3 etwas alt... 2.4 wäre imho zeitgemässer, ist aber nur so ein Gefühl.
 

A.T.

Bekanntes Mitglied
Das mit der API stimmt, muss ich mal ändern. Aber erst mal den Rest hinbekommen...

Wenn ich den Teil wegnehme ist auch die Warung weg.
Code:
  <servlet> 
      <servlet-name>imageServlet</servlet-name> 
      <servlet-class> 
         de.JGeldAktuellVerwaltung.Servlets.ImageServlet 
      </servlet-class> 
      <load-on-startup>2</load-on-startup> 
   </servlet> 
   <servlet-mapping> 
      <servlet-name>imageServlet</servlet-name> 
      <url-pattern>/image/*</url-pattern> 
   </servlet-mapping>


Ich möchte Bilder die in einer Datenbank als Blob gespeichert sind anzeigen! Das ist mein Gesamtziel.
Zu den Thema habe ich lieder nicht viel gefunden.
Das was ich gefunden habe besagte das ich ein Servlet in der Form oder so ähnlich brauche.
Code:
public class ImageServlet extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
    try {    
        response.setContentType("image/png");
        BufferedImage image = ((ModelController)UtilityBean.getSessionScopeControler("ModelController")).getBerater    ().getImgUnterschrift();
        OutputStream out = response.getOutputStream();
        ImageIO.write(image, "png", out);
    } catch (Exception e) {
        e.printStackTrace();
     }
}
Nur bekomme ich es nicht hin, dass dieses Servlet auch mal gestartet wird...

Danke für deine Hilfe!
 
M

maki

Gast
Wichtig ist imho, wie und wo du die Daten anzeigen möchtest.

Man kann zB. auch direkt auf einer ManagedBEan Binärströme an den Browser zurücksenden, ganz ohne Servlet.

ALso, mit IMG Tag oder zum Speichern???
 

A.T.

Bekanntes Mitglied
Möchte die auf einer JSF Seite mit dem Tag <h:graphicImage /> anzeigen.
Erst mal geht es nur ums anzeigen.
 
M

maki

Gast
Dann ist das Servlet die bessere Wahl.

Was ist denn jetzt das genaue Problem?

Was passiert, wenn du per URL auf das Servlet zugreifen willst?
 

A.T.

Bekanntes Mitglied
Ich weiß einfach nicht genau wie ich auf das Servlet zugreifen soll. Muss ich so etwas wie <h:graphicImage url="mypagacke.Servlet"/> schreiben? Oder etwas ganz anderes?
 

freez

Top Contributor
Hallo.

Ich habe mal ein konkretes Beispiel, welches bei mir in einer Anwendung so läuft:

Dieses Bild rufst du mit
Code:
/MeinImageServlet?pic=0
auf:
Code:
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		HttpSession session = req.getSession();
		
		ServletContext context = session.getServletContext();
	    String path = context.getRealPath("\\");
		
		int picNumber = -1;
		try {
			picNumber = Integer.parseInt(req.getParameter("pic"));
		} catch (NumberFormatException e) {
			return;
		}
	
		resp.setContentType("image/jpeg");
		OutputStream out = resp.getOutputStream();
		//Hier Datei holen oder aus der Datenbank lesen
		File f = new File(path + "pic" + picNumber + ".jpg");
		InputStream in = new FileInputStream(f);
		
		byte[] buffer = new byte[2048];
		for (int n; (n = in.read(buffer)) != -1;out.write(buffer,0,n));
		
		out.close();
		in.close();
		
	}

web.xml:
Code:
<servlet>
  	<servlet-name>MeinImageServlet</servlet-name>
  	<servlet-class>de.system.MeinImageServlet</servlet-class>
  	<load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>MeinImageServlet</servlet-name>
    <url-pattern>/MeinImageServlet</url-pattern>
  </servlet-mapping>
 

A.T.

Bekanntes Mitglied
@maki Du hast ja Recht damit das mir Servlet-Grundlagen fehlen. Versuche mir die aber zu erarbeiten. Nur machmal muss man leider Learning bei Doing vorgehen...

Aber danke für den Tip. Damit habe ich gefunden was ich brauchte.

@freez Vielen Dank für das Beispiel! So ähnlich habe ich das umgesetzt. Allerdings habe ich mein Servlet wie von maki beschrieben aufgerufen. Kann ich den gesamten Aufruf durch /MeinServletName/id="#{bean.id}" ersetzten?
 
M

maki

Gast
"learning by doing" setzt vopraus, dass man zumindest die Grundlagen kennt und diese dann auch vertrieft, was du meinst ist "trial & error" ;)

Man könnte dir jetzt noch viel mehr Beispielcode geben, der dann auch funktioniert.
Verstehen würdest du dass aber nicht, wärst auf Hilfe angewiesen, ständig.
 

A.T.

Bekanntes Mitglied
Maki du hast Recht! Und du musst deine Aussage auch nicht mit einem Smily entschärfen. Ist leider exakt so wie du es sagst!

Wenn ich also sag ich fange von 0 an.
Sollte ich mir dann erst mal möglichst viel über Servlets und JSP reinpfeifen oder an einer anderen Stelle anfangen? Und wo sollte es dann weiter gehen?
 
M

maki

Gast
Lies mehr über Servlets, zumindest die Grundlagen, dann etwas über JSP (ist sehr einfach wenn du Servlets einigermassen verstanden hast) und zum Schluss widme dich JSF, das ist zwar komplizierter als Servlets&JSPs, baut aber darauf auf.

Die erschiedenen Scopes (Session, etc.pp.), web.xml konfiguration, Webappcontext etc.pp., kurz die ganzen Grndlagen sind alles Teil der Servlet Spek, die ersten paar Kapitel aus einem Servlet Buch würden dir imho sehr helfen.
 

A.T.

Bekanntes Mitglied
Gut! Dann werde ich das so schnell wie möglich nachholen! Bleibt nur noch die Frage welches Buch mal lesen sollte...
http://www.amazon.de/Servlets-JavaServer-Pages-Platform-Enterprise/dp/0130893404/ref=sr_1_23?ie=UTF8&s=books-intl-de&qid=1208447991&sr=8-23
Wäre das z.B. in Ordnung? Oder ist das schon zu alt?

So ich lade mir das jetzt hier http://pdf.coreservlets.com/ runter und lese das. Dann sollten ein paar Grundlagen da sein, hoffe ich...
Und dann noch gegebenfalls das more Buch... http://pdf.moreservlets.com/
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
E Servlet Wie kann ich ohne Hilfe von Eclipse in JBoss mein servlet aufrufen Allgemeines EE 2
M Servlet lässt sich nicht aufrufen Allgemeines EE 6
L Servlet kann Funktion nicht aufrufen Allgemeines EE 3
K Servlet per Formular aufrufen Allgemeines EE 8
N JSP kann Servlet nicht aufrufen! :-( Allgemeines EE 2
V Servlet aufrufen aus JSF Allgemeines EE 5
W Servlet aufrufen Allgemeines EE 6
G Servlet beim Absenden eines Formulars aufrufen Allgemeines EE 11
C Servlet von Frame aus aufrufen Allgemeines EE 3
padde479 Servlet aufrufen Allgemeines EE 3
J JSP aus Servlet aufrufen. Allgemeines EE 2
A Anderes Servlet aufrufen Allgemeines EE 4
K URL aus Servlet aufrufen Allgemeines EE 3
G Jakarta Servlet API 5.0 Allgemeines EE 1
pkm Frage wegen AJAX-Zugriff auf ein Servlet Allgemeines EE 1
Dimax Servlet Servlet Kommunikation Allgemeines EE 18
K Unterschied zwischen JSP & Servlet gegenüber REST mittels JAX-RS Allgemeines EE 1
Dimax Servlet läuft in Eclipse, aber nicht im Browser Allgemeines EE 74
M URL Servlet Request getParameter Allgemeines EE 2
M Servlet Methoden Aufruf im Servlet Allgemeines EE 10
J 404 Not found (Servlet) Allgemeines EE 1
J Asynchrones Servlet löst NullPointerException aus Allgemeines EE 5
E Servlet Servlet das richtige? Allgemeines EE 11
B HTTP-Header-Inspektor-Servlet Allgemeines EE 1
N JSP Servlet mit JSP ansprechen Allgemeines EE 2
F Mehrere Bilder aus MySQL DB via Servlet darstellen. Allgemeines EE 1
J FTP und Servlet Allgemeines EE 11
H Post an Servlet Allgemeines EE 2
A Binärdatei vom Servlet erzeugen lassen Allgemeines EE 3
S Servlet Authentication Filter Allgemeines EE 0
S LDAP JAAS oder Servlet Allgemeines EE 0
G Problem: Servlet in JSP einbinden mit <jsp:include> Allgemeines EE 3
F eigene Anwendung per Servlet Container starten Allgemeines EE 9
F Servlet Daten im Speicher ablegen Allgemeines EE 3
L Servlet ClassNotFoundException Servlet Allgemeines EE 3
G Allgemeine Frage zu Authentifizierung mittels Servlet API Allgemeines EE 2
J Servlet "package does not exist" Allgemeines EE 5
K Servlet-Mapping Allgemeines EE 9
0 Servlet mit ArrayList Allgemeines EE 3
E Servlet unter mehreren Adressen Allgemeines EE 16
S Pfad-Zugriff über Servlet-init() Allgemeines EE 2
S Servlet.service() threw exception Allgemeines EE 4
A Servlet erkennt request Objekt nicht Allgemeines EE 8
G Direkter Zugriff auf Servlet- doPost Allgemeines EE 15
G Servlet doGet, doPost Allgemeines EE 3
A Kodierungsproblem bei Parameterübergabe von Browser an Servlet (GET) Allgemeines EE 2
Antoras servlet-mapping auf dynamische URLs Allgemeines EE 17
0 Problem mit librarys javax.servlet.http.HttpServletRequest cannot be resolved Allgemeines EE 1
MQue Ajax - Servlet Allgemeines EE 2
MQue Servlet Allgemeines EE 9
S [Design] Dynamischer EJB Aufruf von Servlet Allgemeines EE 3
S Servlet auf JBoss 5? Allgemeines EE 11
B HttpSession bekommen wenn nicht in Servlet Allgemeines EE 8
MQue Servlet / Button Allgemeines EE 5
S In Eclipse werden die "Servlet-Klassen" nicht gefu Allgemeines EE 2
U javax.faces und javax.servlet cannot be resolved Allgemeines EE 2
W Potentielles Memory Leak bei Servlet Allgemeines EE 6
B unterschied servlet und bean Allgemeines EE 2
Escorter Servlet .sar und jede Menge .jar Archive Allgemeines EE 2
N Servlet und JSF (URL-Rewriting)? Allgemeines EE 3
N Servlet zyklisch aktualisieren Allgemeines EE 2
zilti Verbindung Applet <-> Servlet Allgemeines EE 5
ARadauer Servlet Bild Rückgabe Allgemeines EE 2
I Über Formular Daten zu Servlet Allgemeines EE 36
H Servlet - Zwischenmeldung anzeigen bei längerer Berechnung Allgemeines EE 2
G Ordner mit Umlauten einlesen - Servlet Allgemeines EE 3
A web.xml für Servlet in Tomcat 5.5 erstellen Allgemeines EE 2
M Zwei Buttons in einem Servlet Allgemeines EE 2
A web.xml für Servlet in Tomcat erstellen Allgemeines EE 6
B Servlet Allgemeines EE 3
G EJB - EJB wird nicht ins Servlet geladen Allgemeines EE 3
K load-on-startup -> in der Servlet Klasse Allgemeines EE 6
G Objekt an Servlet übergeben - oder Objekt global definieren? Allgemeines EE 4
W Was bei Servlet-Entwicklung alles beachten? Allgemeines EE 8
R Zugriff auf Filter Servlet Allgemeines EE 10
I JBOSS Jsp Files Pfad im Servlet? Allgemeines EE 4
N Servlet-Request abbrechen? Allgemeines EE 3
D Java Servlet mit Radio Buttons Allgemeines EE 2
G Servlet debugging Allgemeines EE 8
N Thread von Servlet aus starten Allgemeines EE 16
N JSP: Collection im Servlet überwachen (mit AJAX)? Allgemeines EE 5
J Socket daten darstellen per jsp,servlet Allgemeines EE 2
W servlet über https Allgemeines EE 2
B Parameterübergane von Servlet an JSP funktioniert nicht ? Allgemeines EE 2
M Aus einem Servlet auf ein anderes zugreifen ? Allgemeines EE 2
G Servlet Serializable Allgemeines EE 2
B Servlet-Api.jar auf JBoss? (Migration von Tomcat zu JBoss) Allgemeines EE 4
H Servlet - Importieren von Code Allgemeines EE 2
P Java Servlet - Umgang mit Verlinkungen Allgemeines EE 7
M Wert aus Servlet an normale Klasse übergeben Allgemeines EE 2
E Servlet soll JFRame öffnen. Jframe.setvisible schlägtfehl Allgemeines EE 2
M servlet --> jsp - problem beim umstrukturieren Allgemeines EE 5
D Servlet Problem über Server Allgemeines EE 26
L sessions mit servlet oder jsp ? Allgemeines EE 9
B JSF - Servlet mit Parametern über einen Link öffnen Allgemeines EE 3
D Binärdaten im Servlet entgegen nehmen, aber wie? Allgemeines EE 5
T Servlet-Instanzen und ServletContext Allgemeines EE 2
L speichern von daten mittels servlet in xml Allgemeines EE 8
N Collection überwachen (Servlet + AJAX) Allgemeines EE 3
N Liste mit Checkboxen an Servlet übergeben? Allgemeines EE 3

Ähnliche Java Themen

Neue Themen


Oben