FacesFileNotFoundException saat menggunakan IFrame di XHTML

Saya mendapatkan com.sun.faces.context.FacesFileNotFoundException saat menggunakan IFRAME menuBar di browser ke-2.

Saya mendapatkan kesalahan ini saat menggunakan browser lain.

HTTP Status 500 -

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.
-

exception

com.sun.faces.context.FacesFileNotFoundException: /xhtml/auth/faces/xhtml/client/clientImage.xhtml Not Found in ExternalContext as a Resource
    com.sun.faces.facelets.impl.DefaultFaceletFactory.resolveURL(DefaultFaceletFactory.java:232)
    com.sun.faces.facelets.impl.DefaultFaceletFactory.resolveURL(DefaultFaceletFactory.java:273)
    com.sun.faces.facelets.impl.DefaultFaceletFactory.getMetadataFacelet(DefaultFaceletFactory.java:209)
    com.sun.faces.application.view.ViewMetadataImpl.createMetadataView(ViewMetadataImpl.java:114)
    com.sun.faces.lifecycle.RestoreViewPhase.execute(RestoreViewPhase.java:233)
    com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
    com.sun.faces.lifecycle.RestoreViewPhase.doPhase(RestoreViewPhase.java:116)
    com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
    javax.faces.webapp.FacesServlet.service(FacesServlet.java:593)
    com.beo.importexport.filter.AuthFilter.doFilter(AuthFilter.java:64)
    org.jboss.weld.servlet.ConversationPropagationFilter.doFilter(ConversationPropagationFilter.java:62)
note The full stack trace of the root cause is available in the JBoss Web/7.0.13.Final logs.

JBoss Web/7.0.13.Final:

Saya menggunakan templat dalam satu halaman XHTML. Di dalam templat itu IFrame digunakan.

Iframe terdiri dari bilah Menu dengan beberapa item Menu.

Masalah saya adalah ketika masuk ke browser web ke-2, sesi diubah, sehingga SRC di IFRAME mengawali jalur lama ke jalur hardcord.

tag iframe src saya di bawah

     <iframe name="contentframe"   id="contentframe"  
            width="100%" height="710px"  
    src="faces/xhtml/client/clientImage.xhtml" 
            scrolling="auto"   
           style="overflow: auto;" >
     </iframe>

Mengapa awalan jalur ini terjadi di SRC IFRAME?


person Titus Kurian    schedule 23.11.2013    source sumber


Jawaban (1)


Itu karena <iframe src> Anda mewakili URL relatif. Itu tidak dimulai dengan skema (misalnya http://, https://, dll), atau dengan garis miring (/). URL relatif diinterpretasikan relatif terhadap URL permintaan saat ini (seperti yang Anda lihat di bilah alamat browser; catatan: dan dengan demikian bukan ke lokasi file fisik di sistem file disk server seperti yang dipikirkan oleh banyak pemula!).

Jadi jika URL permintaannya adalah (menebak bahwa /faces adalah jalur konteks; Anda tidak jelas dalam hal ini, Anda tidak memberi tahu apa pun tentang jalur konteks atau URL permintaan sebenarnya atau pemetaan JSF) misalnya,

http://example.com/faces/xhtml/auth/login.xhtml

maka URL relatif faces/xhtml/client/clientImage.xhtml akan dicari di folder yang sama dengan URL permintaan saat ini, sehingga menghasilkan URL ini:

http://example.com/faces/xhtml/auth/faces/xhtml/client/clientImage.xhtml

Meskipun masih berasumsi bahwa /faces adalah jalur konteks, ini akan menghasilkan pengecualian yang Anda dapatkan:

com.sun.faces.context.FacesFileNotFoundException: /xhtml/auth/faces/xhtml/client/clientImage.xhtml Not Found in ExternalContext as a Resource

Anda juga tidak jelas tentang URL apa sebenarnya file iframe tersedia. Berdasarkan informasi yang diberikan sejauh ini, tebakan terbaik saya adalah

http://example.com/faces/xhtml/client/clientImage.xhtml

Jika ini benar, maka Anda seharusnya menggunakannya

<iframe src="/faces/xhtml/client/clientImage.xhtml" />

Garis miring / di depannya akan membuatnya ditafsirkan relatif terhadap akar domain, apa pun URL permintaan saat ini.

person BalusC    schedule 23.11.2013
comment
terima kasih BalusC , tetapi saya mendapatkan solusinya dengan meletakkan jalur seperti ini ‹iframe src=#{request.contextPath}/faces/xhtml/client/clientImage.xhtml /› - - person Titus Kurian; 25.11.2013
comment
@TitusKurian Halo. Saya menghadapi masalah serupa; Apakah Anda mendefinisikan request dalam kacang yang dikelola atau itu adalah ekspresi EL? Tolong beri komentar? - person user390525; 07.10.2017