- PR -

JRun3.0上のサーブレットでJAXP1.1は使えますか?

1
投稿者投稿内容
kamicup
会議室デビュー日: 2001/11/15
投稿数: 6
投稿日時: 2001-11-15 15:34
テスト環境: Win98SE+J2SE1.3.1+JAXP1.1+JRun3.0

開発テスト中のサーブレットからJAXP1.1のAPI(javax.xml.transform以下のAPIや、DOM Level2のAPI)を使うことができず、悩んでいます。

・普通にDocumentBuilderFactory.newInstance()すると、JRunにパッケージ
 されている古いJAXPのAPI()が呼び出されてしまいます。当然ながら、
 java.lang.NoSuchMethodErrorが吐き出されます。

・jaxp1.1のjarにクラスパスを通しても、読み込み順序のためか古いjaxpが利用
 されるためか状況に変化ありません。

・jaxp1.1のjarを古いものより先に読み込ませると、JRun自体が起動できません。
 (javax.servlet.ServletException: sealing violation)

・サーブレット中で無理矢理
 System.setProperty("javax.xml.parsers.DocumentBuilderFactory", "org.apache.crimson.jaxp.DocumentBuilderFactoryImpl");
 とすると、次にDocumentBuilderFactory.newInstance()した時点で
 (javax.servlet.ServletException: sealing violation)が発生します。

・スタックトレースに(Unknown Source)がたくさん出てくるため私には意味が
 読みとれません。以下はjavax.xml.transformに失敗した例です。

 java.lang.SecurityException: sealing violation
 at java.net.URLClassLoader.defineClass(Unknown Source)
 at java.net.URLClassLoader.access$100(Unknown Source)
 at java.net.URLClassLoader$1.run(Unknown Source)
 at java.security.AccessController.doPrivileged(Native Method)
 at java.net.URLClassLoader.findClass(Unknown Source)
 at java.lang.ClassLoader.loadClass(Unknown Source)
 at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
 at java.lang.ClassLoader.loadClass(Unknown Source)
 at java.lang.ClassLoader.loadClassInternal(Unknown Source)
 at java.lang.Class.forName0(Native Method)
 at java.lang.Class.forName(Unknown Source)
 at javax.xml.transform.TransformerFactory.newInstance (TransformerFactory.java:117)
 at kamicup.util.XMLWriter.print(XMLWriter.java:37)
 at kamicup.sppservlet.claimServlet.menu(claimServlet.java:224)
 at kamicup.sppservlet.claimServlet.doPost(claimServlet.java:286)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:772)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:865)
 at allaire.jrun.servlet.JRunSE.service(JRunSE.java:1013)
 at allaire.jrun.servlet.JRunSE.runServlet(JRunSE.java:925)
 at allaire.jrun.servlet.JRunNamedDispatcher.forward(JRunNamedDispatcher.java:34)
 at allaire.jrun.servlet.Invoker.service(Invoker.java:84)
 at allaire.jrun.servlet.JRunSE.service(JRunSE.java:1013)
 at allaire.jrun.servlet.JRunSE.runServlet(JRunSE.java:925)
 at allaire.jrun.servlet.JRunRequestDispatcher.forward(JRunRequestDispatcher.java:88)
 at allaire.jrun.servlet.JRunSE.service(JRunSE.java:1131)
 at allaire.jrun.servlet.JvmContext.dispatch(JvmContext.java:330)
 at allaire.jrun.http.WebEndpoint.run(WebEndpoint.java:107)
 at allaire.jrun.ThreadPool.run(ThreadPool.java:272)
 at allaire.jrun.WorkerThread.run(WorkerThread.java:75)

ひょっとしてJRun3.0では無理なのかと思い始めています。
何か解る御方がいらっしゃいましたら、ご教授願います。

#長文失礼しました。
おがわ
大ベテラン
会議室デビュー日: 2001/08/01
投稿数: 199
お住まい・勤務地: 千葉県
投稿日時: 2001-11-15 17:19
ベンダーのサイトに、関連する内容が載ってました。

http://cfusion.itfrontier.co.jp/kb/jrun_article.cfm?ID=335
http://cfusion.itfrontier.co.jp/kb/jrun_article.cfm?ID=213
kamicup
会議室デビュー日: 2001/11/15
投稿数: 6
投稿日時: 2001-11-16 11:43
ありがとうございます!!
Macromediaのホームページまでは見に行ったのですがわからなかったのです。
ご指示のページを見て、古いjaxp.jarを消去するとうまくいきました。
大変助かりました。
1

スキルアップ/キャリアアップ(JOB@IT)