我将一个java项目(war文件)导入到eclipse中。当我试图运行它时,我得到以下错误:
java.lang.Error: Unresolved compilation problems:
The type List is not generic; it cannot be parameterized with arguments <User>
Syntax error, parameterized types are only available if source level is 5.0
我试着去谷歌吧。我发现我必须更改合规性设置。我将编译器合规性级别更改为5,但它没有解决问题。有人可以帮我解决这个问题吗?提前谢谢。
答案 0 :(得分:2)
您可能需要照顾两件事。
我想你应该照顾(1)。你可能错过的是第二个。当您尝试运行该war文件时,请转到“运行方式” - &gt; “运行配置”。在那里你可以选择Java版本。我认为这是你遇到问题的地方。尝试将其设置为Java 1.5或更高版本。
答案 1 :(得分:1)
检查servlet容器的java版本。您可以通过键入
来检查shell中的Java版本java -version
如果不是1.5+指向更高版本的相关JDK ..
答案 2 :(得分:0)
那场战争正在某处使用'仿制药'。和泛型只适用于java 5及以上版本,错误就是
请检查您的java编译器级别
答案 3 :(得分:0)
解决此问题的第一步是完全忽略提示“-source 1.5 to enable generics”。那条消息将带你无处可去!原因是它来自javac编译器,而您需要配置jasper JSP编译器。幸运的是,这很容易,虽然在Tomcat网站上找到它是非常令人费解的。您需要做的就是编辑TOMCAT_INSTALL \ conf \ web.xml。将以下行添加到org.apache.jasper.servlet.JspServlet
<init-param>
<param-name>compilerSourceVM</param-name>
<param-value>1.5</param-value>
</init-param>
<init-param>
<param-name>compilerTargetVM</param-name>
<param-value>1.5</param-value>
</init-param>
使servlet看起来像下面的
[web.xml中]
<servlet>
<servlet-name>jsp</servlet-name>
<servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
<init-param>
<param-name>fork</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>xpoweredBy</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>compilerSourceVM</param-name>
<param-value>1.5</param-value>
</init-param>
<init-param>
<param-name>compilerTargetVM</param-name>
<param-value>1.5</param-value>
</init-param>
<load-on-startup>3</load-on-startup>
</servlet>
您现在已经配置了Tomcat JSP服务器...... 配置Eclipse Eclipse的EE版本有一个很好的功能,使您能够创建一个动态Web项目 - 本质上是一个爆炸的war文件,并为您管理服务器实例并设置调试。一旦你知道它是如何工作的便利。基本上标准设置的作用是将Tomcat配置文件从安装目录复制到类似于c:\ workspace.metadata.plugins \ org.eclipse.wst.server.core \ tmp0 \ conf \的一些模糊路径上。要意识到的是它会经常复制已安装的Tomcat目录中的文件,因此按照上面的说明在此目录中编辑web.xml只能在短时间内工作。
在设置第一台服务器时,您也可以尝试编辑Eclipse项目Eclipse安装下的web.xml。我很难让Eclipse在这个文件中获取更改。
相反,只需删除您的服务器实例并重新创建它。您的更改现在已经被接收,您已准备就绪!