画像データを seam+RESTeasy エンドポイントにポストしようとしていますが、JBoss の起動中に非常に不可解なエラーが発生します。私が送信している HTTP 要求には、"attachment" という名前の単一の image/jpeg 部分を持つ multipart/form-data の content-type があります。私のサービスメソッドは次のようになります。
@POST
@Path("uploadSymptomsImage/{appointmentGUID}")
@Consumes(MediaType.MULTIPART_FORM_DATA)
@Produces("application/json")
public String uploadSymptomsImage( @FormParam("attachment") InputStream fileInputStream,
@PathParam("appointmentGUID") String strAppointmentGUID )
{ ...
起動時に発生するエラーは次のとおりです。
Caused by: java.lang.RuntimeException: Unable to find a constructor that takes a String param or a valueOf() or fromString() method for javax.ws.rs.FormParam("attachment") on public java.lang.String com....AppointmentRestService.uploadSymptomsImage(java.io.InputStream,java.lang.String) for basetype: java.io.InputStream
at org.jboss.resteasy.core.StringParameterInjector.initialize(StringParameterInjector.java:206) [:]
at org.jboss.resteasy.core.StringParameterInjector.<init>(StringParameterInjector.java:57) [:]
at org.jboss.resteasy.core.FormParamInjector.<init>(FormParamInjector.java:22) [:]
私の理解では、メディア タイプは自動的に InputStream にマーシャリングされる可能性があります。java.io.File、java.io.Reader も試しましたが、どちらも同じエラーでした。byte[] または String に置き換えると、長さゼロの配列または null がパラメーター値として取得されます。
これをどのようにデバッグしますか?また、生のリクエストまたは事前にマーシャリングされた値にアクセスすることは可能ですか?
ここでの提案は大歓迎です。