类重命名后 Netbeans 部署失败 [英] Netbeans deployment fails after class rename

查看:14
本文介绍了类重命名后 Netbeans 部署失败的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I am writing a test client for a webservice. It's a Netbeans 6.9.1 WebApplication using JSF framework. I have one managed bean that calls the webservice.

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

Everything worked fine until I noticed a typo in my bean class name. It was serviceBean and I renamed it to ServiceBean with first letter upper case. I used safe rename function of Netbeans and both the filename and class signature changed as expected.

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

But from then I had a lot of trouble running my application on Glassfish 3.0.1.

我可以从 Netbeans 构建我的应用程序而不会出错(甚至是Clean & Build").但是如果我部署,服务器日志中会出现以下消息:

I can build my application from Netbeans without error (even "Clean & Build"). But if I deploy there is the following message in server log:

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

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

I have a form on a facelet page that will be submitted to my managed bean. The form will be loaded despite of the above error but if I try to submit it I get the following error:

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)

所以这只会是上面 NoClassDefFoundError 导致的后续错误.

So this will only be a follow-up error caused by the NoClassDefFoundError above.

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

And now to the strange part: If I build my project it creates the file ServiceBean.class but if I deploy the project from Netbeans and then look into my deployment directory the class is renamed to serviceBean.class.

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

It seems that deployment process renames the file.

有什么问题?(Netbeans 6.9.1、Glassfish 3.0.1、Windows 7)

What is the problem? (Netbeans 6.9.1, Glassfish 3.0.1, Windows 7)

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

UPDATE: It gets even better: Renamed ServiceBean.java to ServiceBean2.java. Result: If I "Clean & Build" the war file contains ServiceBean2.class only. If I deploy from NB the build dir contains ServiceBean2.class and serviceBean.class. How do I get rid of this ghost?

推荐答案

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

I was able to replicate a variation of this problem. I had to clear the NetBeans compilation cache (which appears to have issues on OSes that are case-forgiving...)

为了解决我遇到的问题,我必须:

To move past the issue that I encountered, I had to:

  1. 停止服务器

  1. Stop the server

清理项目

停止 NetBeans

Stop NetBeans

删除 %HOME%.netbeans6.9varcache

Delete %HOME%.netbeans6.9varcache

启动 NetBeans

Start NetBeans

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

When I ran the project which was having problems, NetBeans recompiled the project, started the server and opened the index.xhtml. I was able to navigate through the app successfully after that.

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

I have opened http://netbeans.org/bugzilla/show_bug.cgi?id=198565 to track the issue. Please monitor that issue and add any info that you think would assist somebody that attempts to resolve the issue.

这篇关于类重命名后 Netbeans 部署失败的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