类重命名后,Netbeans部署失败

Mat*_*ndy 7 java netbeans glassfish jsf-2 glassfish-3

我正在为webservice编写测试客户端.它是使用JSF框架的Netbeans 6.9.1 WebApplication.我有一个托管bean调用webservice.

一切正常,直到我注意到我的bean类名称中的拼写错误.它是serviceBean,我将它重命名为ServiceBean,首字母为大写.我使用了Netbeans的安全重命名功能,文件名和类签名都按预期更改.

但从那时起,我在Glassfish 3.0.1上运行我的应用程序时遇到了很多麻烦.

我可以毫无错误地从Netbeans构建我的应用程序(甚至"清理和构建").但是如果我部署,服务器日志中会出现以下消息:

WARNUNG: Error in annotation processing: java.lang.NoClassDefFoundError: jsf/serviceBean (wrong name: jsf/ServiceBean)
WARNUNG: WEB9052: Unable to load class jsf.ServiceBean, reason: java.lang.ClassNotFoundException: jsf.ServiceBean
INFO: Mojarra 2.0.2 (FCS b10) für Kontext '/PidClient' wird initialisiert.
SCHWERWIEGEND: Unable to load annotated class: jsf.serviceBean, reason: java.lang.NoClassDefFoundError: jsf/serviceBean (wrong name: jsf/ServiceBean)
INFO: Loading application PidClient at /PidClient
Run Code Online (Sandbox Code Playgroud)

我在facelet页面上有一个表单,将提交给我的托管bean.尽管出现上述错误,表单仍会被加载但如果我尝试提交它,我会收到以下错误:

WARNUNG: /index.xhtml @19,94 value="#{serviceBean.fldLname}": Target Unreachable, identifier 'serviceBean' resolved to null
javax.el.PropertyNotFoundException: /index.xhtml @19,94 value="#{serviceBean.fldLname}": Target Unreachable, identifier 'serviceBean' resolved to null
        at com.sun.faces.facelets.el.TagValueExpression.getType(TagValueExpression.java:93)
        at com.sun.faces.renderkit.html_basic.HtmlBasicInputRenderer.getConvertedValue(HtmlBasicInputRenderer.java:95)
        at javax.faces.component.UIInput.getConvertedValue(UIInput.java:1008)
Run Code Online (Sandbox Code Playgroud)

所以这只是由上面的NoClassDefFoundError引起的后续错误.

现在到了奇怪的部分:如果我构建我的项目它创建文件ServiceBean.class但是如果我从Netbeans部署项目然后查看我的部署目录,该类将重命名为serviceBean.class.

部署过程似乎重命名该文件.

问题是什么?(Netbeans 6.9.1,Glassfish 3.0.1,Windows 7)

更新:它变得更好:将ServiceBean.java重命名为ServiceBean2.java.结果:如果我"清理并构建"war文件仅包含ServiceBean2.class.如果我从NB部署,则构建目录包含ServiceBean2.class serviceBean.class.我怎么摆脱这个幽灵?

vkr*_*mer 14

我能够复制这个问题的一个变种.我不得不清除NetBeans编译缓存(这似乎在操作系统上存在问题,这些问题是宽容的......)

为了解决我遇到的问题,我不得不:

  1. 停止服务器

  2. 清理项目

  3. 停止NetBeans

  4. 删除%HOME%.netbeans\6.9\var\cache

  5. 启动NetBeans

当我运行有问题的项目时,NetBeans重新编译项目,启动服务器并打开index.xhtml.之后我能够成功浏览应用程序.

我已经打开了http://netbeans.org/bugzilla/show_bug.cgi?id=198565来跟踪这个问题.请监控该问题并添加您认为可以帮助尝试解决问题的人的任何信息.