我正在开发一个带有eclipse,maven和spring的j2ee项目。一切都很顺利,除了我无法解决的奇怪和恼人的行为......
让我们从stacktrace开始:
TypeFichier fileType = TypeFichier.valueOf(fileTypeString);
switch(fileType)
在google上进行一些搜索后发现它可能与类路径问题有关,所以有我的构建路径(无法发布图片......):
在源文件夹构建路径中: intranetLTTD / SRC /主/ JAVA 包括:全部 排除在外:无
和我的项目树视图:
Java Ressources - src / main / java -com.lttd.controller -FichiersController
所以它似乎不是类路径问题。
我还在google上发现" $ 1.class"意味着它是一个匿名的课程...为什么不呢,但我不能自己做,(我甚至不知道如何为控制器制作它)。
当我在我的FichiersController中进行任何更改(如声明变量)时,以及当我在我的FichiersController之后创建的控制器中进行任何更改时,会发生此错误,但不是我之前创建的控制器。
我找到了仍然可以运行项目的解决方法(这是一个奇怪的解决方法):在进行更改后,我必须更改我的FichiersController方法之一:
switch(TypeFichier.valueOf(fileTypeString))
到:
switch(TypeFichier.valueOf(fileTypeString))
或反向
switch(fileType)
到
<context:component-scan base-package="com.lttd" />
在我的调度程序-servlet.xml中,我有:
'*'
我希望我已经提供了所有你需要的东西来帮我找出发生的事情,以及如何解决它。不要犹豫,要求进一步的信息。
感谢您的帮助。
答案 0 :(得分:1)
也许你已经解决了但我只是遇到了奇怪的$1.class
同样的问题,对我来说这是Eclipse发布的一个问题所以我只是用maven构建我的web项目并将文件手动放入我的tomcat文件夹
答案 1 :(得分:0)
<context:component-scan base-package="com.lttd" />
存在于dispatcher-servlet.xml中,但也出现在我的spring-security.xml中(由于我在项目开始时学习了j2ee spring)。这就是它创造FichierController $ 1的原因。但我不知道为什么它只发生在这个班级。
在spring-security.xml中删除<context:component-scan base-package="com.lttd" />
后,我不再遇到问题了。
编辑: 最后这没有修复错误,错误在3天后再次出现......
这是FichiersController的方法,我必须编辑临时解决方法:
@Transactional
@RequestMapping(value = "/admin/fileEditAjax*", method = RequestMethod.GET)
public @ResponseBody FichierFormObject fileEditAjax(@RequestParam (value="fileName", required = true) String fileName,
@RequestParam( value="fileType", required = true)String fileTypeString){
FichierFormObject fileFormObject = new FichierFormObject();
TypeFichier fileType = TypeFichier.valueOf(fileTypeString);
//If the error is triggered, i have to change this 'switch(fileType)' to TypeFichier.valueOf(fileTypeString) or reverse
switch(fileType){
case FICHE_CONNEXION:
case DOCUMENT_CLIENT:
//some processing
break;
case PROCEDURE:
//some processing
break;
case MODULEM3:
//some processing
break;
case PRODUIT_CONNEXE:
//some processing
break;
default:
break;
}
return fileFormObject;
}
但我不确定问题是否来自我的代码...
希望此编辑是添加这些信息的正确位置。