实现托管JAVABean会引发错误:“无法实例化类”

时间:2013-06-25 06:56:35

标签: jsf javabeans xpages

我试图在我的应用程序中实现JavaBean。我是这个主题的新手,因为它没有用,我退了两步,并尝试了一个HelloWorld示例,我在一个月前完成了自己的工作。这次它也不起作用。 我使用8.5.3 Designer客户端,我们有一个8.5.2开发服务器。 我在Application属性中设置了兼容性8.5.2的标志。

JAVABean代码如下所示:

package net.ta.java.Backend;

import java.io.Serializable;

public class MyHalloWelt implements Serializable {
    private static final long serialVersionUID = 1L;
    private String HalloWelt;

    public String getHalloWelt() {
        return HalloWelt;
    }

    public void setHalloWelt(String halloWelt) {
        HalloWelt = halloWelt;
    }

    public MyHalloWelt() {
        HalloWelt = "Hallo neue Welt!";
    }
}

faces-config:

<?xml version="1.0" encoding="UTF-8"?>
<faces-config>
<managed-bean>
    <managed-bean-name>Test</managed-bean-name>
    <managed-bean-class>net.ta.java.Backend.MyHalloWelt</managed-bean-class>
    <managed-bean-scope>session</managed-bean-scope>
</managed-bean>
  <!--AUTOGEN-START-BUILDER: Automatically generated by IBM Lotus Domino Designer. Do not modify.-->
  <!--AUTOGEN-END-BUILDER: End of automatically generated section-->
</faces-config>

XPage函数 - 调用:

 <xp:text escape="true" id="computedField1" value="#{Test.HalloWelt}"></xp:text>

例外:

  

异常javax.faces.FacesException:javax.faces.FacesException:无法实例化类:'net.ta.java.Backend.MyHalloWelt'..   java.lang.ClassNotFoundException:class   java.lang.ClassNotFoundException:net.ta.java.Backend.MyHalloWelt   javax.faces.FacesException:无法实例化类:   'net.ta.java.Backend.MyHalloWelt'.. java.lang.ClassNotFoundException:   class java.lang.ClassNotFoundException:   net.ta.java.Backend.MyHalloWelt无法实例化类:   'net.ta.java.Backend.MyHalloWelt'.. java.lang.ClassNotFoundException:   class java.lang.ClassNotFoundException:   net.ta.java.Backend.MyHalloWelt java.lang.ClassNotFoundException:   class java.lang.ClassNotFoundException:   net.ta.java.Backend.MyHalloWelt类   java.lang.ClassNotFoundException:net.ta.java.Backend.MyHalloWelt

我在这个论坛中提示,这可能是8.5.3中新增的JAVA类设计元素的错误。就像他们在帖子中说的那样,我试图将我的类手动放在src \ path中,但它没有用 - 同样的错误。 我认为这是与我们的8.5.2服务器的兼容性问题,但本地相同的错误。

我希望有人可以帮助我。我对此感到茫然......谢谢!

迈克尔

编辑: 非常感谢所有人到目前为止帮助我解决这个问题。 现在,如果我使用Notes CLient打开XPage,它就可以工作了。如果数据库在服务器上或本地是无关紧要的。如果我用浏览器打开它,它就不起作用了。如果我这样做,错误仍然存​​在。

4 个答案:

答案 0 :(得分:2)

我的问题包括多于一部分:
我的Bean-Attribute“HalloWelt”=&gt;的拼写错了。 “halloWelt”
2.我的服务器没有安装德语语言包,这导致了有关资源文件的误导性错误消息 3.主要问题最终是Domino Server 8.5.2无法识别Notes / Domino 8.5.3中新增的“Class / JAVA”文件夹!如果我将JAVABean移动到新创建的“src”文件夹,JAVABean将被识别,一切正常。 - 有点令人困惑的是,在移动java文件之前,XPage在Notes客户端中运行良好。只有浏览器会产生错误...

感谢大家为我提供了所需的提示。我已经按照我的预期学到了很多关于JAVA开发的知识。 :)

迈克尔

答案 1 :(得分:1)

每当我遇到这个问题时,我选择DDE项目 - 清理......并清理整个项目。这会重新编译您的所有代码,Xpages等......

除此之外,我总是为我的托管bean分配一个ID,如:

<managed-bean id="Test">
<managed-bean-name>Test</managed-bean-name>
<managed-bean-class>net.ta.java.Backend.MyHalloWelt</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>

我不确定是否需要。据我所知,bean试图加载你的类,所以我假设,它不是。

希望有所帮助 - 迈克尔

答案 2 :(得分:0)

确保在Java perspective / Package explorer视图中,您的类位于“Code / Java”类别下。再次在Java透视图中,右键单击项目,构建路径/配置构建路径...确保在第一个“源”选项卡中列出源文件夹。

答案 3 :(得分:0)

声明全局变量时不要初始化它们,而必须在构造函数中进行初始化,在异常页面中,根本原因将显示,包括代码行号。