2013-02-20 15 views
6

ich die folgende Warnung unter Eclipse:WARNUNG: JSF1091: kein Mime-Typ für Dateidynamic gefunden werden kann

Dieser Fehler wird verursacht, wenn ich ein Bild

unter primefaces schreiben composant:

<p:graphicImage value="#{bean.image}"/> 

Java Bean:

private StreamedContent image; 

// Getter 
public StreamedContent getImage() { 
    try { 
     JFreeChart jfreechart = ChartFactory.createPieChart3D("", 
         createDataset(), true, true, false); 

     PiePlot3D plot = (PiePlot3D) jfreechart.getPlot(); 

     File chartFile = new File("dynamichart"); 
     ChartUtilities.saveChartAsPNG(chartFile, jfreechart, 375, 300); 
     chartImage = new DefaultStreamedContent(new FileInputStream(
         chartFile), "image/png"); 
     return chartImage; 
    } catch (Exception e) { 
     e.printStackTrace(); 
     return new DefaultStreamedContent(); 
    } 
} 

// generate data for image 
public static PieDataset createDataset() { 
    DefaultPieDataset dataset = new DefaultPieDataset(); 
    dataset.setValue("A",10); 
    dataset.setValue("B", 11); 
    dataset.setValue("C", 80); 
    dataset.setValue("D", 12); 
    return dataset; 
} 
+0

Vielleicht ist Ihr Dateiname muss sein 'dynamichart.png' (das Suffix des Dateinamens beachten). –

+0

Teilen Sie uns mehr von Ihrem XHTML-Code mit. Wo verwenden Sie diese Grafikbildkomponente? –

+0

+1 Ich bekomme diese Nachricht auch. Ich bin daran interessiert, warum, aber dann habe ich das nie erforscht, weil es nichts zu beeinflussen scheint. –

Antwort

4

Ich habe eine Lösung gefunden.

mit der neuesten Version von premefaces (3.5).

<dependency> 
    <groupId>org.primefaces</groupId> 
    <artifactId>primefaces</artifactId> 
    <version>3.5</version> 
</dependency> 

aber es wird unangenehme Veränderungen in IHM

1

ich für http://example.org und javascript:; auch, warnt die JSF1091 hatte mit ICEfaces statt Primefaces.

Ändern

<ice:outputLink onclick="..." value="javascript:;">...</ice:outputLink> 

zu

<ice:outputLink onclick="..." value="/some/url">...</ice:outputLink> 

die Warnung über javascript:; zum Schweigen gebracht.

Ändern

zu

<a href="http://example.org"/> 

es für die URL festgelegt.

5

Versuche Zugabe des folgende in der Datei web.xml

<mime-mapping> 
    <extension>jsp <!--{or the extension of file}--></extension> 
    <mime-type>text/html</mime-type> 
    </mime-mapping> 
1

Obwohl ich diese Antwort nach einer Weile Post wahrscheinlich wird es auch für andere Entwickler nützlich sein, die mit diesem Problem konfrontiert.

, dass lästige Warnung Zur Vermeidung von oben den folgenden Code in Ihre web.xml hinzu:

<mime-mapping> 
<extension>png</extension> 
<mime-type>image/png</mime-type> 
</mime-mapping> 

Weitere Informationen finden Sie unter:

http://blog.eisele.net/2011/01/weblogic-10340-oepe-maven-primefaces.html

0

Ich möchte nur meine Erfahrung teilen Bei einem ähnlichen Problem verwende ich maven, netbeans und payara. Sobald ich diese Warnung hatte:

WARNUNG Es konnte kein MIME-Typ für die Datei fontawesome-webfont gefunden werden.woff angemeldet ist

Die Lösung dieser Warnung zu entfernen, wurde das Hinzufügen den folgenden Code zu dem web.xml:

<mime-mapping> 
    <extension>woff</extension> 
    <mime-type>application/font-woff</mime-type> 
</mime-mapping> 

Hinweis: ich die gleiche Warnung mit verschiedenen Dateien hatte, hatte diese Dateien verschiedene Erweiterungen (woff, eot, woff2 and ttf). Die Lösung dazu war, woff in <extension> mit einer der zuvor genannten Erweiterungen zu ersetzen.

Ich hoffe, dass meine Antwort jemandem irgendwann helfen wird.

PS: Ich fand die Lösung in dieser page.

0

wenn Sie Feder haben, können Sie auch haben (Ich habe die meisten fa-Icons):

@Configuration 
public class JsfConfigurationMimeMapper implements EmbeddedServletContainerCustomizer { 

    @Override 
    public void customize(ConfigurableEmbeddedServletContainer container) { 
     MimeMappings mappings = new MimeMappings(MimeMappings.DEFAULT); 
     mappings.add("xsd", "text/xml; charset=utf-8"); 
     mappings.add("otf", "font/opentype"); 
     mappings.add("ico", "image/x-icon"); 
     mappings.add("svg", "image/svg+xml"); 
     mappings.add("eot", "application/vnd.ms-fontobject"); 
     mappings.add("ttf", "application/x-font-ttf"); 
     mappings.add("woff", "application/x-font-woff"); 
     mappings.add("woff2", "application/x-font-woff2"); 
     mappings.add("xhtml", "application/xml"); 
     container.setMimeMappings(mappings); 
    } 
} 
+0

Dies ist, wenn Sie Spring ** AND ** einen eingebetteten Container verwenden, so dass Sie wahrscheinlich SpringBoot laufen? – Kukeltje

+0

ja genau, das ist auch eine Lösung Wenn Sie SpringBoot verwenden, eine Alternative für diejenigen, die web.xml nicht verwenden, fügen Sie Ihre Maps grundsätzlich auf MimeMappings hinzu. – Jay