加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – Package / Class无法解析为某个类型

发布时间:2020-12-15 02:09:12 所属栏目:Java 来源:网络整理
导读:首先要做的事情:) 我知道标题似乎很容易回答.也许这对你们中的一个人来说,但我完全失去了…… 问题 我在Tomcat6中运行了一个Web应用程序.这个webapp是一个有趣的新站点混合,用MVC和许多遗留的JSP站点实现.后者并没有给出关于OOP,设计模式,可维护性或可重用性
首先要做的事情:)

我知道标题似乎很容易回答.也许这对你们中的一个人来说,但我完全失去了……

问题

我在Tomcat6中运行了一个Web应用程序.这个webapp是一个有趣的新站点混合,用MVC和许多遗留的JSP站点实现.后者并没有给出关于OOP,设计模式,可维护性或可重用性的大概,并且都是过时的重写.也就是说,他们仍在工作,他们仍然在使用.

所以我得到的错误是JSP编译错误:

Unable to compile class for JSP: An error occurred at line: 12 in the generated java file The import de.semaino.damex.utils cannot be resolved An error occurred at line: 22 in the jsp file: /jsp/include/header.jsp EcatBundle cannot be resolved to a type

似乎无法解析整个de.semaino.damex.utils包.有问题的JSP如下所示:

1<%@ page import="java.util.*" %>
    2<%@ page import="java.sql.*" %>
    3<%@ page import="java.io.FileInputStream" %>
    4<%@ page import="de.semaino.damex.*"%>
    5<%@ page import="de.semaino.damex.utils.EcatBundle"%>
    6<%@ page import="de.semaino.damex.system.SystemParameters"%>
    7<%@ page import="de.semaino.damex.system.HelpSystem"%>
    8
    9<%
    10  String langua2 = "0";   
    11  String speech = request.getParameter("speech");
    12  if (speech == null) { speech = "nix"; } 
    13  if ( speech.equals("de") ) { langua2="de"; }
    14  if ( speech.equals("en") ) { langua2="en"; }
    15  if ( speech.equals("nl") ) { langua2="nl"; }
    16  if (! langua2.equals("0")) {
    17      request.getSession().setAttribute("org.apache.struts.action.LOCALE",new        Locale(langua2,""));
    18      PropertyResourceBundle bundle = new PropertyResourceBundle(new FileInputStream(
    19              application.getRealPath("/") + "WEB-INF/classes/ApplicationResources_" + langua2 + ".properties"));
    20      EcatBundle eBundle = new EcatBundle(bundle);
    21  
    22      request.getSession().setAttribute("bundle",eBundle);
    23   }

第12和24行相当于本引文中的5和20.代码没有改变,只是格式化.

我的WEB-INF / classes文件夹如下所示:

WEB-INF/
      classes/
        de/
          semaino/
            damex/
              utils/
                EcatBundle.class

这应该是所需的文件夹结构.

关于它的奇怪之处

我有已经被重写的页面,他们使用完全相同的导入没有任何问题.可以解析包,并使用与上面几乎相同的代码实例化类.只有这次它在一个编译的java类中.

到目前为止我做了什么

既然真正的java类可以使用导入就好了,我认为类本身不是问题.

首先,我从页面中删除了import指令和类,如下所示:

1<%@ page import="java.util.*" %>
    2<%@ page import="java.sql.*" %>
    3<%@ page import="java.io.FileInputStream" %>
    4<%@ page import="de.semaino.damex.*"%>
    5
    6<%@ page import="de.semaino.damex.system.SystemParameters"%>
    7<%@ page import="de.semaino.damex.system.HelpSystem"%>
    ...
    18      PropertyResourceBundle bundle = new PropertyResourceBundle(new        FileInputStream(
    19              application.getRealPath("/") + "WEB-INF/classes/ApplicationResources_" + langua2 + ".properties"));
    20      
    21  
    22      request.getSession().setAttribute("bundle",bundle); 
    ...

在这些更改之后,页面再次呈现正常,这意味着其他导入正在运行.那么utils包的东西呢?

我将类移动到另一个包(在Eclipse中使用Refactor – > move)并更改了JSP中的import指令.重新编译并重新部署整个应用程序后,它工作了…现在抛出错误的页面呈现正确.但对我来说这不是一个令人满意的解决方案,所以我把它移回去了,错误又回来了.

我也尝试重命名整个包(也在Eclipse中使用Refactor – >重命名)并重新部署,但这次没有任何效果.

我尝试了其他一些没有帮助的事情,比如重新安装Tomcat,检查Tomcats Java Path,在另一台机器上部署war文件,在eclipse和Jenkins中构建war文件并将其部署在其他机器上.结果在哪里都一样.

这种行为对我来说没有意义.我从未在这样一个奇怪的星座中看到过那个错误.

这个问题
简单明了:有什么想法吗?

或者我可以回答更多问题来帮助你帮助我?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读