У меня отсутствует что-то действительно базовое (связанное с загрузкой классов в конфигурации EAR или EAR). Я не мог понять, почему мои проверки JSR 303 и проверки Hibernate не запускаются из EAR ... Это вызывает срабатывание, если я создаю новый проект WAR.Проверка валика (JSR 303) и проверка Hibernate не срабатывают, когда внутри EAR
Я создаю новый проект с Maven, JSF 2.0, Open-JPA, EJB 3.0 на Weblogic Server 10.3. Я создал все проекты, используя архетипы maven. У меня есть окончательный EAR сборки, которое структурировано как:
- PROJNAME
- EJB
- веб
- Lib
- META-INF
В Сети, У меня есть login.xhtml
с userName
и Password
полей отображаются с TestMPB переменных и POMS, имеющей зависимость: валидация-апи 1.0.0.GA, зимую-валидатор 4.2.0.Final ...
(TestMPB) переменная страница Подкладочной бин имеют @Pattern
и @NotEmpty
аннотаций, но они никогда не срабатывают на этапе проверки JSF. Проверка JSF работает нормально, но я хочу использовать проверки JSR 303 и Hibernate.
login.xhtml
содержит следующие строки: impt
<h:messages layout="table" showDetail="false" showSummary="true"/>
<h:inputText class="textbox" id="userId" value="#{testMPB.userId}"></h:inputText>
<h:commandButton id="button" action="#{testMPB.login}" value="Login" ></h:commandButton>
TestMPB содержит:
@Pattern(regexp = "^(?=.*[a-zA-Z])[a-zA-Z0-9_]{2,15}\\s*$", message = "userId invalid")
@NotEmpty(message = "userId empty")
private String userId = "";
public String login(){ System.out.println("User Login ::"+getUserId());
return "/web/ui/s/home/home.xhtml";
}
Application.xml содержит
<?xml version="1.0" encoding="UTF-8"?>
<application xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/application_5.xsd" version="5">
<display-name>ear</display-name>
<module>
<web>
<web-uri>web</web-uri>
<context-root>/NewAccountsWeb</context-root>
</web>
</module>
<module>
<ejb>ejb</ejb>
</module>
<library-directory>lib</library-directory>
</application>
Для отладки, я уверен:
- Управляемый bean-компонент JSF (TestMPB) инициализирует загрузку страницы (путем добавления SOP в конструктор)
- На странице submit вызывается метод и выводится значение userName.
- Замены JARs, добавленные в POM, являются правильными, и они существуют в окончательной сборке EAR.
- Те же проверки JSR 303 и Hibernate работают с тем же набором
login.xhtml
и TestMPB.java, когда я создаю проект WAR. - Создал фазовый прослушиватель и распечатал все этапы, чтобы убедиться, что фазы вызваны.
- Для тестирования я также добавил проверки JSF (
required=true
), который работает и показывает сообщения в сообщении h:.
Может думать о чем-нибудь, что может решить эту проблему?
Можете ли вы показать, где баны проверки api и hibernate bean validation заканчиваются в вашем последнем ухе? Проверка боба действительно должна включаться автоматически, когда API проверки боба обнаруживается в пути к классам. Я предполагаю, что есть проблема с загрузкой. – Hardy