当前位置: 首页 > 面试题库 >

重命名类后,Netbeans部署失败

拓拔富
2023-03-14
问题内容

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

一切正常,直到我注意到我的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

我在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)

因此,这只是上述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。我如何摆脱这个幽灵?


问题答案:

我能够复制此问题的变体。我必须清除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来跟踪问题。请监视该问题,并添加您认为会对尝试解决该问题的人有所帮助的任何信息。



 类似资料:
  • PS:这是一个由另一个开发人员开始的项目,我一直在工作中没有问题,在过去的6个坐骑。我现在认为问题可能来自netbeans或glassfish中的配置错误,因为我在以前的代码版本中都遇到了同样的错误。

  • 我可以在Wildfly快速入门中提供的Eclipse中运行这些教程中的大部分: https://github.com/wildfly/quickstart/

  • 我正在使用NetBeans 8.0和Apache Tomcat 7.0.56构建一个web应用程序。 下面是服务器日志(如果可能有用的话):

  • 当战争部署失败时,我想阻止Tomcat。是否有一些钩子或监听器可以用于此? 我知道,通常情况下,当部署失败时不会让容器停止。在我的例子中,我想使用Tomcat实现一个快速失败的错误模型,因为目前没有机会用带有嵌入式Servlet引擎(例如,Spring-Boot)的胖jar替换WAR。

  • 嗨,我想知道是否有人能帮我。我有两个。xsd架构文件顺序服务顺序。xsd和order。xsd,每个xsd都将元素类型命名为“order”。 当我开始为这些模式文件创建Java源代码时,我显然在Order类上遇到了类名冲突。 我创建了一个jaxb bindings. xjb文件来重命名从orderservice-order.xsd.生成的订单类名 然而,我仍然得到以下错误 中的XPATH似乎没有问题

  • 我在这里找到了一些关于这个主题的线索,但没有一个建议对我有效。 经过几天疯狂的谷歌搜索和测试,我被难倒了。如有任何帮助,不胜感激,谢谢。