Почему один и тот же код JSF может не работать только в одной среде, если все среды одинаковы? - PullRequest
0 голосов
/ 06 марта 2020

Сценарий:

Одинаковый код в локальной, демонстрационной, предварительной и рабочей средах,
Тот же сервер приложений Версия Tomcat 7.0.92 в локальной, демонстрационной, предварительной и рабочей средах
Одна и та же версия JVM в каждой среде
Та же конфигурация сервера приложений (за исключением порта # 8081 на этапе подготовки к выпуску, 8080 на этапе производства) и jvmRoute, назначенных в разделе Производство для балансировки нагрузки.

Может локально продублировать это на рабочем сервере, что означает, что в этот момент я не прохожу через http-сервер / балансировщик.

Но этот код, приведенный ниже, действует по-другому, чем в Local, Демонстрация и подготовка производства. Вы могли бы сказать, что это «работает» во всех средах, КРОМЕ производства ...

Работает, означает, что кнопка «Загрузить» в fileUploadDialog отключена при начальной загрузке страницы из-за отсутствия выбранного типа загрузки (то есть uploadType = null). После выбора типа загрузки кнопка загрузки больше не отключается и позволяет клиенту загружать документ. Если он снова выбран как «Пожалуйста, выберите один ...», uploadType снова будет нулевым и кнопка «Выгрузить» будет отключена. Довольно прямолинейно.

Эти случаи НЕ случаются в производстве, и всегда доступна кнопка «Загрузить», позволяющая клиенту отправить неполный документ в базу данных и, следовательно, вызывающая ошибку 500 в последующих операциях.

Еще немного информации. Это похоронено в единственной форме с ТЫСЯЧАМИ или строками кода выше этого. Это представление "БОГ".

                    <p:dialog id="uploadSupportingDocsDlg"
                          header="File Upload"
                          modal="true"
                          widgetVar="uploadSupportingDocsDlg"
                          closable="true"
                          resizable="true"
                          draggable="true" >
                    <center>
                        <p:message for="uploadType" />
                        <p:selectOneMenu id="uploadType"
                                         style="vertical-align: middle;"
                                         value="#{backingBean.uploadType}"
                                         rendered="#{backingBean.application.type eq 'TYPE1'
                                                     or backingBean.application.type eq 'TYPE2'
                                                     or backingBean.application.type eq 'TYPE3' }"
                                         appendTo="@this">
                            <f:selectItem itemLabel="Please Select One..." itemValue="#{null}"/>
                            <f:selectItems value="#{backingBean.requiredDocsDropdownList}" var="upload" itemLabel="#{upload.doctype}" itemValue="#{upload.doctype}" />
                            <p:ajax event="itemSelect" update="@widgetVar(supportingFileUploadDialog)" process="uploadType"/>
                        </p:selectOneMenu>
                    </center>
                    <center>
                        <p:fileUpload style="width: 750px;"
                                      mode="advanced"
                                      widgetVar="supportingFileUploadDialog"
                                      fileLimit="1"
                                      allowTypes="/(\.|\/)(pdf|PDF|jpg|jpeg|JPG|JPEG|png|PNG)$/"
                                      sizeLimit="4000000000"
                                      invalidSizeMessage="File must be 4GB or less"
                                      invalidFileMessage="Invalid file type: File must be in PDF, JPG, or PNG format"
                                      fileUploadListener="#{backingBean.uploadAdditionalDocument}"
                                      onstart="PF('uploadDlg').show();"
                                      oncomplete="PF('uploadDlg').hide();"
                                      update="@form, @this"  
                                      disabled="#{backingBean.uploadType eq null}">
                        </p:fileUpload>
                    </center>
                </p:dialog>
...