変更内容
JSPのカスタムタグについて、V1.2で以下の変更を行いました。
非互換
JSPアプリケーションの配備時にJSPカスタムタグの検証は行われません。
JSPカスタムタグにコンストラクタが定義されていても、JSPアプリケーションへのアクセスがあるまでコンストラクタ内の処理は実行されません。
JSPアプリケーションの配備時にJSPカスタムタグの検証が行われ、その定義内容に問題がある場合、標準出力に下記のようなエラーメッセージが出力されます。
6月 08, 2023 12:30:38 午後 org.glassfish.wasp.runtime.TldScanner addListenerAndCreateTags 重大: Error creating com.example.SampleTag com.sun.enterprise.container.common.spi.util.InjectionException: Error creating managed object for class: class com.example.SampleTag :(以下、スタックトレース) |
JSPカスタムタグにコンストラクタが定義されている場合、配備時(JSPカスタムタグの検証時)にコンストラクタ内の処理が実行されます。
対処法
標準出力に前述のエラーメッセージが出力されている場合、当該JSPカスタムタグは正しく動作しない場合があります。エラーメッセージに記載されているJSPカスタムタグの実装クラスについて、アプリケーションを見直してください。
また、本検証機能がJSPアプリケーションの期待動作を阻害する場合は、後述の例のように、JSPアプリケーションに含まれるweb.xmlへ本検証機能を無効化する下記オプションを追加してください。
パラメーター:org.glassfish.wasp.NO_JSPTAG_PRECREATE
指定値:true
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="https://jakarta.ee/xml/ns/jakartaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/web-app_6_0.xsd" version="6.0"> <context-param> <param-name>org.glassfish.wasp.NO_JSPTAG_PRECREATE</param-name> <param-value>true</param-value> </context-param> </web-app> |