posts - 84, comments - 54, trackbacks - 0, articles - 0
             :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          在JSP中有這樣一行代碼:

          <td class="FormContents">
          <fmt:formatDate value="${usr.userCreDate}" pattern="dd-MMM-yyyy" />
          </td>

          在WebSphere Portal6中運行時報錯:
          Nested Exception is com.ibm.ws.jsp.JspCoreException: Unable to convert string '${usr.userCreDate}' to class java.util.Date for attribute value: java.lang.IllegalArgumentException: Property Editor not registered with the PropertyEditorManager
                   at org.apache.jasper.runtime.JspRuntimeLibrary.getValueFromPropertyEditorManager(JspRuntimeLibrary.java:
          930)
                   at com.ibm._jsp._userEnquiry._jspx_meth_fmt_formatDate_0(_userEnquiry.java:
          1624)
                   at com.ibm._jsp._userEnquiry._jspService(_userEnquiry.java:
          643)
                   at com.ibm.ws.jsp.runtime.HttpJspBase.service(HttpJspBase.java:
          91)
                   at javax.servlet.http.HttpServlet.service(HttpServlet.java:
          856)

           

          而該JSP在Portal 5中確定是沒問題的。利用Google找到一個類似的問題,有人做了如下 的解答:

          1) Declare web.xml as Servlet 2.5.
          2) Remove all loose JSTL tld files from your classpath. Those are already included in the JSTL JAR file.
          3) Remove the TLD declarations from your web.xml. Those are already declared in the JSTL JAR's web.xml.
          4) I recommend to remove the JSTL and Standard JAR's and use JSTL 1.2 instead: jstl-1.2.jar. Just place it in the classpath (YourWebApp/WEB-INF/lib or Tomcat/lib) and declare the @taglib in your JSP to use it. Nothing more, nothing less. Do not extract the JAR and duplicate the stuff everywhere.

          再三檢查后,以上4點在移植過程中都已經注意了,除了Servlet是2.4以外,但是應該和這個沒關系。

          <?xml version="1.0" encoding="UTF-8"?>
          <web-app id="WebApp_ID" version="2.4"
              xmlns
          ="http://java.sun.com/xml/ns/j2ee"
              xmlns:xsi
          ="http://www.w3.org/2001/XMLSchema-instance"
              xsi:schemaLocation
          ="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
          </web-app>

           

          既然原因不在這里,就只有另外想辦法,根據錯誤信息,忽然想到盡管WEB-INF/lib中的jstl.jar沒問題,但是是否加載到了這個jar呢。打開EAR項目下的application.xml,轉到Deployment,將Classloader Mode設置為PARENT_LAST。重啟發布項目后,問題解決。
          該設置的物理位置在{EAR}\META-INF\ibmconfig\cells\defaultCell\applications\defaultApp\deployments\defaultApp\deployment.xml中

          <?xml version="1.0" encoding="UTF-8"?>
          <appdeployment:Deployment xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:appdeployment="http://www.ibm.com/websphere/appserver/schemas/5.0/appdeployment.xmi" xmi:id="Deployment_1236654129452">
            
          <deployedObject xmi:type="appdeployment:ApplicationDeployment" xmi:id="ApplicationDeployment_1236654129452" startingWeight="10">
              
          <modules xmi:type="appdeployment:WebModuleDeployment" xmi:id="WebModuleDeployment_1236654129452" startingWeight="10000" uri="MyPortal_Web.war"/>
              
          <classloader xmi:id="Classloader_1236654129452" mode="PARENT_LAST"/>
            
          </deployedObject>
          </appdeployment:Deployment>

          評論

          # re: 從Websphere Portal5移植Web應用到Websphere Portal6時fmt:formatDate報錯的解決  回復  更多評論   

          2009-03-16 14:05 by Amber
          謝謝啦 我正好遇到這個問題 都暈了
          主站蜘蛛池模板: 宁阳县| 西乡县| 翁牛特旗| 英德市| 广德县| 永靖县| 岑溪市| 福建省| 沙湾县| 清水河县| 高州市| 涞水县| 渝中区| 砚山县| 宁河县| 巍山| 山丹县| 长顺县| 阳谷县| 浑源县| 阿拉善左旗| 邵阳县| 台州市| 岚皋县| 西峡县| 阿拉善右旗| 德惠市| 台湾省| 泗洪县| 北海市| 舟山市| 正安县| 呼图壁县| 抚松县| 金堂县| 镇雄县| 疏勒县| 海林市| 昌邑市| 江西省| 安远县|