Веб-приложение JSF1.1 в WebSphere AS 7 IntrospectionException - PullRequest
1 голос
/ 24 января 2012

Получено исключение при переносе веб-приложения с WAS 6.1 на WAS 7. Это приложение разработано с использованием JSF1.1 (MyFaces) + Facelets + Spring (для поддержки компонентов). На некоторых страницах я получаю следующее исключение:

Caused by: javax.faces.FacesException: Could not retrieve value of component with path : {Component-Path : [Class: javax.faces.component.UIViewRoot,ViewId: /pages/recovery_accs.xhtml][Class: javax.faces.component.html.HtmlForm,Id: sequestration][Class: javax.faces.component.html.HtmlDataTable,Id: _id37][Class: javax.faces.component.UIColumn,Id: _id50][Class: javax.faces.component.html.HtmlOutputText,Id: _id52]}

    at org.apache.myfaces.shared_impl.renderkit.RendererUtils.getValue(RendererUtils.java:271)

    at org.apache.myfaces.shared_impl.renderkit.RendererUtils.getStringValue(RendererUtils.java:226)

    at org.apache.myfaces.shared_impl.renderkit.html.HtmlTextRendererBase.renderOutput(HtmlTextRendererBase.java:69)

    at org.apache.myfaces.shared_impl.renderkit.html.HtmlTextRendererBase.encodeEnd(HtmlTextRendererBase.java:57)

    at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:799)

... 46 more

Caused by: javax.faces.el.PropertyNotFoundException: /pages/sub/idocAccsRecoverySub.xhtml @34,55 value="#{varbean.idocAcc.vzOrder}": Bean: com.test.project.bean.idoc.accs.IdocAccBean, property: idocAcc

    at com.sun.facelets.el.LegacyValueBinding.getValue(LegacyValueBinding.java:58)

    at javax.faces.component.UIOutput.getValue(UIOutput.java:118)

    at org.apache.myfaces.shared_impl.renderkit.RendererUtils.getValue(RendererUtils.java:267)

    ... 50 more

Caused by: java.beans.IntrospectionException: Parameter type in setter method does not corresponds to predefined.

    at java.beans.PropertyDescriptor.setWriteMethod(Unknown Source)

    at java.beans.PropertyDescriptor.<init>(Unknown Source)

    at java.beans.StandardBeanInfo.introspectProperties(Unknown Source)

    at java.beans.StandardBeanInfo.<init>(Unknown Source)

    at java.beans.Introspector.getBeanInfoImpl(Unknown Source)

    at java.beans.Introspector.getBeanInfoImpl(Unknown Source)

    at java.beans.Introspector.getBeanInfoImplAndInit(Unknown Source)

    at java.beans.Introspector.getBeanInfo(Unknown Source)

    at org.apache.myfaces.el.PropertyResolverImpl.getPropertyDescriptor(PropertyResolverImpl.java:474)

    at org.apache.myfaces.el.PropertyResolverImpl.getProperty(PropertyResolverImpl.java:438)

    at org.apache.myfaces.el.PropertyResolverImpl.getValue(PropertyResolverImpl.java:85)

    at com.sun.facelets.el.LegacyELContext$LegacyELResolver.getValue(LegacyELContext.java:141)

    at org.apache.el.parser.AstValue.getValue(AstValue.java:123)

    at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)

    at com.sun.facelets.el.TagValueExpression.getValue(TagValueExpression.java:71)

    at com.sun.facelets.el.LegacyValueBinding.getValue(LegacyValueBinding.java:56)

    ... 52 more

Попытка использовать другую версию библиотеки Facelet и различные реализации EL. Даже пытался перекомпилировать проект с использованием IBM JDK. Все еще безуспешно. На Apache Tomcat работает без проблем.

В приведенной выше трассировке стека - IdocAccBean - это обычный Java-бин, расширяющий абстрактный класс IdocAccCore . Если я использую другие компоненты поддержки, которые расширяют этот класс, я получаю то же исключение. Все остальные bean-компоненты, не полученные из IdocAccCore , работают правильно. В классе IdocAccCore нет ничего особенного, и он довольно большой, поэтому я не думаю, что нужно давать полный исходный код.

Есть предложения, что может быть не так с этим IdocAccCore классом?

1 Ответ

2 голосов
/ 27 января 2012

Проблема решена путем обновления версии JRE от IBM. На самом деле я думал, что использую последнюю версию JRE от IBM. Наверняка я скачал один с сайта IBM Пакет разработки IBM для Eclipse . Проблема в том, что этот пакет содержит довольно старую версию IBM Java 1.6. Свежую версию Java от IBM я нашел в пакетах исправлений для Websphere AS. Подробный список исправленных ошибок вы можете найти в IBM java 1.6 здесь

...