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
          謝謝啦 我正好遇到這個問題 都暈了
          主站蜘蛛池模板: 鄱阳县| 新蔡县| 古浪县| 资阳市| 唐海县| 牙克石市| 富锦市| 大庆市| 新源县| 乾安县| 阿瓦提县| 绥阳县| 芒康县| 金坛市| 济宁市| 汉沽区| 鞍山市| 张家川| 黔南| 麻阳| 青冈县| 姜堰市| 广灵县| 鄂尔多斯市| 太白县| 秭归县| 禹城市| 日照市| 北宁市| 思南县| 成武县| 兴安盟| 丽江市| 鸡西市| 永登县| 周宁县| 雅江县| 左权县| 闽侯县| 自贡市| 绿春县|