0

我有一个非常奇怪的问题,经典作品在本地主机上而不是在服务器上。

我试图找到一个更大的问题并发现这段代码:

 <div class="pageHeader"><h1>Products2   #{products.debug}  </h1></div>

什么时候 :

@ManagedBean(name="products")
@SessionScoped
public class ProductsBean {
private String debug = "Debug : ";

public ProductsBean() {
    debug = "Debug : ";
}
public String getDebug() {
    return debug;
}

public void setDebug(String debug) {
    this.debug = debug;
}

并且debug字符串有getter/setter,

在本地主机上完美运行,但在远程主机上却不行。在远程服务器中,它根本不回显字符串,也没有抛出异常,我不知道如何开始寻找问题。问题是这个问题以其他方式重复出现,例如这个页面有一个显示为空的数据表,尽管它不在本地主机中。当我尝试在一个完全不同的页面中上传文件时,我得到了异常Target Unreachable, identifier resolved to null,在这种情况下这不是问题,但我猜它似乎以某种方式相关

有什么帮助吗?我正在使用 Oracle GlassFish 的 Oracle Linux Server 上运行

4

2 回答 2

0

问题就在这里。

Target Unreachable, identifier 'loadSimCards' resolved to null

我相信#loadSimCards在处理过程中解决为空。该对象未在您的 bean 中创建/预填充。

检查代码并验证它是否确实被填充。如果您仍然遇到问题,您可以发布您的 Java 代码。

还要检查 beans.xml 文件和 faces-config.xml 中的声明

参考 - JEE CDI 提示:目标不可达,标识符解析为空

于 2013-05-21T07:19:46.673 回答
-1

我的第一步是在浏览器中右键单击 -> 查看源代码,然后让我们知道它显示的内容。在视图源中,如果字符串“#{products.debug}”没有被打印出来,这意味着服务器确实在评估 EL 表达式,但在呈现时它是一个空字符串。

  • 您能否提供实际的获取器/设置器。
  • 您能否将记录器/SOP 放入其中,并让我们知道它们是否被调用以及以什么顺序调用。
  • 将纯 EL 表达式替换为像 h:inputText 这样的数据绑定控件,看看会发生什么。

    < h:inputText value="#{products.debug}" />

  • 可能不相关,但是您是否在页面的 head 部分中声明了 < base /> 标记?基本标记 href 提供加载子资源的位置。我过去在转移服务器时看到了一些异常行为,当从远程加载主页面而从开发人员框上的本地主机本身加载子资源时,因为忘记更改基本标记引用。

于 2013-05-21T06:41:13.923 回答