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

问题描述 投票:1回答:4

我试图在我的应用程序中实现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,它就可以工作了。如果数据库在服务器上或本地是无关紧要的。如果我用浏览器打开它,它就不起作用了。如果我这样做,错误仍然存​​在。

jsf javabeans xpages
4个回答
2
投票

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

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

迈克尔


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试图加载你的类,所以我假设,它不是。

希望有所帮助 - 迈克尔


0
投票

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


0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.