discuss_ja@glassfish.java.net

Re: はじめまして&NB6.1+SJSAS9.1でのjspトラブルシュート方法?

From: Yoshio Terada <Yoshio.Terada_at_Sun.COM>
Date: Tue, 13 May 2008 21:10:20 +0900

よっしーです。

> http://172.*.*.*:12080/***Test1-web/test.jsp

HTTPで接続していて、SSLのワーカスレッドが
動作しているのが少しひっかかるのですが。
ブラウザからHTTPSで接続した場合は如何でしょうか?

https://127.*.*.*:12080/***Test1-web/test.jsp

また、domain.xmlの内容を教えていただけないでしょうか。
# cat $GF_INSTALL/domains/DOMAIN/config/domain.xml

特に下記のように12080のポート番号が含まれる行を教えてく
ださい。
********************************************************************************
         <http-listener acceptor-threads="1" address="0.0.0.0"
blocking-enabled="false" default-virtual-server
="server" enabled="true" family="inet" id="http-listener-1"
port="12080" security-enabled="false" server-name=
"" xpowered-by="true">
********************************************************************************

もしくは、下記の行が含まれる箇所を教えてください。
********************************************************************************
security-enabled="false"
********************************************************************************

Grizzlyのソースコードによると、プロトコルが見つからない時に
実行されるフローに遷移しているようです。(すべては追って
いませんが。)

PortUnificationPipeline.java:380
********************************************************************************
                         } else {
                             // If the protocol wasn't found, it might
be because
                             // lack of missing bytes. Thus we must
register the key for
                             // extra bytes. The trick here is to re-
use the ReadTask
                             // ByteBufferInpuStream.
                             if (bbInputStream == null){
                                 bbInputStream = new
ByteBufferInputStream();
                             }
                             ByteBuffer tmpBB = protocolInfo.inputBB;
                             if (tmpBB == null){
                                 tmpBB = protocolInfo.byteBuffer;
                             }
                             int byteAvailables = tmpBB.position();
                             bbInputStream.setByteBuffer(tmpBB);
                             bbInputStream.setSelectionKey(key);
                             //One seconds blocking read.
                             bbInputStream.setReadTimeout(1000);
380: bbInputStream.read();
                             if ((tmpBB.position() - byteAvailables)
<= 1){
                                 cancel(readTask,tmpBB);
                                 return;
                             }
                             protocolInfo.byteBuffer = tmpBB;
                             bbInputStream.recycle();
                         }
********************************************************************************

PS.
このMLは基本的にはサポートに関する質問は
Best Effortでの対応になりますので、
その点だけは御了承いただければと思います。

On 2008/05/13, at 19:24, y_at_sonoda.ac wrote:

