首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么遗留的Tapestry4页面似乎对方法的数量有限制

问为什么遗留的Tapestry4页面似乎对方法的数量有限制
EN

Stack Overflow用户
提问于 2017-09-08 07:18:17
回答 1查看 37关注 0票数 0

不幸的是,很难提供相关的细节,因为我不知道什么是相关的,所以这里是这样的:

我有一个旧的应用程序在Tapestry4上运行,我有一个继承了AnotherPage.java的BasePage。anotherPage.html还使用了各种自定义组件。

我最近尝试向BasePage.java添加几个方法,在这一点上,AnotherPage.java中的一个循环组件停止了正常工作--行为非常奇怪。似乎即使循环正确执行,@For循环索引仍保持为零。我最终通过消除过程找到了这个问题。每当BasePage和AnotherPage之间声明的方法数量超过大约108个方法(包括抽象方法)时,错误就开始显露出来。无论方法名是什么,或者是BasePage还是AnotherPage,似乎都无关紧要。

我不确定接下来要问什么问题。为什么会发生这种情况,接下来我可以查看哪些内容来诊断问题?

下面是来自AnotherPage的一些相关的tapestry 4代码...

代码语言:javascript
复制
   <tr jwcid="@For" source="ognl:listDetails" value="ognl:detail" index="ognl:someIndex" volatile="ognl:true">
      <span jwcid="@DetailComponent"  detail="ognl:detail" detailList="ognl:listDetails" detailIndex="ognl:someIndex" ... /> 

无可否认,DetailComponent会做一些我不理解的事情。它反过来包含某种类型的jwcid="this_or_that@Block“符号(还不确定这是什么意思),然后在这些符号中包含另一个组件:

代码语言:javascript
复制
<span jwcid="@GenericDetail"  detail="ognl:detail" 
      detailList="ognl:detailList" ...
      detailIndex="ognl:detailIndex"  />

(无论如何,我希望我有时间从Tapestry 4迁移出来,但我没有。)

感谢您的任何想法、建议,或者只是花时间阅读本文!

*注意,出于IP和etc许可的原因,我显然已经抽象出了实际系统的一些细节。

EN

回答 1

Stack Overflow用户

发布于 2017-09-19 06:02:02

我真的不太了解Tapestry (好家伙,我已经很久没有用过它了),但是在我的JSP时代(比Tapestry工作还要长的时间),我们学到了很难的东西,那就是Java对类中方法的数量(http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.11)有64K的限制。在JSP中,它归结为<jsp:include page=””>和<%@ include file=”” %>。"@ include“变体在编译时引入页面,将其转换为正在编译的JSP上的方法。但jsp:include变体没有这种行为。我们只是到处跑,去掉了所有的"@ include“变体,”方法太多“的问题也就消失了。

我怀疑在您的Tapestry世界中,您正在与类似的限制作斗争:您的对象带来的依赖。我不确定您是否可以获得Tapestry内容编译的中间结果,但是您可能希望确认您没有越过这些JVM限制。

我已经准备好被否决而被遗忘了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46106419

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档