Jakarta ee “我如何解决?”;RhinoScriptEngineFactory无法强制转换为ScriptEngineFactory“;?
最近,我被要求从旧环境迁移旧web应用程序:Jakarta ee “我如何解决?”;RhinoScriptEngineFactory无法强制转换为ScriptEngineFactory“;?,jakarta-ee,groovy,jboss,migration,legacy,Jakarta Ee,Groovy,Jboss,Migration,Legacy,最近,我被要求从旧环境迁移旧web应用程序: JBoss EAP 4.0.2 JDK1.5(JavaSE开发工具包5.0u22) 到较旧的目标环境: JBoss EAP 5.0.1 JDK1.6(JavaSE开发工具包6u45) 但在新环境中运行特定操作时,我得到了错误: java.lang.ClassCastException: com.sun.script.javascript.RhinoScriptEngineFactory cannot be cast to javax.scri
- JBoss EAP 4.0.2
- JDK1.5(JavaSE开发工具包5.0u22)
- JBoss EAP 5.0.1
- JDK1.6(JavaSE开发工具包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)
java.lang.ClassCastException:com.sun.script.javascript.RhinoScriptEngineFactory无法强制转换为javax.script.ScriptEngineFactory
位于javax.script.ScriptEngineManager.initEngines(ScriptEngineManager.java:109)
位于javax.script.ScriptEngineManager.access$0(ScriptEngineManager.java:86)
位于javax.script.ScriptEngineManager$1.run(ScriptEngineManager.java:80)
位于java.security.AccessController.doPrivileged(本机方法)
位于javax.script.ScriptEngineManager.init(ScriptEngineManager.java:78)
位于javax.script.ScriptEngineManager。(ScriptEngineManager.java:51)
...
位于javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
位于org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
位于org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
...
位于org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:235)
位于org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
位于org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:190)
位于org.jboss.web.tomcat.security.jaccontextvalve.invoke(jaccontextvalve.java:92)
位于org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)
位于org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)
位于org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
位于org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
位于org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)
位于org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
位于org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)
位于org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:829)
位于org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:598)
位于org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
运行(Thread.java:619)
如何解决此异常
更新
产生上述异常的操作与传统web应用程序中的
jsr223-1.0.jar
提供的Groovy脚本语言有关。这是一个JBoss类加载器问题,JDK(1.5到1.6)迁移使其变得复杂
,因此不再需要jsr223-1.0.jar
对我有效的解决方案是删除jsr223-1.0.jar
(归功于)
您可能会感兴趣。我想他们知道Java 6已经过时很多年了吧?就像从石板迁移到纸莎草,而世界其他地方都不再使用电脑了?是的,tim_yates,他们知道。他们有一个环境迁移计划,相应地迁移应用程序,并有自己的生命周期和估计的迁移成本。在这种情况下,应用程序将在目标环境被解除之前终止。“从石碑到纸莎草”的迁移成本非常低;-)