2016-07-25 5 views
0

私はアプレットの代替としてJWSアプリケーションを開発しています。これまでは、親アプリケーションからHTMLページ内のリンクを介して静的なJNLPにアプリを起動することができました。しかし、引数値は実行ごとに異なるため、私のアプリは動的JNLPによって実際に起動される必要があります。そこで、JnlpDownloadServletを[here] [1]のように拡張することにしました。ServletException(JNLP JSPが見つかりません)

protected void service(HttpServletRequest req, HttpServletResponse resp)  throws ServletException, IOException 
    {  
     HttpServletRequest request = (HttpServletRequest) req; 
     resp.setContentType("application/x-java-jnlp-file"); 
     request.getRequestDispatcher("/myJnlp.jsp").include(request, resp); 
    } 

私は、ダウンロードを起動しよう:URLパターン\downloadにマッピングされdownloadと呼ばれているマイダウンロードサーブレットは、オーバーライドされたメソッドserviceでは、現在、いくつかの静的JNLPが含まれているmyJnlp.jspと呼ばれるJSPを参照しますサーブレットは、私は次のエラーを取得する:

javax.servlet.ServletException: File "/myJnlp.jsp" not found 
    org.apache.jasper.servlet.JspServlet.handleMissingResource(JspServlet.java:417) 
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:384) 
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:731) 
    com.myCompany.parentApp.myDownloadServlet.service 

私は親アプリケーションによって使用される他のJSPを含むディレクトリであるディレクトリjspmyJnlp.jspを置きました。 JNLPページを間違った場所に置いたのですか、サーブレットコードで間違って指定しましたか?

+0

APIによると、 "パスが"/"で始まっている場合、現在のコンテキストルートからの相対パスとして解釈されます。"だから、あなたはrequest.getRequestDispatcher( "/ jsp/myJnlp.jsp")を使ってみるべきです。 – rickz

答えて

0

私は

...その後、私はその後、コメント正しい方向に私を指摘@rickzへ

request.getRequestDispatcher("myJWSApp/myJnlp.jsp").include(request, resp); 

感謝として、それを参照し、そのディレクトリにJNLP JSPを置き、myJWSAppと呼ばれるサブディレクトリを作成することでこれを解決

関連する問題