jsp java import_jsp-Java错误:只能导入类型。 XYZ解析为包

jsp-Java错误:只能导入类型。 XYZ解析为包

我收到错误消息:“只能导入类型。XYZ解析为包。”

有人在这里解释了原因,但是我不确定应该如何解决。 仅供参考:我正在使用Eclipse。 我在下面添加了执行导入的代码。 java.util。*导入工作正常。

CategoryDao catDao = new CategoryDao();

ArrayList catList = catDao.selectCategory();

//

%>

编辑:实际错误如下:

org.apache.jasper.JasperException: Unable to compile class for JSP:

An error occurred at line: 7 in the generated java file

Only a type can be imported. org.eresearch.knowledgeportal.model.Category resolves to a package

22个解决方案

61 votes

好吧,您实际上并未在Web应用程序上提供足够的详细信息,但我猜您是拥有这样的JSP:

并且x.y.Z.class在类路径上找不到(即在WEB-INF/lib下也不存在在WEB-INF/lib的JAR中)。

仔细检查您在Tomcat上部署的WAR具有以下结构:

my-webapp

|-- META-INF

| `-- MANIFEST.MF

|-- WEB-INF

| |-- classes

| | |-- x

| | | `-- y

| | | `-- Z.class

| | `-- another

| | `-- packagename

| | `-- AnotherClass.class

| |-- lib

| | |-- ajar.jar

| | |-- bjar.jar

| | `-- zjar.jar

| `-- web.xml

|-- a.jsp

|-- b.jsp

`-- index.jsp

或WEB-INF/lib下存在捆绑x.y.Z.class的JAR。

Pascal Thivent answered 2019-09-28T04:32:41Z

33 votes

好,我解决了。 在上一次导入中,我添加了“;” 通过复制其他代码示例。 我想这是必需的标准行结尾。

所以

成为

Ankur answered 2019-09-28T04:33:16Z

7 votes

如果您拼写了错误的类名或该类不在类路径中,则JSP处理器将说它“解析为包”而不是不存在。 今天,这让我发疯了,因为我一直没看错错字。

gmcgath answered 2019-09-28T04:33:41Z

3 votes

没有更多细节,这听起来像是类的导入声明中的错误。 检查所有导入声明是从包中导入所有类还是单个类:

import all.classes.from.package.*;

import only.one.type.named.MyClass;

编辑

OK,编辑后,看起来像是一个jsp问题。

编辑2

这是另一个论坛条目,该问题似乎有相似之处,并且受害者通过重新安装Eclipse解决了该问题。 我会首先尝试-仅使用最必要的插件,新工作区,导入到该干净工作区的项目安装第二个eclipse实例,并希望获得最好的...

Andreas_D answered 2019-09-28T04:34:25Z

3 votes

我在Netbeans中收到此错误。 像大多数类似的异常错误一样,我会通过转到项目属性,更改源代码/二进制格式(无关紧要,只是有所不同)并进行清理和构建来解决它。

Gullbyrd answered 2019-09-28T04:34:50Z

2 votes

我通过将罐子添加到tomcat lib目录中来解决它。

Pratik Gaurav answered 2019-09-28T04:35:14Z

1 votes

在更改类名的字母大小写之后,我也遇到了这个奇怪的错误。 该文件未按预期复制到tomcat服务器,我不得不手动将其删除并重新部署。 也许是因为我使用不区分大小写的操作系统?

jediz answered 2019-09-28T04:35:39Z

1 votes

我知道现在回复这个帖子还为时已晚,但是由于我看不到任何明确的答案,所以我还是会这样做。

您可能想在日食中查看META-INF中的Class-Path: WEB-INF/classes。

那么您可能需要添加类文件的路径。

Class-Path: WEB-INF/classes

optimystery answered 2019-09-28T04:36:26Z

1 votes

单独生成.class文件,并将其粘贴到相关程序包中的工作区中。刷新项目。

Karan Rajput answered 2019-09-28T04:36:53Z

1 votes

对我来说,这是错误的部署。 部署正确,一切正常(请查看我的问题以获取详细信息)。

parsecer answered 2019-09-28T04:37:20Z

0 votes

您必须从包中导入一些东西,例如类,枚举或接口,如下所示:

import some.package.SomeClass;

或者,从包中导入所有内容(不推荐)

import some.package.*;

编辑:也许我没有读足够近。 您要从中导入的软件包在文件系统上的哪里? 是在WEB-INF / lib下吗?

answered 2019-09-28T04:37:59Z

0 votes

还有更多细节吗? (这是在JSP中还是在链接的网页中?)

如果是这样,您始终可以只使用完全限定的类名。

而不是:

import foo.bar.*;

Baz myBaz;

您可以使用

foo.bar.Baz myBaz;

William Billingsley answered 2019-09-28T04:38:43Z

0 votes

我有一个类似的问题。 在Eclipse中,我将我的项目与运行良好的示例项目(由Maven原型生成)进行了比较。 我发现我的项目在/.classpath文件中错过了2行。 我复制了这两行,并解决了该问题。 似乎即使我在项目首选项中设置了构建路径,由于某些原因,Eclipse也没有进行相应的更新。

...

Tharaka Manawardhana answered 2019-09-28T04:39:14Z

0 votes

我的贡献:之所以出现此错误,是因为我创建了一个名为3lp的软件包。但是,根据Java规范,您不能以数字开头来命名软件包。我将其更改为_3lp,现在可以使用了。

Cocu_1012 answered 2019-09-28T04:39:41Z

0 votes

我敢打赌,您有一个名为org.ivec.eresearch.knowledgeportal.model.category的程序包(小型c),并且在不区分大小写的文件系统(如Windows或Mac)上运行。 似乎当类和包存在时,编译器会感到困惑。

您可以重命名类“ Category”或包“ category”,此错误将消失。 不幸的是,我不确定这是Tomcat还是ECJ错误。

Nic Cottrell answered 2019-09-28T04:40:16Z

0 votes

如果您正在使用Maven并将Java类打包为JAR,请确保JAR是最新的。 当然仍然假定JAR在您的类路径中。

H.Rabiee answered 2019-09-28T04:40:42Z

0 votes

我通过将包含导入类的jar文件添加到WEB-INF/Lib中来解决它。

Abdellah Benrebea answered 2019-09-28T04:41:08Z

0 votes

您是否要像我一样导入覆盖的类?

如果是这样,则您覆盖的类位于错误的包中,或者根本不存在。

创建类或将类移动到正确的位置(src / [package.package]。[class])可以解决您的问题。

Graham P Heath answered 2019-09-28T04:41:49Z

0 votes

当混合(在同一jsp页面中)静态jsp导入时,通常会发生这种情况:

使用动态jsp导入:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值