gpt4 book ai didi

java - 项目在 Eclipse 中运行,但当导入 IntelliJ IDEA 时,我收到 JasperException re : CharSequence

转载 作者:行者123 更新时间:2023-12-02 11:47:12 25 4
gpt4 key购买 nike

我收到了一份已有近 10 年历史的维护申请。客户(内部)有需求变更。到目前为止,该应用程序是在 Eclipse 中构建和维护的。我需要将其导入 IntelliJ(当前公司“标准”)以实现需求变更。

应用程序在生产中的 Websphere 服务器上运行,因此项目中的本地调试环境是 Jetty,它允许开发人员使用 localhost:(portNumber) 打开应用程序进行调试。该应用程序将使用 Eclipse 运行和调试 - 我已经花时间验证了这一点。当我尝试使用 IntelliJ 运行或调试它(本地硬盘上的完全相同的代码)时,应用程序将启动,但是一旦我点击某个 JSP 并且它尝试加载包含的 JSP,我就会收到以下错误消息(为了易读而格式化):

org.apache.jasper.JasperException: Unable to compile class for JSP||
An error occurred at line: 6 in the jsp file:
/lookupFiles/myCodes.jsp|Generated servlet error:|
The type java.lang.CharSequence cannot be resolved.
It is indirectly referenced from required .class files||

我已经完成了我能想到的代码搜索,但应用程序中的任何地方都没有 CharSequence。我已经通过Google搜索和众多推荐的解决方案(其中大多数都说从Java版本8回滚到7)。我使用 JDK 1.8.0 build 102,并将环境设置为 Java 6 的源兼容性(服务器上的内容)。因此,我认为默认方法不是问题所在。

以下是包含文件中的代码(第 6 行是开始 JSP 标记):

<jsp:useBean class="commands.CommandReciever" id="receiver"></jsp:useBean>
<%@page import="my.json.JSONObject,my.json.HTTP"%>
<%@page import="org.json.JSONArray" %>
<%@page import="commands.AjaxCommand" %>

<%
JSONObject obj = HTTP.toJSONObject(request);
obj.put("operation","select");
obj.put("index",3);
obj.put("tableNumber",100);

AjaxCommand command = new AjaxCommand("username", obj);

receiver.executeCommandSQL(command);
JSONArray jArray = command.getResults();
String keyCodes = "";
String keyValues = "";
if(jArray.length() > 0){
int ctr = 0;
out.println("<option value=\"\"> - </option>");
while(ctr < jArray.length()){
obj = (JSONObject)jArray.getJSONObject(ctr);
keyCodes = obj.optString("KEY_ID");
keyValues = obj.optString("LONG1_TX");
out.println("<option value=\"" + keyCodes.substring(1) + "\">" + keyCodes + " - " + keyValues + "</option>");
ctr++;
}
}
%>

我检查了依赖关系,导入的本地类没有实现任何 CharSequence 实现类。

最后,我知道可以做很多事情来使这段代码“更好”,但我不需要这样做,我只需要找出导致这个 JasperException 的原因并克服它,这样我就可以让应用程序在 IntelliJ 中进行调试。

最佳答案

我已经解决了这个问题,我想以明确的条款发布对我有用的解决方案。看来其他解决方案可能是正确的,但并不明确。有一些解释,但最终的修复在最后。

我正在 JDK1.8.0 bld 102 上进行开发,并将应用程序配置设置为回退到根据 Java 1.6 标准进行构建。我在我的机器上安装了 JRE 1.6、JRE 1.7 和 JRE 1.8。我尝试针对 JRE 1.6 运行我的代码,因为服务器正在运行 Java 6,但这没有帮助。 IntelliJ IDEA 仍然是针对 JDK1.8 来构建使用 JVM 的。我下载了 JDK1.7 并将其与 JDK1.8 安装一起安装,并重新配置 IntelliJ 以使用 JDK1.7 进行构建并在本地运行应用程序。这解决了我的问题。

因此,最终的修复是将我的 Gradle JVM 设置为使用 JDK1.7.0_80 而不是 JDK1.8.0_102 - IntelliJ IDEA Project SDK 仍设置为 1.8。

关于java - 项目在 Eclipse 中运行,但当导入 IntelliJ IDEA 时,我收到 JasperException re : CharSequence,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48115106/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com