> はじめまして、苑田といいます。
>
> つい先ほどこのMLに参加させていただきました。
>
> どうぞよろしくお願いいたします。
>
> こちらのMLが適切なのかちょっと不明なのですが、一般的な議
> 論という
> 説明になっていたので、質問させてください。
>
> 当方の環境は下記のとおりです。
>
> 開発マシン&クライアント:
> Windows XP sp2
> NetBeans6.1
> JDK1.6_04
> J2EE5
>
> サーバ:
> Windows Server 2005
> Sun Java System Application Server 9.1 01
> JDK1.6_04
>
> さて、いまEJB3.0の勉強をかねて、まずは非常に簡単なサ
> ンプルを
> 作って動かそうとしてます。
>
> 最終的には、サーバのMS Accessのファイルを
> JPA(Toplink)を使って
> Webアプリで読み出すところまで行きたいと考えていますが、
> まずはそれはおいておいて、下記のような状況が発生して困って
> おります。
>
> 上記、サーバに下記のtest.jspをデプロイし、クライアントの
> webブラウザで
> 表示をしようとしているだけなのですが、SJSASのログを見
> ても、肝心の
> ソース(例えば上記test.jsp)のどこに問題があるのか?
> といったログを
> 出してくれないので途方にくれています。
>
> <%--
> Document : test
> Created on : 2008/05/09, 15:54:47
> Author : *******
> --%>
>
> <%_at_page contentType="text/html" pageEncoding="windows-31j"%>
>
> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
> "http://www.w3.org/TR/html4/loose.dtd">
>
>
> <html>
> <head>
> <meta http-equiv="Content-Type" content="text/html;
> charset=windows-31j">
> <title>JSPテストページ</title>
> </head>
> <body>
> <h2>Hello World!</h2>
> </body>
> </html>
>
> NetBeansにてwebプロジェクトを作成し、SJSASにデ
> プロイをしましたが、
> そこまではOKのようです。
>
> 以下NBのメッセージです。
> [172.x.x.x:4848_server] に C:\Documents and Settings\*****\My
> Documents\javaプログラム\***Test1\dist\***Test1.ear
> を配備します
> プロジェクトのサーバーリソースの登録を開始します
> サーバーリソースの登録を完了しました
> deployment started : 0%
> deployment finished : 100%
> Deploying application in domain completed successfully
> Trying to create reference for application in target server completed
> successfully
> Trying to start application in target server completed successfully
> Deployment of application ***Test1 completed successfully
> Enable of ***Test1 in target server completed successfully
> Enable of application in all targets completed successfully
> All operations completed successfully
> post-run-deploy:
> run-deploy:
> 構築成功 (合計時間: 6 秒)
>
> さて、肝心のtest.jspにSleipnirから以下のURL
> にてアクセスをします。
>
> http://172.*.*.*:12080/***Test1-web/test.jsp
>
> すると、ブラウザには下記のメッセージが表示されます。
>
> HTTP Status 500 -
>
> --------------------------------------------------------------------------------
>
> type 状態レポート
>
> メッセージ
>
> 説明The server encountered an internal error () that prevented
> it from
> fulfilling this request.
>
>
> --------------------------------------------------------------------------------
>
> Sun Java System Application Server 9.1_01
>
> ちなみに、おなじプロジェクトに確認用のindex.htmlとい
> うのも入れていて、
> それに対して、
> http://172.*.*.*:12080/***Test1-web/index.html
>
> にてアクセスすると、ちゃんとブラウザ上に表示してくれるので、
> URLやsun-web.xmlのコンテクストルートの設定は間違って
> いないようです。
>
> さて、上記のStatus HTTP 500エラーが表示されるときのSJSAS
> のログを
> 見てみると、SEVEREとWARNINGという2つのエラーが
> 出ています。
>
> それらは下記のとおりです。
>
> ------------------------------------------------------------------------------------------
> タイムスタンプ 2008/05/13 18:21:01.335
> ログレベル WARNING
> ロガー javax.enterprise.system.stream.err
> 名前と値のペア
> _ThreadID
> =
> 27
> ;_ThreadName
> =httpSSLWorkerThread-12080-0;_RequestID=7cd8fc83-5cda-47cc-
> aff8-59d27bc98cda;
> レコード番号 3750
> メッセージ ID java.lang.NullPointerException at
> org
> .apache
> .jasper.compiler.Jsr199JavaCompiler.compile(Jsr199JavaCompiler.java
> メッセージ全文 172) at
> org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:342)
> at org.apache.jasper.compiler.Compiler.compile(Compiler.java:411) at
> org
> .apache
> .jasper.JspCompilationContext.compile(JspCompilationContext.java:592)
> at
> org
> .apache
> .jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:344)
> at
> org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:
> 470)
> at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:364)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:831) at
> org
> .apache
> .catalina
> .core
> .ApplicationFilterChain.servletService(ApplicationFilterChain.java:
> 411)
> at
> org
> .apache
> .catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:
> 290)
> at
> org
> .apache
> .catalina
> .core.StandardContextValve.invokeInternal(StandardContextValve.java:
> 271)
> at
> org
> .apache
> .catalina.core.StandardContextValve.invoke(StandardContextValve.java:
> 202)
> at
> org
> .apache
> .catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
> at
> org
> .apache
> .catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
> at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94) at
> org
> .apache
> .catalina.core.StandardHostValve.invoke(StandardHostValve.java:206)
> at
> org
> .apache
> .catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
> at
> org
> .apache
> .catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
> at
> org
> .apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:
> 571)
> at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:
> 1080)
> at
> org
> .apache
> .catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:
> 150)
> at
> org
> .apache
> .catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
> at
> org
> .apache
> .catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
> at
> org
> .apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:
> 571)
> at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:
> 1080)
> at
> org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:
> 272)
> at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter
> (DefaultProcessorTask.java:637)
> at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess
> (DefaultProcessorTask.java:568)
> at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process
> (DefaultProcessorTask.java:813)
> at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask
> (DefaultReadTask.java:341)
> at
> com
> .sun
> .enterprise
> .web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:
> 263)
> at
> com
> .sun
> .enterprise
> .web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:
> 214)
> at com.sun.enterprise.web.portunif.PortUnificationPipeline
> $PUTask.doTask(PortUnificationPipeline.java:380)
> at
> com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:
> 265)
> at
> com
> .sun
> .enterprise
> .web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:
> 106)
>
> ------------------------------------------------------------------------------------------
> タイムスタンプ 2008/05/13 18:53:10.730
> ログレベル SEVERE
> ロガー javax.enterprise.system.container.web
> 名前と値のペア
> _ThreadID
> =
> 28
> ;_ThreadName
> =httpSSLWorkerThread-12080-1;_RequestID=5d7e7365-8d6b-4d77-b871-
> e4b852cad1bf;
> レコード番号 3553
> メッセージ ID StandardWrapperValve[jsp]
> メッセージ全文 PWC1406: サーブレット jsp の
> Servlet.service() が例外をスローしました
> java.lang.NullPointerException at
> org
> .apache
> .jasper.compiler.Jsr199JavaCompiler.compile(Jsr199JavaCompiler.java:
> 172)
> at org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:
> 342)
> at org.apache.jasper.compiler.Compiler.compile(Compiler.java:411) at
> org
> .apache
> .jasper.JspCompilationContext.compile(JspCompilationContext.java:592)
> at
> org
> .apache
> .jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:344)
> at
> org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:
> 470)
> at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:364)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:831) at
> org
> .apache
> .catalina
> .core
> .ApplicationFilterChain.servletService(ApplicationFilterChain.java:
> 411)
> at
> org
> .apache
> .catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:
> 290)
> at
> org
> .apache
> .catalina
> .core.StandardContextValve.invokeInternal(StandardContextValve.java:
> 271)
> at
> org
> .apache
> .catalina.core.StandardContextValve.invoke(StandardContextValve.java:
> 202)
> at
> org
> .apache
> .catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
> at
> org
> .apache
> .catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
> at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94) at
> org
> .apache
> .catalina.core.StandardHostValve.invoke(StandardHostValve.java:206)
> at
> org
> .apache
> .catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
> at
> org
> .apache
> .catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
> at
> org
> .apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:
> 571)
> at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:
> 1080)
> at
> org
> .apache
> .catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:
> 150)
> at
> org
> .apache
> .catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
> at
> org
> .apache
> .catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
> at
> org
> .apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:
> 571)
> at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:
> 1080)
> at
> org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:
> 272)
> at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter
> (DefaultProcessorTask.java:637)
> at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess
> (DefaultProcessorTask.java:568)
> at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process
> (DefaultProcessorTask.java:813)
> at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask
> (DefaultReadTask.java:341)
> at
> com
> .sun
> .enterprise
> .web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:
> 263)
> at
> com
> .sun
> .enterprise
> .web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:
> 214)
> at com.sun.enterprise.web.portunif.PortUnificationPipeline
> $PUTask.doTask(PortUnificationPipeline.java:380)
> at
> com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:
> 265)
> at
> com
> .sun
> .enterprise
> .web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:
> 106)
> ------------------------------------------------------------------------------------------
>
> test.jspの中身は単にhelloと書くだけのもので、セッショ
> ンビーンなどは
> 使っていないため、普通に表示してくれてよさそうですが、どう
> にも表示をしてくれず
> また上記のエラー内容からは、当方不勉強のためその原因を読み
> 取ることが出来ません。
>
> ここ2日ほど、エラーの文字列でぐぐって原因を調べていますが、
> 該当するような情報にあたらず、手詰まりの状態です。
>
> 何が問題なのか?あるいはさらにどのようにすれば根本的な問題を
> 見つけることが出来るのかご教授いただけると非常に助かります。
>
> よろしくお願いします。