Gần đây chúng tôi đã nâng cấp từ WebSphere Portal v6.1 lên v7.0 và trong quá trình này, chúng tôi hiện có sẵn JSF 1.2. Tạo một dự án Portlet mới trong Rad 8 tạo một faces-config.xml với mục sau đâyLoại trình phân giải biến API không còn được dùng sau JSF 1.1. Sử dụng el-resolver thay vì
<application>
<state-manager>com.ibm.faces.application.DevelopmentStateManager</state-manager>
<variable-resolver>com.ibm.faces.portlet.PortletVariableResolver</variable-resolver>
</application>
Và sau đó than phiền: Loại trình phân giải biến API không được dùng nữa sau JSF 1.1. Sử dụng el-resolver để thay thế.
Thật không may là tôi không thể tìm thấy câu trả lời trên các trang của IBM để giải quyết vấn đề sử dụng.
Edit:
System.out.println("Resolver: " + PortalUtil.getFacesContext().getApplication().getELResolver());
=> Resolver: [email protected]
Thêm một mục vào mặt-config
<el-resolver>com.sun.faces.el.FacesCompositeELResolver</el-resolver>
Có hoặc không loại bỏ biến giải quyết dẫn đến:
java.lang.IllegalStateException: Application was not properly initialized at startup, could not find Factory: javax.faces.context.FacesContextFactory
at javax.faces.FactoryFinder.getFactory(FactoryFinder.java:270)
at javax.faces.webapp.FacesServlet.init(FacesServlet.java:164)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.init(ServletWrapper.java:358)
... 89 more
PMR với IBM đã mở ...
Điều này có giúp ích gì không? http://download.oracle.com/docs/cd/E17802_01/products/products/jsp/2.1/docs/jsp-2_1-pfd2/javax/el/ELResolver.html – Brad
Thông điệp cảnh báo từ RAD: Class javax.el. ELResolver phải là bê tông (không trừu tượng). – Stefan
Chúng tôi sử dụng Spring và có org.springframework.web.jsf.DelegatingVariableResolver. Nó hoạt động tốt.Có thể thử thêm một phụ thuộc cho trình phân giải này? Đặt nó như org.springframework.web.jsf.DelegatingVariableResolver variable-resolver> –
JMelnik