2016-10-10 9 views
0

Weblogic11g、JSF2.0、Servlet 2.5でPrimefaces 6.0を使用しています。p:graphicImageは、5.3から6.0への移行後にNoSuchMethodErrorを返します。

My Applicationは、Primeface 5.3でダイナミックJPEG画像をレンダリングすることができました。 6.0に移行すると、私のダイナミックなp:graphicImagesは、elに関するNoSuchMethodErrorを与えています。

PrimeExceptionHandler logException
javax.el.ValueExpression.getValueReference(Ljavax/el/ELContext;)Ljavax/el/ValueReference; java.lang.NoSuchMethodError: javax.el.ValueExpression.getValueReference(Ljavax/el/ELContext;)Ljavax/el/ValueReference; at org.primefaces.el.ValueExpressionAnalyzer.toValueReference(ValueExpressionAnalyzer.java:91) at org.primefaces.el.ValueExpressionAnalyzer.getExpression(ValueExpressionAnalyzer.java:44) at org.primefaces.util.DynamicResourceBuilder.build(DynamicResourceBuilder.java:58) at org.primefaces.component.graphicimage.GraphicImageRenderer.getImageSrc(GraphicImageRenderer.java:75) at org.primefaces.component.graphicimage.GraphicImageRenderer.encodeEnd(GraphicImageRenderer.java:41) at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:884) at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1681) at javax.faces.render.Renderer.encodeChildren(Renderer.java:168) at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:854) at org.primefaces.renderkit.CoreRenderer.renderChild(CoreRenderer.java:85) at org.primefaces.renderkit.CoreRenderer.renderChildren(CoreRenderer.java:72) e

@ManagedBean(name="filebean") 
@RequestScoped 


public class FileBean { 

private StreamedContent image; 

public StreamedContent getImage() { 
    try { 
     File file = new File("C:/LEAVEMODULEFOLDER/569_q318d09lou9mafbqsdgsqph1ar_cbblogopng.jpg"); 

     System.out.println(""+file.canRead()); 
     image = new DefaultStreamedContent(new FileInputStream(file), "image/jpeg"); 

} catch (Exception e) { 
    log.error("Error in ::" + e); 
    log.error(Utility.getStackTrace(e)); 
} 



return this.image; 
} 
} 

XHTMLコードあなたは、あなたのサーブレット2.5を使用しているのでthe APIによれば、質問(ValueExpression.getValueReference())における方法のみEL 2.2

ので存在

<p:graphicImage value="#{filebean.image}" /> 
+0

releasenotes/migration guideを確認しましたか? – Kukeltje

+0

はい、私はそうしましたが、primefaces jarファイルを変更する以外は私にとっては関係のないものは何も見つかりませんでした。 – ZEE

+0

助けることができるどんな鉛ですか? – ZEE

答えて

1

以下の通りでありますEL 2.1を使用する可能性が最も高いです(詳細はthis answerを参照)。したがって、NoSuchMethodErrorはEL 2.2メソッドで発生します。

唯一のオプションは、PrimeFaces 5.3に残っているか、EL 2.2/Servlet 3.0にアップグレードしているか、もうp:graphicImageを使用していないことです。

また、ユーザーガイドに従ってServlet 2.5をサポートしているようだから、この問題をPrimeFacesの開発者に報告することもできますが、これはバグとみなされる可能性があります。

+0

ありがとうございます。私はPrimefacesに報告します。 – ZEE

+1

Primefaceはこれを拡張リクエストとして承認しました。https://github.com/primefaces/primefaces/issues/1859 – ZEE

関連する問題