2016-04-08 22 views
1

Jersey tabanlı bir uygulamam var ve girdiye doğrulama eklemek istiyorum.Açıklamalar olmadan Jersey doğrulaması

@POST 
@Produces(APPLICATION_JSON) @Consumes(APPLICATION_JSON) 
public SomeResponce myMethod(@Valid MyBean myBean) 

Sorun şu ki, fasulyeler prototip üretiliyor ve doğrulama ek açıklamaları ekleyemiyorum. Jersey ile http://docs.jboss.org/hibernate/stable/validator/reference/en-US/html_single/#section-programmatic-api

Ama Im çok alışılmadık ve fasulye ek açıklama kullanılmadan Jersey Bu özel doğrulayıcılarını nasıl ekleneceği can not docs bulmak: Ben açıklama/xml olmadan fasulye doğrulamak için nasıl bir yol buldum. Bunu yapmanın bir yolu var mı?

Jersey sürümü - 2.8

+0

Ve .. Eğer sorunu çözmek? Cevap yardımcı oldu mu? –

+0

Evet, bu şekilde her şey yolunda. Thanx! –

cevap

1

kolay bir yolu (ve çok forma ile mümkün) configure hibernate validator via XML etmektir. META-INF klasöründeki validation.xml'deki dosyasını yerleştirin ve başvurulan xml dosyasında constraint-mappings oluşturun:

src/main/resources/META-INF/validation.xml'deki (validation.xml'deki klasöründe olmalıdır META-INF Sınıfyolu):

<validation-config 
     xmlns="http://jboss.org/xml/ns/javax/validation/configuration" version="1.1"> 
    <constraint-mapping>META-INF/mapping.xml</constraint-mapping> 
</validation-config> 

src/main/resources/META-INF/mapping.xml:

<constraint-mappings 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://jboss.org/xml/ns/javax/validation/mapping validation-mapping-1.1.xsd" 
     xmlns="http://jboss.org/xml/ns/javax/validation/mapping" version="1.1"> 

    <default-package>com.example</default-package> 
    <bean class="MyBean" ignore-annotations="true"> 
     <field name="name"> 
      <constraint annotation="javax.validation.constraints.Size"> 
       <element name="max">5</element> 
      </constraint> 
      <constraint annotation="javax.validation.constraints.NotNull"> 
      </constraint> 
     </field> 
    </bean> 
</constraint-mappings> 

src/main/java/com/ex bol/MyBean.java:

package com.example; 

public class MyBean { 

    private String name; 

    public String getName() { 
     return name; 
    } 

    public void setName(String name) { 
     this.name = name; 
    } 
} 

src/main/java/com/example/MyResource.java:

package com.example; 
import javax.validation.Valid; 
import javax.ws.rs.*; 
import javax.ws.rs.core.MediaType; 

@Path("/api") 
@Produces(MediaType.APPLICATION_JSON) 
@Consumes(MediaType.APPLICATION_JSON) 
public class MyResource { 

    @POST 
    public String postIt(@Valid MyBean bean) { 
     return bean.getName(); 
    } 
} 
+0

Oh, lütfen bu kolay yol buysa beni öldür.) – wolktm