WebSphere App Server 不编译 JSP/标签库
这是仅在应用程序更新时出现的问题(仅通过管理控制台测试,未通过 CLI 测试)。 此外,这仅发生在我们的开发环境中,这与我们的产品环境相同。 卸载/安装时,一切都已正确编译。 然而,这是一个大型应用程序,需要足够长的时间才能进行更新——我们不想每次都卸载/安装(尤其是在开发构建期间)。
正在生成 JSP .java 和 .smap 文件,但不生成 .class。 在产品上,没有 .smap——只有 .java 和 .class。 如果 JSP 能够编译,我们相信标签库也会被编译。
有没有人遇到过这个问题,或者知道我们可能忽略了什么?
WAS 版本:6.1.0.17
编辑:这只发生在一个 JSP 及其使用的标签库中。 我们正在尝试解决该问题。 如果我们发现任何问题请告诉您。 我们认为这可能是 .SMAP 文件的问题 此修复
解决方案
This is a problem that only occurs on application update (only tested through Admin Console, not CLI). Also, this is only happening on our development environment, which is identical to our prod env. On uninstall/install, everything is compiled properly. However, this is a large application and it takes long enough to do an update--we do not want to uninstall/install everytime (esp. during dev. builds).
JSP .java and .smap files are being generated, but not .class. On prod, there is no .smap--only .java and .class. If the JSPs would compile, we believe the tag libs would be compiled also.
Has anyone faced this problem, or know what we are possibly overlooking?
WAS Version: 6.1.0.17
EDIT: This is only happening for one JSP and the tag library its using. We're trying to trouble shoot the issue. Let you know if we figure anything out. We think it may be an issue with the .SMAP file per this fix
SOLUTION
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
解决方案:
问题是:WAS 启用了调试。 这会生成 .smap 文件(源映射)而不是 .class 文件。 发现这一点后,我们在管理控制台下禁用了调试服务(应用程序服务器 > server1 > 调试进程 > 取消选中“启动服务”)。 我不知道为什么这只会在更新时产生错误,但是无论如何,问题都解决了。
Solution:
Problem was: WAS had debugging enabled. This generated .smap files (source mappings) instead of .class files. Once we discovered this, we disabled the debugging service under the Admin Console (Application Servers > server1 > Debugging Processes > uncheck 'Start service'). I don't know why this created a bug upon an update only, but, whatever the case, the problem is solved.
一个建议:
您是否检查过您的环境中是否有一个指向 JDK 而不仅仅是 JRE 的 JAVA_HOME。 JRE没有javac,因此没有任何方法可以将JSP编译器在运行时创建的.java文件编译为.classes?
编辑:另外,也许这个 链接 可能有帮助吗?
One suggestion:
Have you checked that your environment has a JAVA_HOME pointing to a JDK and not just a JRE. The JRE doesn't have javac, so there won't be any way to compile .java files created at runtime by the JSP compiler into .classes?
EDIT: Also, perhaps this link may help?
我没有使用过标签库,但我可以告诉你:
应用程序服务器检查时间戳。 非常非常确定从应用程序服务器的角度来看,JSP 文件的“修改”时间戳是合理的(比如说,不是将来的)
希望这可以帮助您解决问题。 。
I haven't worked with taglibs, but I can tell you this:
the application server checks timestamps. be very very sure that the "modified" timestamps of the JSP files are reasonable from the point of view of the application server (say, are not in the future)
Hope this helps you solve the problem...