首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >原始面+ MyFaces + CDI (OpenWebBeans) +为8.5

原始面+ MyFaces + CDI (OpenWebBeans) +为8.5
EN

Stack Overflow用户
提问于 2014-02-26 08:50:40
回答 1查看 1.4K关注 0票数 3

日安,

现在,我正在尝试将我当前工作的应用程序(Primefaces+EJB+JPA + Glassfish 4.0)迁移到WAS8.5。我试着用mojarra来让Primefaces发挥作用。我以为我已经成功了,但后来在SystemOut.log的一个事件报告中偶然发现了这个例外:

SourceId:com.ibm.ws.webbeans.services.JCDIWebListener.contextInitialized() ProbeId:104 Reporter:com.ibm.ws.webbeans.services.JCDIWebListener@fa0f39fa java.lang.IllegalStateException:不支持的Exception:java.lang.IllegalStateException实现

此外,当我试图按一个调用#{navigationBean.login}的按钮时,我得到了这个异常:

代码语言:javascript
复制
javax.el.PropertyNotFoundException: /login.xhtml @45,111 action="#{navigationBean.login}": Target Unreachable, identifier 'navigationBean' resolved to null

进一步的研究表明(如果我错了的话纠正我),WAS (Apache OpenWebBeans)的CDI实现工作最好(或者只起作用?)使用MyFaces JSF实现。所以我怀疑这是因为我使用了Mojarra而不是MyFaces。因此,我继续尝试替换OpenWebBeans,结果发现我无法将它更改为Weld CDI实现( Glassfish使用的就是这种实现)。

对于如何解决这个问题,有什么建议吗?我真的希望能够在websphere中使用primefaces。

更新:更新:我能够使我的第一个页面(使用primeface+MyFaces登录页面)出现。但是,当我单击指向@命名类NavigationBean的EL表达式(#{NavigationBean})的第一个元素时,仍然会得到

代码语言:javascript
复制
javax.el.PropertyNotFoundException: /login.xhtml @45,111 action="#{navigationBean.login}": Target Unreachable, identifier 'navigationBean' resolved to null

此外,我还看到了这个异常跟踪:

代码语言:javascript
复制
com.ibm.ws.webcontainer.servlet.ServletWrapper service SRVE0014E: Uncaught service() exception root cause Faces Servlet: javax.servlet.ServletException: WebBeans context with scope type annotation @RequestScoped does not exist within current thread
   at javax.faces.webapp.FacesServlet.service(FacesServlet.java:221)
   at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1227)
   at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:776)
   at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:458)
   at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:178)
   at com.ibm.ws.webcontainer.filter.WebAppFilterChain.invokeTarget(WebAppFilterChain.java:136)
   at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:79)
   at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:928)
   at com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1025)
   at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.dispatch(WebAppRequestDispatcher.java:1385)
   at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:194)
   at com.ibm.ws.webcontainer.webapp.WebApp.sendError(WebApp.java:3263)
   at com.ibm.ws.webcontainer.webapp.WebApp.handleException(WebApp.java:3791)
   at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3772)
   at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:304)
   at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:976)
   at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1662)
   at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:200)
   at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:459)
   at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:526)
   at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:312)
   at com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:88)
   at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:175)
   at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
   at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)
   at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138)
   at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:204)
   at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:775)
   at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:905)
   at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1862)

通过进一步研究,我的假设是:(为了引导我找到正确的路径,您可以进行修正)- Websphere中的Primefaces + MyFaces工作得很好。但是,如果我想实现依赖注入,我将不得不使用@ManagedBean而不是@命名的CDI实现(到目前为止这一点更好)

但是,如果有人知道如何使@Named仍然与素数脸一起工作,你能告诉我如何或至少指出您知道的资源可以帮助我吗?

非常感谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-12 03:09:40

我已经解决了我自己的问题。Primefaces使用得很好

MyFaces2.0+CDI(OpenWebbeans)+WAS8.5

我所做的就是在我的bin文件夹中包含Primefaces的所有必要的依赖文件,并在我的web.xml中进行一些调整,然后它就可以正常工作了。:)

以下是我的web.xml的一部分:

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="3.0" 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 http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
    <display-name>ISIP_DCE</display-name>
    <servlet>
        <servlet-name>Faces Servlet</servlet-name>
        <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
        <enabled>true</enabled>
        <async-supported>false</async-supported>
    </servlet>
    <servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>
        *.xhtml</url-pattern>
    </servlet-mapping>
    <welcome-file-list>
        <welcome-file>index.xhtml</welcome-file>
    </welcome-file-list>
    <context-param>
        <description> 
        </description>
        <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
        <param-value>server</param-value>
    </context-param>
    <context-param>
        <description>
        </description>
        <param-name>javax.faces.CONFIG_FILES</param-name>
        <param-value/>
    </context-param>
    <context-param>
        <description>
        </description>
        <param-name>javax.faces.DEFAULT_SUFFIX</param-name>
        <param-value>.xhtml</param-value>
    </context-param>
    <context-param>
        <description>
        </description>
        <param-name>javax.faces.PROJECT_STAGE</param-name>
        <param-value>Production</param-value>
    </context-param>
    <context-param>
        <description>
        </description>
        <param-name>com.ibm.ws.jsf.JSP_UPDATE_CHECK</param-name>
        <param-value>true</param-value>
    </context-param>
    <context-param>
        <description>
        </description>
        <param-name>com.ibm.ws.jsf.LOAD_FACES_CONFIG_AT_STARTUP</param-name>
        <param-value>true</param-value>
    </context-param>
    <context-param>
        <param-name>
            javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL
        </param-name>
        <param-value>true</param-value>
    </context-param>
    <context-param>
        <param-name>primefaces.TRANSFORM_METADATA</param-name>
        <param-value>true</param-value>
    </context-param>
    <filter>
        <filter-name>Primefaces FileUpload Filter</filter-name>
        <filter-class>org.primefaces.webapp.filter.FileUploadFilter</filter-class>
        <init-param>
            <param-name>thresholdSize</param-name>
            <param-value>51200</param-value>
        </init-param>
    </filter>
    <context-param>
        <param-name>primefaces.TRANSFORM_METADATA</param-name>
        <param-value>true</param-value>
    </context-param>
    <filter-mapping>
        <filter-name>Primefaces FileUpload Filter</filter-name>
        <servlet-name>Faces Servlet</servlet-name>
    </filter-mapping> 
    <context-param>
        <param-name>javax.faces.DATETIMECONVERTER_DEFAULT_TIMEZONE_IS_SYSTEM_TIMEZONE</param-name>
        <param-value>true</param-value>
    </context-param>
    <context-param>
        <description>Workaround for the bug reported for JSF 2.0.
(source: http://stackoverflow.com/questions/8026082/jsf-2-0-why-my-viewscope-beans-is-re-created-even-though-still-on-same-view)</description>
        <param-name>javax.faces.PARTIAL_STATE_SAVING</param-name>
        <param-value>false</param-value>
    </context-param>
    <session-config>
        <session-timeout>30</session-timeout>
    </session-config>
</web-app>
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22036144

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档