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
          謝謝啦 我正好遇到這個問題 都暈了
          主站蜘蛛池模板: 柯坪县| 武冈市| 中宁县| 句容市| 阿坝县| 栾川县| 富宁县| 丽水市| 含山县| 盘山县| 长汀县| 大城县| 中江县| 荣昌县| 河北省| 绩溪县| 苏州市| 大田县| 兰溪市| 克山县| 连城县| 嘉祥县| 清水河县| 开封县| 万全县| 苗栗县| 呼图壁县| 南溪县| 南平市| 丘北县| 平陆县| 莱芜市| 怀仁县| 上虞市| 小金县| 陇川县| 宽城| 志丹县| 龙游县| 威远县| 子洲县|