0

Tag library内部のバグにより、カスタムからタグを上書きする必要がありました。クラスの完全なコード (サブクラス化できない、メソッドにバグがある) をコピーして独自のカスタム クラスに貼り付け、新しいプロパティを使用しprivateて独自のファイルを作成し、ファイルに参照を追加しました。次に、新しいプレフィックスを使用してページを更新しました。 .tldshortnameweb.xmljsp

次のエラーが表示されます。

Error failed to locate setter method for attribute class in tag class my.package.MyTableTag

問題のあるフィールドはカスタム クラスで明示的に定義されているため、このエラーが発生する理由がわかりません。

さらに情報が必要な場合は、質問してください。

編集

もう少し調べてみたところtei-class、元のタグ (および私のカスタム コピー) に対して定義されている と関係があるはずだと思います。しかし、このクラス内では、間違ったクラスまたは類似のものを直接参照するものは見つかりません。
アプリケーションは WAS 6.1 サーバーにデプロイされ、エラー スタック トレースは次のように始まります。

at com.ibm.ws.jsp.taglib.TagClassInfo.getParameterClassName(TagClassInfo.java:167)
at com.ibm.ws.jsp.translator.visitor.generator.BaseTagGenerator.evaluateAttribute(BaseTagGenerator.java:367)
at com.ibm.ws.jsp.translator.visitor.generator.BaseTagGenerator.generateSetters(BaseTagGenerator.java:256)
at com.ibm.ws.jsp.translator.visitor.generator.CustomTagGenerator.startGeneration(CustomTagGenerator.java:359)
at com.ibm.ws.jsp.translator.visitor.generator.GenerateVisitor.startGeneration(GenerateVisitor.java:699)
at com.ibm.ws.jsp.translator.visitor.generator.GenerateVisitor.visitCustomTagStart(GenerateVisitor.java:399)
at com.ibm.ws.jsp.translator.visitor.JspVisitor.processJspElement(JspVisitor.java:267)
at com.ibm.ws.jsp.translator.visitor.JspVisitor.processChildren(JspVisitor.java:309)
at com.ibm.ws.jsp.translator.visitor.JspVisitor.processJspElement(JspVisitor.java:268)
at com.ibm.ws.jsp.translator.visitor.JspVisitor.processChildren(JspVisitor.java:309)
at com.ibm.ws.jsp.translator.visitor.JspVisitor.processJspElement(JspVisitor.java:139)
at com.ibm.ws.jsp.translator.visitor.JspVisitor.visit(JspVisitor.java:121)
at com.ibm.ws.jsp.translator.visitor.generator.GenerateJspVisitor.visit(GenerateJspVisitor.java:137)
...
4

1 に答える 1

0

コピー&ペーストクラスの代わりにサブクラスを使用する別の回避策を見つけました。

于 2012-03-21T16:06:09.267 に答える