Environment:Rational Software Architect for Websphere + Websphere 7
Ap architecture:Spring MVC + OpenJPA + Tiles2 + JSF2 + Primefaces2
During integrating the JSF and Primefaces, the container throws out the message "Error 500: java.lang.NoSuchMethodError: org/primefaces/component/calendar/Calendar.getStateHelper()Ljavax/faces/component/StateHelper;"
It seems that JSF calls funtion getStateHelper, but primefaces does not implement.
Now, my ap is using jsp pages as views. Is it the root cause of this problem?
Here is my jsp page:
Code: Select all
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="cui" uri="http://fdc.gov/jsp/taglib/commonui" %>
<%@ taglib prefix="f" uri="http://java.sun.com/jsf/core" %>
<%@ taglib prefix="h" uri="http://java.sun.com/jsf/html" %>
<%@ taglib uri="http://primefaces.prime.com.tr/ui" prefix="p" %>
<f:view>
<html>
<head>
<script type="text/javascript" src="<c:url value="/res/js/nig/nig.NIG010W.js"/>"></script>
<script type="text/javascript">
$(document).ready(function() {
$("#breadCrumbContent").append('<a href="javascript:uiCommonToggleMenu();"><cui:msg key="bcYdd"/></a>');
$("#breadCrumbContent").append('<a><cui:msg key="bcYdd114w1"/></a>');
});
</script>
<p:resources />
</head>
<body>
<p:calendar />
<cui:validate formid="NIG010Form"/>
<cui:confidential levelkey="cmConfidentialLevelGeneral"/>
<form id="NIG010Form" method="POST">
<cui:portlet align="center">
<cui:funcbtnset>
<cui:funcbtn fn="1" textkey="cmFuncBtnInsert" type="submit" />
<cui:funcbtn fn="2" textkey="cmFuncBtnQuery" type="submit" />
<cui:funcbtn fn="3" textkey="cmFuncBtnModify" enabled="0" type="submit"/>
<cui:funcbtn fn="4" textkey="cmFuncBtnDelete" enabled="0" clickfn="nigTableAttrFormF4" validateid="tableId"/>
<cui:funcbtn fn="5" textkey="cmFuncBtnPgUp" enabled="0" clickfn="nigTableAttrFormF5"/>
<cui:funcbtn fn="6" textkey="cmFuncBtnPgDn" enabled="0" clickfn="nigTableAttrFormF6"/>
<cui:funcbtn fn="7" textkey="cmFuncBtnPrint" enabled="0"/>
<cui:funcbtn fn="8" textkey="cmFuncBtnRestore" enabled="0"/>
<cui:funcbtn fn="9" textkey="cmFuncBtnClear" type="reset" clickfn="nigTableAttrFormF9"/>
<cui:funcbtn fn="10" textkey="cmFuncBtnExit" clickfn="nigTableAttrFormF10"/>
</cui:funcbtnset>
</cui:portlet>
<cui:portlet>
<cui:msgarea id="OpMsg" textkey="'(NIG010)'"/>
</cui:portlet>
<cui:portlet titlekey="tableAreaForNIG010" align="center">
<table class="table-redmond-left" width="98%">
<tr>
<th width="120"><cui:msg key="lawId"/></th>
<td>
<h:inputText id="lawId" value="#{nig010Bean.lawId}" size="7" maxlength="7"/>
</td>
</tr>
<tr>
<th><cui:msg key="lawName"/></th>
<td>
<h:inputText id="lawName" value="#{nig010Bean.lawName}" size="15" />
</td>
</tr>
<tr>
<th><cui:msg key="accuId"/></th>
<td>
<h:inputText id="accuId" value="#{nig010Bean.accuId}" size="1" />
</td>
</tr>
<tr>
<th><cui:msg key="lawDesc"/></th>
<td>
<h:inputText id="lawDesc" value="#{nig010Bean.lawDesc}" size="30" />
</td>
</tr>
</table>
</cui:portlet>
</form>
<cui:portlet>
<br><br><br>
<h:form>
<h:dataTable id="dt1" value="#{nig010Bean.models}" var="item" bgcolor="#F1F1F1" border="10" cellpadding="5" cellspacing="3" first="0" rows="4" width="50%" dir="LTR" frame="hsides" rules="all" summary="This is a JSF code to create dataTable." >
<f:facet name="header">
<h:outputText value="some chinese labels" />
</f:facet>
<h:column>
<f:facet name="header">
<cui:msg key="lawId"/>
</f:facet>
<h:outputText value="#{item.lawId}"></h:outputText>
</h:column>
<h:column>
<f:facet name="header">
<cui:msg key="lawName"/>
</f:facet>
<h:outputText value="#{item.lawName}"></h:outputText>
</h:column>
<h:column>
<f:facet name="header">
<cui:msg key="accuId"/>
</f:facet>
<h:outputText value="#{item.accuId}"></h:outputText>
</h:column>
<h:column>
<f:facet name="header">
<cui:msg key="lawDesc"/>
</f:facet>
<h:outputText value="#{item.lawDesc}"></h:outputText>
</h:column>
</h:dataTable>
</h:form>
</cui:portlet>
</body>
</html>
</f:view>