Два экземпляра управляемого компонента - PullRequest
1 голос
/ 22 августа 2011

Когда я получаю доступ к своей странице в первый раз, управляемый компонент, используемый страницей, создается два раза (я передаю два раза в конструкторе с одной и той же трассировкой стека):

Daemon Thread [http-127.0.0.1-8080-1] (Suspended (breakpoint at line 76 in MyController))   
    MyController.<init>() line: 76  
    NativeConstructorAccessorImpl.newInstance0(Constructor, Object[]) line: not available [native method]   
    NativeConstructorAccessorImpl.newInstance(Object[]) line: 39    
    DelegatingConstructorAccessorImpl.newInstance(Object[]) line: 27    
    Constructor<T>.newInstance(Object...) line: 513 
    Class<T>.newInstance0() line: 355   
    Class<T>.newInstance() line: 308    
    ManagedBeanBuilder(BeanBuilder).newBeanInstance() line: 186 
    ...
    pass throught two Filters (one of the filter uses Waffle and the other calls a web service...)  
    ...     
    Http11Protocol$Http11ConnectionHandler.process(Socket) line: 601    
    JIoEndpoint$Worker.run() line: 447  
    Thread.run() line: 662  

В файле xhtml:

<a4j:keepAlive beanName="myController"></a4j:keepAlive>
<h:form>
...
</h:form>

В файлеface-config.xml:

<managed-bean>
        <managed-bean-name>myController</managed-bean-name>
        <managed-bean-class>com.xx.MyController</managed-bean-class>
        <managed-bean-scope>request</managed-bean-scope>
</managed-bean>

Почему управляемый компонент создается дважды?

Спасибо за вашидеи ...

Использование

  • jsf 1.2
  • richfaces 3.3.2.SR1

Редактировать: Благодаря Джори Хендриккс,Я узнал, что у меня есть два разных запроса.Итак, новый вопрос: «Почему у меня два запроса при доступе к моей странице?»

1 Ответ

3 голосов
/ 22 августа 2011

Если вы получаете два экземпляра bean-объекта в области запросов, это должно означать, что у вас есть два запроса.

Проверьте, отправляет ли ваш браузер два запроса (используйте firebug или fiddler). Если он отправляет только один, это означает, что ваш запрос дублируется где-то в стеке (например, в фильтре или, возможно, даже в специальном сервлете).

...