'de değiştirilmiş inputStream'e nasıl erişileceğine karar verilemiyor How to use Jersey interceptors to get request body'da açıklandığı gibi, bir ContainerRequestFilter içinde EntityInputStream öğesini değiştiriyorum.Jersey Giriş akışı, filtrede değiştirildi. Jersey Kaynak
public filter(ContainerRequest request){
ByteArrayOutputStream out = new ByteArrayOutputStream();
InputStream in = request.getEntityInputStream();
try{
Readerwriter.writeTo(in, out);
byte[] requestEntity = out.toByteArray();
// DO SOMETHING WITH BYTES HERE
request.setEntityInputStream(new ByteArrayInputStream(requestEntity));
}/// error handling code here
}
Ancak, daha sonra değiştirilmiş InputStream'e nasıl erişileceğimi anlayamıyorum. ServletContext'i kaynakta bulabilirim, ancak filtrede, ContainerRequest'de gerçekten değiştirdiğim nesnenin nasıl elde edileceğini anlayamıyorum.
Böyle bir şey yapabilir miyim? yöntem kamu javax.ws.rs.core.Response example.TestController.test (com.sun için
Eksik bağımlılığımızı:
@Post
@Path("/test")
public Response test(@Context ContainerRequest cr){
// blah blah
return....
}
Jersey hatası: Bu çalıştıklarında Jersey dışarı kadar başlatılamaz. jersey.spi.container.ContainerRequest), kaynak POST ile açıklamalı, sınıf example.TestController, geçerli bir kaynak yöntemi olarak tanınmıyor.
Jersey'in eski bir sürümünde 1.8 kaldı, bu yüzden sorunun bir parçası olup olmadığından emin değilim.