Android 用の JSR-303 互換バリデーターが存在しない可能性はありますか?
Hibernate バリデーターは Android (ClassNotFound Exception) と互換性がないようで、それから... 他に何も見つかりませんでした。
Metawidget を見つけましたが、彼らの Web サイトでは、「Metawidget には、既存のフロントエンドにネイティブな UI コンポーネントが付属しています」と書かれています。追加の UI コンポーネントは必要ありません。
バックエンドにあるものは次のとおりです。
final String wrongJson = "{\"name\":\"notavalidemail\"}";
final Gson gson = new Gson();
final Project projectFromJson = gson.fromJson(wrongJson, Project.class);
final ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
final Validator validator = factory.getValidator();
final Set<ConstraintViolation<Project>> constraintViolations = validator.validate(projectFromJson);
assertNotNull(constraintViolations);
for (final ConstraintViolation<Project> violation : constraintViolations) {
logger.debug("Errormessage: {}",violation.getMessage());
}
たくさんのifを避けるために、Androidでも同じことが必要です-何かヒントはありますか?
[更新] 申し訳ありませんが、ClassNotFound ではありません。
javax.validation.ValidationException: Bean 検証プロバイダーが見つからなかったため、構成を作成できません。Hibernate Validator (RI) などのプロバイダーをクラスパスに追加します。javax.validation.Validation$GenericBootstrapImpl.configure(Validation.java:271) で javax.validation.Validation.buildDefaultValidatorFactory(Validation.java:110) で at.mikemitterer.mobiad.android.util.ProjectTest.testWithWrongJsonString(ProjectTest.java) :90) Android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:175) で Android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:190) で java.lang.reflect.Method.invokeNative(ネイティブ メソッド) で Android. test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:555) で android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1661)
[更新 II ] はい - hibernate-validator-5.1.0.Alpha1.jar は lib フォルダーにあります