Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / JSF проблема с javax.inject.Named / 4 сообщений из 4, страница 1 из 1
08.04.2013, 15:47:42
    #38217430
mvn3
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JSF проблема с javax.inject.Named
Добрый день.

Раньше с JSF не работал, сейчас знакомлюсь, и не могу понять в чем траблы.
Создал 2 страницы: 1-я login/pass, 2-я: Hello #{user.login}.

По дока написано, если разворачивается на AppServer EE6 тогда бин должен быть аннатирован как @Named, если Томкат - @ManagedBean.
Пытаюсь развернуть на JBoss AS 7.1, и получается что при использовании аннотоации @ManagedBean(name = "user") - все работает ОК,
а при @Named(value = "user") - ругается,
javax.el.PropertyNotFoundException: /index.xhtml @19,56 value="#{user.name}": Target Unreachable, identifier 'user' resolved to null
at com.sun.faces.facelets.el.TagValueExpression.getType(TagValueExpression.java:100)
at com.sun.faces.renderkit.html_basic.HtmlBasicInputRenderer.getConvertedValue(HtmlBasicInputRenderer.java:95)
at javax.faces.component.UIInput.getConvertedValue(UIInput.java:1030)
at javax.faces.component.UIInput.validate(UIInput.java:960)
at javax.faces.component.UIInput.executeValidate(UIInput.java:1233)
at javax.faces.component.UIInput.processValidators(UIInput.java:698)
at javax.faces.component.UIForm.processValidators(UIForm.java:253)
at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1214)
at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1214)
at javax.faces.component.UIViewRoot.processValidators(UIViewRoot.java:1172)
at com.sun.faces.lifecycle.ProcessValidationsPhase.execute(ProcessValidationsPhase.java:76)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:593)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:329)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161)
at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:153)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:155)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:368)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:671)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:930)
at java.lang.Thread.run(Thread.java:722)


Вот простенький бин
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
import javax.enterprise.context.SessionScoped;
import javax.faces.bean.ManagedBean;
import javax.inject.Named;
import java.io.Serializable;


@Named(value = "user") -- тут ошибка
//@ManagedBean(name = "user") --- тут все ок
@SessionScoped
public class User implements Serializable {
    private String name;
    private String password;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }
}




Ну и "сложнейшая" JSF страница

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
<h:body>
    <h:form>
        <h3>Please login</h3>
        <table>
            <tr>
                <td>Login:</td>
                <td><h:inputText value="#{user.name}"/> </td>
            </tr>
            <tr>
                <td>Password:</td>
                <td><h:inputSecret value="#{user.password}"/> </td>
            </tr>
        </table>
        <h:commandButton value="Login" action="welcome"/>
    </h:form>
</h:body>



В чем проблема:
...
Рейтинг: 0 / 0
08.04.2013, 16:09:57
    #38217488
bourne
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JSF проблема с javax.inject.Named
mvn3,

beans.xml в META-INF отсутствует
...
Рейтинг: 0 / 0
08.04.2013, 16:11:37
    #38217498
ivanra
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JSF проблема с javax.inject.Named
mvn3,
не 100% уверен, но для использования @Named необходимо создать beans.xml.
Если это делается в Eclipse, то открываем свойства проекта -> Project Facets -> CDI (а в дополнительных действиях указываем генерацию beans.xml)
...
Рейтинг: 0 / 0
08.04.2013, 17:12:54
    #38217636
mvn3
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JSF проблема с javax.inject.Named
да все верно, не хватало beans.xml

спасибо
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / JSF проблема с javax.inject.Named / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]