2

WebSphere Application Server 8を対象としたJSFプロジェクトがあり、CDIの概念を使用しようとしました。私は/WEB-INF/beans.xml好きです:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee " title="http://java.sun.com/xml/ns/javaee/beans_1_0.xsd">" class="link">http://java.sun.com/xml/ns/javaee/beans_1_0.xsd"> (http://java.sun.com/xml/ns/javaee/beans_1_0.xsd)
</beans>

これが私の管理対象Beanです。

@ConversationScoped
@Named("systemParameter")
public class SystemParameter implements Serializable {

    @EJB
    private ConfigFacade parameterFacade;

Xhtmlページのスニペットは次のとおりです。

<h:commandButton action="#{systemParameter.doSave}"/>

ボタンをクリックしようとすると、次の例外が発生します。

javax.el.PropertyNotFoundException: /systemParameters.xhtml at line 99 and column 99 action="#{systemParameter.doSave}": Target Unreachable, identifier 'systemParameter' resolved to null

もっと何が必要ですか?

4

3 に答える 3

0

実際、よく考えてみると、少なくとも何が問題なのかを見つけるのに役立つかもしれないスニペットを共有できます。

以下を使用します

@PostConstruct
private void test() {
    Bean<?> bean = (Bean) manager.resolve(manager.getBeans("systemParameter"));
        System.out.println(bean);

}

マネージャーが null を出力する場合は、おそらく問題があります。デバッグしてみて、

println にブレークポイントを配置し、マネージャが取得した Bean の数を確認します。Eclipse ホバー マネージャーで Bean をクリックし、基になる配列を確認します。サイズはどれくらいですか? 報告します。

于 2012-10-16T17:44:35.343 に答える
0

使うべきだったと思います

@Inject
private ConfigFacade parameterFacade

@EJBセッション Bean を Web コントローラーに注入するアノテーションの代わりに

于 2013-08-02T11:10:02.803 に答える