Errai アプリのファイルをアップロードしようとしていますが、次のエラーが発生します。
[INFO] DEBUG [SynchronousDispatcher] PathInfo: /blob
[INFO] WARN [ExceptionHandler] Failed executing GET /blob
[INFO] org.jboss.resteasy.spi.NotAcceptableException: No match for accept header
[INFO] at org.jboss.resteasy.core.registry.Segment.match(Segment.java:119)
[INFO] at org.jboss.resteasy.core.registry.PathParamSegment.matchPattern(PathParamSegment.java:200)
[INFO] at org.jboss.resteasy.core.registry.RootSegment.matchChildren(RootSegment.java:339)
Errai サービスは次のようになります。
@Path("blob")
public interface BlobService {
@GET
@Produces(MediaType.TEXT_PLAIN)
String getBlobStoreUploadUrl(); // return "/blob/upload"
@GET
@Path("/{id}")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
Picture getPicture(@PathParam("id") String id);
@POST
@Path("/upload")
@Consumes(MediaType.MULTIPART_FORM_DATA)
@Produces(MediaType.APPLICATION_JSON)
void uploadPicture();
}
これで、アップロードは次のようにトリガーされます。
submitButton.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent e) {
blobService.call(new RemoteCallback<String>() {
@Override
public void callback(String response) {
uploadForm.setAction(response);
uploadForm.submit();
uploadForm.reset();
}
}).getBlobStoreUploadUrl();
}
});
ファイルのアップロード方法に矛盾があるようです。ここでの考え方は、通常のアップロード フォームで選択したファイルをuploadPicture
メソッドにアップロードするだけです。
アップロード サービスのコーディング方法のどこが間違っている可能性がありますか?