NullPointerException ที่ TagAttributeImpl.getBoolean พบหลังจากอัปเดตจาก WLS 12.1.3 เป็น WLS 12.2.1

เราเพิ่งอัปเกรด Weblogic Server จาก 12.1.3 เป็น 12.2.1.4 และฉันได้รับ NPE หลังจากการส่งต่อครั้งแรก () โดยใช้ RequestDispatcher

ฉันลองวิธีแก้ปัญหาต่อไปนี้หลังจากอ่านเนื้อหาบางส่วนจากอินเทอร์เน็ต:

  1. ใส่ -Dorg.apache.el.parser.COERCE_TO_ZERO=true ใน JAVA_OPTIONS ของสคริปต์เริ่มต้น
    ฉันอ่านมาว่า EL 3.3.0 เปลี่ยนวิธีจัดการค่า null ดังนั้นฉันจึงลองสิ่งนี้ แต่มันไม่ทำงาน

  2. อัปเกรดจาก JSF 2.1.28 เป็น JSF 2.2.0 ใน WEB-INF/lib ของ webapp ของฉัน
    ฉันได้รับข้อผิดพลาดเดียวกัน

  3. อัปเกรดเป็น el-api-2.2.1-b03.jar แล้วเพิ่มบรรทัดเหล่านี้ใน weblogic.xml ของฉัน -

    <prefer-web-inf-classes>false</prefer-web-inf-classes>
    
    <prefer-application-packages>
        <package-name>javax.faces.*</package-name>
    <package-name>com.sun.faces.*</package-name>
        <package-name>com.bea.faces.*</package-name>
        <package-name>javax.el.*</package-name> <----------------------------
    </prefer-application-packages>
    
    <prefer-application-resources>
        <resource-name>javax.faces.*</resource-name>
    <resource-name>com.sun.faces.*</resource-name>
        <resource-name>com.bea.faces.*</resource-name>
        <resource-name>javax.el.*</resource-name> <----------------------------
        <resource-name>META-INF/services/javax.servlet.ServletContainerInitializer</resource-name>
    <resource-name>META-INF/services/com.sun.faces.spi.FacesConfigResourceProvider</resource-name>
    </prefer-application-resources>

-- นี่ทำให้ฉันมี java.lang.LinkageError ใหม่ ดังนั้นฉันจึงลบ 2 บรรทัดอีกครั้ง

  1. ฉันแก้ไขปัญหานี้โดยแก้ไข weblogic.xml เพื่อลบรายการต่อไปนี้:
        <prefer-web-inf-classes>false</prefer-web-inf-classes>
        
        <prefer-application-packages>
            <package-name>javax.faces.*</package-name>
        <package-name>com.sun.faces.*</package-name>
            <package-name>com.bea.faces.*</package-name>
            <package-name>javax.el.*</package-name> <----------------------------
        </prefer-application-packages>
        
        <prefer-application-resources>
            <resource-name>javax.faces.*</resource-name>
        <resource-name>com.sun.faces.*</resource-name>
            <resource-name>com.bea.faces.*</resource-name>
            <resource-name>javax.el.*</resource-name> <----------------------------
            <resource-name>META-INF/services/javax.servlet.ServletContainerInitializer</resource-name>
        <resource-name>META-INF/services/com.sun.faces.spi.FacesConfigResourceProvider</resource-name>
        </prefer-application-resources>
    
    และ _2_

ใครช่วยกรุณาแจ้งให้เราทราบสิ่งที่ฉันควรตรวจสอบต่อไปหรือสิ่งที่ฉันอาจพลาดไป? ฉันเพิ่งเริ่มเรียนรู้การกำหนดค่า weblogic.xml สำหรับงานนี้ ดังนั้นโปรดปฏิบัติต่อฉันเหมือนเป็นมือใหม่และชี้ให้เห็นข้อผิดพลาดของมือใหม่ ขอบคุณ! =)

ด้านล่างนี้คือรายการบันทึกล่าสุดที่แสดงข้อผิดพลาด:

ฉันได้อัปเดต IceFaces EE 3.3.0 จาก PA3 เป็น PA7 แล้ว
ฉันได้รับข้อผิดพลาดเดียวกันแม้ว่าจะอัปเดตแล้ว


person JakeA    schedule 17.12.2020    source แหล่งที่มา


คำตอบ (1)


ฉันยังไม่แน่ใจ 100% ว่าทำไมมันถึงใช้งานได้ <prefer-web-inf-classes>false</prefer-web-inf-classes> กำลังบอกให้ WLS รับแพ็คเกจจากบันเดิลในตัว ดังนั้นฉันเดาว่าแพ็คเกจใน WEB-INF/lib ของแอปที่เคยใช้เป็นการแทนที่นั้นไม่ถูกต้องอีกต่อไปหลังจากการอัปเกรด

