1

Ich habe ein Maven Spring-Projekt (als eine Bibliothek) und ich füge es als eine Abhängigkeit in Spring Maven-Projekt (Web-Service). Ich habe einige Eigenschaften Dateien in beiden Projekten. In der Bibliothek gibt es eine validationsmessages.properties-Datei.Wie zu lesen .properties Datei von der Bibliothek zu Spring Maven-Projekt

Ich verwende Hibernate Validator Annotationen auf meinem Modell. Zum Beispiel

@NotBlank(message = "{NotBlank-entityId}") 
Private String entityId; 

Das Klasse-Modell, das in der Bibliothek ist, als Anforderungs Körper in webservice verwenden, hier Bibliothek Hibernate Prüfungsmeldungen in webservice funktionieren nicht. Hier ist der Code:

Modell: Task.java (In Bibliothek)

public class Task { 

@NotBlank(message = "{NotNull-EntityID}") 
    private String entityId; 

public String getEntityId() { 
    return entityId; 
    } 

    public void setEntityId(final String entityId) { 
    this.entityId = entityId; 
    } 
} 

Taskvalidationmessages.properties (In Bibliothek)

NotNull-EntityID = Entity ID can not be null. 

TaskManagementConfiguration.java (In-Bibliothek)

@Configuration 
@PropertySources({ @PropertySource("classpath:queries.properties"), 
    @PropertySource("classpath:Taskvalidationmessages.properties") }) 
@Import(DataSourceConfiguration.class) 
public class TaskManagementConfiguration { 

} 

TaskResource.java (Steuerelement ler in Webservice-Projekt)

@RequestMapping(value = WebserviceConstant.CREATE_TASK, method = RequestMethod.POST, produces = WebserviceConstant.APPLICATION_JSON) 
    public ResponseEntity<CreateTaskResponse> createTask(
     @Valid @RequestBody final Task request, 
     @RequestHeader(value = "access-token") final String accessToken) { 

    return new ResponseEntity<CreateTaskResponse>(
     taskService.createTask(request, receivedToken), HttpStatus.CREATED); 
    } 

App.java (In webanwendungsdienstprojekt)

@Configuration 

@SpringBootApplication 
@PropertySources({ @PropertySource("classpath:user-queries.properties") }) 

@Import({ TaskManagementConfiguration.class }) 
public class App { 

    public static void main(final String[] args) { 
    SpringApplication.run(App.class, args); 
    } 

} 

Immer, wenn ich die Ressource URL mit leeren Wert von EntityID getroffen. Es gibt Fehler wie:

{ 
    "fieldErrors": [ 
    { 
     "field": "entityId", 
     "code": 200, 
     "message": "{NotNull-EntityID}" 
    } 
    ] 
} 

Antwort

0

Sie benötigen org.springframework.validation.beanvalidation.LocalValidatorFactoryBean

Validator Bean hinzufügen in Ihre Konfigurationen (TaskManagementConfiguration)

@Bean(name = "messageSource") 
public MessageSource messageSource() 
{ 
    ReloadableResourceBundleMessageSource bean = new ReloadableResourceBundleMessageSource(); 
    bean.setBasename("classpath:Taskvalidationmessages"); 
    bean.setDefaultEncoding("UTF-8"); 
    return bean; 
} 

@Bean(name = "validator") 
public LocalValidatorFactoryBean validator() 
{ 
    LocalValidatorFactoryBean bean = new LocalValidatorFactoryBean(); 
    bean.setValidationMessageSource(messageSource()); 
    return bean; 
} 
+0

noch funktioniert Es ist nicht. – Kishori

+0

können Sie Ihre vollständige Konfiguration aktualisieren – kuhajeyan

Verwandte Themen