我想將一個二進制文件(圖片)發送到我在Glassfish中運行的REST風格的Web服務。 我發現代碼應該這樣做 Upload data method in REST web service 和其他幾個類似的帖子,但都沒有工作。 這是我的代碼:在Glassfish中使用REST風格的Web服務上傳二進制文件
@POST
@Consumes(MediaType.APPLICATION_OCTET_STREAM)
public String post(InputStream payload) throws IOException
{
return "Payload size="+payload.available();
}
@POST
@Path("bytes")
@Consumes(MediaType.APPLICATION_OCTET_STREAM)
public String post(byte[] payload)
{
return "Payload size="+payload.length;
}
接收的InputStream該方法返回:
Payload size=0
接收字節[]回報的方法:
Error 500 - Internal Server Error
的誤差500由此引起的例外:
Caused by: java.lang.NullPointerException
at com.sun.jersey.moxy.MoxyMessageBodyWorker.typeIsKnown(MoxyMessageBodyWorker.java:110)
at com.sun.jersey.moxy.MoxyMessageBodyWorker.isReadable(MoxyMessageBodyWorker.java:133)
at com.sun.jersey.core.spi.factory.MessageBodyFactory._getMessageBodyReader(MessageBodyFactory.java:345)
at com.sun.jersey.core.spi.factory.MessageBodyFactory._getMessageBodyReader(MessageBodyFactory.java:315)
at com.sun.jersey.core.spi.factory.MessageBodyFactory.getMessageBodyReader(MessageBodyFactory.java:294)
at com.sun.jersey.spi.container.ContainerRequest.getEntity(ContainerRequest.java:449)
at com.sun.jersey.server.impl.model.method.dispatch.EntityParamDispatchProvider$EntityInjectable.getValue(EntityParamDispatchProvider.java:123)
at com.sun.jersey.server.impl.inject.InjectableValuesProvider.getInjectableValues(InjectableValuesProvider.java:46)
... 40 more
任何意見,非常感謝。
我強烈建議你刪除一個標籤以騰出空間給「java」 –
@MrD好主意。完成。謝謝。 – Sergey