เกิดจาก: java.lang.NullPointerException ที่ com.sun.faces.facelets.tag.TagAttributeImpl.getBoolean(TagAttributeImpl.java:150) ~[jsf-impl-2.2.0.jar:2.2.0] ที่ javax.faces view.facelets.DelegatingMetaTagHandler.isDisabled (DelegatingMetaTagHandler.java:81) ~ [jsf-api-2.2.0.jar:2.2] ที่ com.sun.faces.facelets.tag.jsf.ValidatorTagHandlerDelegateImpl.applyAttachedObject (ValidatorTagHandlerDelegateImpl.java:113 ) ~[jsf-impl-2.2.0.jar:2.2.0] ที่ com.sun.faces.facelets.tag.jsf.ValidatorTagHandlerDelegateImpl.applyNested(ValidatorTagHandlerDelegateImpl.java:212) ~[jsf-impl-2.2.0. jar:2.2.0] ที่ com.sun.faces.facelets.tag.jsf.ValidatorTagHandlerDelegateImpl.apply(ValidatorTagHandlerDelegateImpl.java:88) ~[jsf-impl-2.2.0.jar:2.2.0] ที่ javax.faces view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:120) ~[jsf-api-2.2.0.jar:2.2] ที่ javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:95) ~[jsf -api-2.2.0.jar:2.2] ที่ javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:137) ~[jsf-api-2.2.0.jar:2.2] ที่ com.sun.faces .facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:190) ~[jsf-impl-2.2.0.jar:2.2.0] ที่ javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java: 120) ~[jsf-api-2.2.0.jar:2.2] ที่ javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:95) ~[jsf-api-2.2.0.jar:2.2] ที่ javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:137) ~[jsf-api-2.2.0.jar:2.2] ที่ com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl .java:190) ~[jsf-impl-2.2.0.jar:2.2.0] ที่ javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:120) ~[jsf-api-2.2.0. jar:2.2] ที่ javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:95) ~[jsf-api-2.2.0.jar:2.2] ที่ javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler( DelegatingMetaTagHandler.java:137) ~[jsf-api-2.2.0.jar:2.2] ที่ com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:190) ~[jsf-impl-2.2 .0.jar:2.2.0] ที่ javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:120) ~[jsf-api-2.2.0.jar:2.2] ที่ javax.faces.view.facelets .CompositeFaceletHandler.apply(CompositeFaceletHandler.java:95) ~[jsf-api-2. 2.0.jar:2.2] ที่ javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:137) ~[jsf-api-2.2.0.jar:2.2] ที่ com.sun.faces.facelets.tag jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:190) ~[jsf-impl-2.2.0.jar:2.2.0] ที่ javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:120) ~[jsf -api-2.2.0.jar:2.2] ที่ javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:95) ~[jsf-api-2.2.0.jar:2.2] ที่ javax.faces.view .facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:137) ~[jsf-api-2.2.0.jar:2.2] ที่ com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply (ComponentTagHandlerDelegateImpl.java:190) ~[jsf-impl-2.2.0.jar:2.2.0] ที่ javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:120) ~[jsf-api-2.2.0.jar:2.2] ที่ javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:95) ~[jsf-api-2.2.0.jar:2.2] ที่ javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:137 ) ~[jsf-api-2.2.0.jar:2.2] ที่ com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:190) ~[jsf-impl-2.2.0.jar: 2.2.0] ที่ javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:120) ~[jsf-api-2.2.0.jar:2.2] ที่ javax.faces.view.facelets.CompositeFaceletHandler.apply( CompositeFaceletHandler.java:95) ~[jsf-api-2.2.0.jar:2.2] ที่ com.sun.faces.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:93) ~[jsf-impl-2.2.0 .jar:2.2.0] ที่ com.sun.faces.facelets.compiler.EncodingHandler.apply(EncodingHandler.java:87) ~[jsf-impl-2.2.0.jar:2.2.0] ที่ com.sun.faces .facelets.impl.DefaultFacelet.apply(DefaultFacelet.java:161) ~[jsf-impl-2.2.0.jar:2.2.0] ที่ com.sun.faces.application.view.FaceletViewHandlingStrategy.buildView(FaceletViewHandlingStrategy.java: 972) ~[jsf-impl-2.2.0.jar:2.2.0] ที่ com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:99) ~[jsf-impl-2.2.0.jar:2.2 .0] ที่ com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) ~[jsf-impl-2.2.0.jar:2.2.0] ที่ com.sun.faces.lifecycle.LifecycleImpl.render (LifecycleImpl.java:219) ~[jsf-impl-2.2.0.jar:2.2.0] ที่ javax.faces.webapp.FacesServlet.service(FacesServlet.java:647) ~[jsf-api-2.2.0. jar:2.2] ... อีก 32 รายการ

person JakeA    schedule 18.12.2020