1

我试图在我的应用程序中实现一个 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!";
    }
}

面孔配置:

<?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:类 java.lang.ClassNotFoundException:net.ta.java .Backend.MyHalloWelt javax.faces.FacesException:无法实例化类:'net.ta.java.Backend.MyHalloWelt'.. java.lang.ClassNotFoundException:类 java.lang.ClassNotFoundException:net.ta.java.Backend。 MyHalloWelt 无法实例化类:'net.ta.java.Backend.MyHalloWelt'.. java.lang.ClassNotFoundException:类 java.lang.ClassNotFoundException:net.ta.java.Backend.MyHalloWelt java.lang.ClassNotFoundException:类 java .lang.ClassNotFoundException:net.ta.java.Backend.MyHalloWelt 类 java.lang.ClassNotFoundException:net.ta.java.Backend.MyHalloWelt

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

我希望有人能帮助我。我对此感到不知所措...谢谢!

迈克尔

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

4

4 回答 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 Client 中运行良好,这有点令人困惑。只有浏览器会产生错误...

感谢你们为我提供了所需的提示。正如我所料,我学到了更多关于 JAVA 开发的知识。:)

迈克尔

于 2013-06-25T15:11:12.113 回答
1

每当我遇到这个问题时,我都会选择 DDE Project - Clean... 并清理整个项目。这会重新编译您的所有代码、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 试图加载你的类,所以我假设它不是。

希望有帮助-迈克尔

于 2013-06-25T07:57:05.067 回答
0

确保在 Java 透视图/包资源管理器视图中,您的类位于“代码/Java”类别下。再次在 Java 透视图中,右键单击项目,构建路径/配置构建路径...确保在第一个“源”选项卡中列出了您的源文件夹。

于 2013-06-25T07:30:36.767 回答
0

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

于 2018-09-04T13:23:04.477 回答