2016-01-15 8 views
5

Moja cała reszta usługa przestaje działać, gdy Dodaję ten kod:JPA reszta przestaje działać, gdy próbuje załadować blob

@PUT 
@Path("upload/{id}") 
@Consumes(MediaType.MULTIPART_FORM_DATA) 
public void addBlob(@PathParam("id") Integer id, @FormDataParam("file") InputStream uploadedInputStream) throws IOException { 
    TheTempClient entityToMerge = find(id); 
    try { 
     ByteArrayOutputStream out = new ByteArrayOutputStream(); 
     int read = 0; 
     byte[] bytes = new byte[1024]; 
     while ((read = uploadedInputStream.read(bytes)) != -1) { 
      out.write(bytes, 0, read); 
     } 
     entityToMerge.setTestBlob(out.toByteArray()); 
     super.edit(entityToMerge); 
    } 
    catch (IOException e) { 
     e.printStackTrace(); 
    } 
} 

Tak naprawdę nie powiedzieć, dlaczego obaj, wszystko Dostaję jest:

Severe: WebModule[/MavenProjectTest]StandardWrapper.Throwable 
org.glassfish.jersey.server.model.ModelValidationException: Validation of the application resource model has failed during application initialization. 

i kilka błędów, mówiąc „spowodowane przez poprzednich błędów

muszę zrobić coś naprawdę złego tutaj, czy są jakieś profesjonalny Entuzjaści JPA, którzy mogą mi tutaj trochę pomóc?

Edycja: używam adnotacji zamiast web.xml, czy można to zrobić bez pliku web.xml?

+2

To błędna konfiguracja w serwisie w Jersey. A pęczek logu błędów po tym jest naprawdę ważny, aby znaleźć przyczynę. –

+0

Czy "InputStream" jest dozwolone jako 'FormDataParam'? Pomyślałem, że potrzebujesz MultiPart-Library do tego ... – slartidan

+0

@Slartidan Szczerze mówiąc nie jestem całkowicie pewien, jestem nowy w tym, ale postępowałem zgodnie z tym przewodnikiem: http://www.javatpoint.com/jax-rs -file-upload-example –

Odpowiedz

3

musiałem dodać register(MultiPartFeature.class);

w klasie ApplicationConfig.java, tak:

@javax.ws.rs.ApplicationPath("api") 
public class ApplicationConfig extends ResourceConfig { 

public ApplicationConfig() { 
    packages("com.test.thepackage.service"); 
    register(MultiPartFeature.class); 
} 

}

Teraz działa jak czar, bez pliku web.xml.

+0

Zasysa, że ​​nie odzyskuje reputacji, gdy sam odpowiada na pytanie o nagrodę. Sądzę, że jest to powstrzymanie łowienia uwagi i dobrych odpowiedzi, a następnie zaakceptowanie złej odpowiedzi tylko po to, aby utrzymać reputację lub coś w tym rodzaju. Ale to naprawdę musi być sprawdzone, musi być lepsze rozwiązanie tego. –

Powiązane problemy