【发布时间】:2015-11-16 05:33:04
【问题描述】:
最近有人要求我从旧环境迁移旧版 Web 应用程序:
- JBoss EAP 4.0.2
- JDK 1.5(Java SE 开发工具包 5.0u22)
到较旧的目标环境:
- JBoss EAP 5.0.1
- JDK 1.6(Java SE 开发工具包 6u45)
但在新环境中运行特定操作时出现错误:
java.lang.ClassCastException: com.sun.script.javascript.RhinoScriptEngineFactory cannot be cast to javax.script.ScriptEngineFactory
at javax.script.ScriptEngineManager.initEngines(ScriptEngineManager.java:109)
at javax.script.ScriptEngineManager.access$0(ScriptEngineManager.java:86)
at javax.script.ScriptEngineManager$1.run(ScriptEngineManager.java:80)
at java.security.AccessController.doPrivileged(Native Method)
at javax.script.ScriptEngineManager.init(ScriptEngineManager.java:78)
at javax.script.ScriptEngineManager.<init>(ScriptEngineManager.java:51)
...
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
...
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:235)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:190)
at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92)
at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)
at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:829)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:598)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:619)
我该如何解决这个异常?
更新
产生上述异常的动作与旧版 Web 应用程序中 jsr223-1.0.jar 提供的 Groovy 脚本语言有关。
【问题讨论】:
-
我认为他们知道 Java 6 已经过时多年了?就像从石碑迁移到纸莎草纸,而世界其他地方都在使用计算机?
-
是的@tim_yates,他们知道。他们有一个环境迁移计划,并根据自己的生命周期和估计的迁移成本相应地迁移应用程序。在这种情况下,应用程序将在目标环境被解除之前终止。 “从石碑到纸莎草”的迁移成本非常低;-)
标签: jakarta-ee groovy jboss migration legacy