gpt4 book ai didi

Javabean 错误捕获/处理

转载 作者:行者123 更新时间:2023-11-30 08:59:52 25 4
gpt4 key购买 nike

我刚刚学习 Java,对从 XPage 到 JavaBean 的调用有疑问。

我正在处理从 Declan Sciolla-Lynch's blog 获得的 JavaBean在大多数情况下都能完美运行。该链接指向示例代码。

本质上,JavaBean 连接到 names.nsf 并提取各种字段以供查找。 IE 用户的电话或电子邮件地址。类似于我们过去实现的现有 LotusScript 类。我们有一个辅助目录,其中包含我采用 Declan 的示例并修改它的附加信息。它现在指向不同的服务器 nsf 并具有其他字段。它在正常条件下工作。

但是,我遇到了两个导致类失败并显示无用的“无法实例化类”错误的问题。这些问题与 ACL 和数据库复制公式有关,将会得到解决,但我想尽量减少环境引起的问题。问题是我不能在 EL 或 SSJS 中捕获它,因为它发生在 JavaBean/类级别。 Java代码周围有一个try{} catch {},但仍然出现“Can't Instantiate Class”错误。我试图通过对 JavaBean 的 SSJS 调用在 XPage 上加载三个字段的默认值。

有没有办法捕获 JavaBean 中的错误并将其传递给 XPage,以便我可以在调用托管 bean 之前测试加载的类?

最佳答案

当您的 Java 类构造函数抛出错误时,会出现“无法实例化类”错误。

向您的 Java bean 构造函数添加一个 try/catch block ,并在 catch block 中将错误消息传递给您的 XPage:

首先将错误消息控件“messages1”添加到您的 XPage

<xp:messages id="messages1"></xp:messages>

然后用Java bean把你的错误信息写到这个控件上

import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;

public class MyClass implements Serializable {

public MyClass() {
try {
...
} catch (Exception e) {
FacesContext.getCurrentInstance().addMessage( "messages1",
new FacesMessage(FacesMessage.SEVERITY_ERROR, e.getMessage(), ""));
}

关于Javabean 错误捕获/处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27046581/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com