Сценарий:
Одинаковый код в локальной, демонстрационной, предварительной и рабочей средах,
Тот же сервер приложений Версия 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>