OpenEMM을 새로 설치하면 일부 페이지에 Bean 오류가 표시됩니다.
-
05-07-2019 - |
문제
우리는 Resin 서버에 새로운 openemm 설치를 배포했습니다(Resin이 권장되는 기본 응용 프로그램 서버이지만 엄청난 양의 종속성으로 인해 정확히 간단하지는 않았습니다).이것이 우리의 설정입니다:
- 최신 젠투 GNU/Linux
- OpenEMM 5.1.1(엄청난 양의 종속 jar를 포함하여 소스에서 컴파일됨)
- 127.0.0.1:8080의 수지 3.2.1
- 트래픽을 127.0.0.1:8080으로 전달하는 가속기 모드의 Squid 프런트엔드
이 설정은 잘 작동하는 것 같습니다.OpenEMM의 거의 모든 페이지가 작동합니다.그러나 "작업" 메뉴 항목에서 다음 오류가 발생합니다.
javax.servlet.ServletException: javax.servlet.jsp.JspException: No bean found under attribute key emmaction
오류가 발생하는 다른 메뉴 항목은 "수신자 / 개요" 메뉴 항목입니다.
javax.servlet.ServletException: javax.servlet.jsp.JspException: Missing message for key "gender..short"
나는 Java 배포에 대해 꽤 멍청한 사람입니다.어떤 도움이라도 대단히 감사하겠습니다.
업데이트: 나는 이미 이 문제에 대해 어느 정도 진전을 이루었습니다.이러한 모든 문제는 일부 변수가 보간되었지만 빈 값을 포함하기 때문에 발생하는 것 같습니다. 예를 들어 ${recipient.gender}는 빈 값으로 확인되어 성별..짧은("gender.${recipient.gender}에서 해결됨)을 조회하려고 시도합니다. 짧은").코드 조각은 다음과 같습니다.
<display:column class="name" headerClass="head_name" titleKey="Salutation">
<bean:message key="gender.${recipient.gender}.short"/>
</display:column>
이는 다음과 같이 "display:table"로 래핑됩니다.
<display:table class="dataTable" pagesize="${recipientForm.numberofRows}"
id="recipient" name="recipientList" sort="external"
requestURI="/recipient.do?action=${ACTION_LIST}" excludedParams="*"
partialList="true" size="${recipientList.fullListSize}"
>
추가 디버깅을 수행할 수 있는 단서가 있습니까?나는 이것이 잘못된 동작을 고칠 것이라는 희망으로 이미 디스플레이태그 라이브러리를 1.2에서 1.1.1로 다운그레이드했습니다. 그러나 그것은 잘못된 점인 것 같았습니다.
해결책
결국 저는 Resin을 3.1.x에서 Resin 3.0.x로 다운그레이드하여 이 문제를 해결했습니다...Resin의 일부 라이브러리와 웹앱 지원 코드에 호환되지 않는 변경 사항이 있는 것 같습니다.이것이 무엇인지, 그리고 최신 레진 버전에서 작동하도록 수정하는 방법은 여전히 나에게 미스터리로 남아 있습니다.