Java 使用Jersey聚合参数

Java 使用Jersey聚合参数,java,jersey,Java,Jersey,我正在研究jersey框架。。对于API,我们发送的多格式数据如下 public Response get(@HeaderParam("usrId") int usrId, @HeaderParam("id") int id, @FormDataParam("workFile") InputStream workFileStream, @FormDataParam("workFile") FormDataContentDisposition workFileDetail, @FormDataPa

我正在研究jersey框架。。对于API,我们发送的多格式数据如下

public Response get(@HeaderParam("usrId") int usrId, @HeaderParam("id") int id, @FormDataParam("workFile") InputStream workFileStream, @FormDataParam("workFile") FormDataContentDisposition workFileDetail, @FormDataParam("workNotes") String workNotes, @FormDataParam("conditionFile") InputStream conditionFileStream,
@FormDataParam("conditionFile") FormDataContentDisposition conditionFileDatails, @FormDataParam("conditionNotes") String conditionNotes, @FormDataParam("DesignConditionFile") InputStream designConditionStream, @FormDataParam("DesignConditionFile") FormDataContentDisposition fileDesignCondition, @FormDataParam("desgnConditionNotes") String desgnConditionNotes,
@FormDataParam("drawingFile") InputStream drawingFileStream, @FormDataParam("drawingFile") FormDataContentDisposition fileDrawing, @FormDataParam("desgnDrawingNotes") String desgnDrawingNotes, @FormDataParam("listMakesFile") InputStream listMakesStream, @FormDataParam("listMakesFile") FormDataContentDisposition fileListMakes, @FormDataParam("listMakesNotes") String listMakesNotes,
@FormDataParam("paymentTermsFile") InputStream paymentTermsStream, @FormDataParam("paymentTermsFile") FormDataContentDisposition filePaymentTerms, @FormDataParam("paymentTermsNotes") String paymentTermsNotes, @FormDataParam("bankGuaranteFile") InputStream bankGuaranteStream, @FormDataParam("bankGuaranteFile") FormDataContentDisposition fileBankGuarante,
@FormDataParam("bankGuarnteeNotes") String bankGuarnteeNotes, @FormDataParam("commPointPrjReq") Boolean commPointPrjReq, @FormDataParam("commPointPrjTimeline") String commPointPrjTimeline, @FormDataParam("prjClauseFile") InputStream prjClauseFileStream, @FormDataParam("prjClauseFile") FormDataContentDisposition filePrjClause, @FormDataParam("prjClause") String prjClauseNotes){

.....code

}
对于一个API,我们正在发送这么多文件。。为了定义参数,它将消耗5个文件

我们可以在单独的输入类(input.java)中定义这个formadata并像这样在API中调用输入类吗

public Response get(@HeaderParam("usrId") int usrId, @HeaderParam("id") int id, Input input)
{

............code
}
public class input
{

@FormDataParam("workFile") InputStream workFileStream, @FormDataParam("workFile") FormDataContentDisposition workFileDetail, @FormDataParam("workNotes") String workNotes, @FormDataParam("conditionFile") InputStream conditionFileStream,
@FormDataParam("conditionFile") FormDataContentDisposition conditionFileDatails, 
@FormDataParam("conditionNotes") String conditionNotes, @FormDataParam("DesignConditionFile") InputStream designConditionStream, @FormDataParam("DesignConditionFile") FormDataContentDisposition fileDesignCondition, 
@FormDataParam("desgnConditionNotes") String desgnConditionNotes,
@FormDataParam("drawingFile") InputStream drawingFileStream, @FormDataParam("drawingFile") FormDataContentDisposition fileDrawing, @FormDataParam("desgnDrawingNotes") String desgnDrawingNotes, @FormDataParam("listMakesFile") InputStream listMakesStream, @FormDataParam("listMakesFile") FormDataContentDisposition fileListMakes, @FormDataParam("listMakesNotes") String listMakesNotes,
@FormDataParam("paymentTermsFile") InputStream paymentTermsStream, @FormDataParam("paymentTermsFile") FormDataContentDisposition filePaymentTerms, 
@FormDataParam("paymentTermsNotes") String paymentTermsNotes, @FormDataParam("bankGuaranteFile") InputStream bankGuaranteStream, @FormDataParam("bankGuaranteFile") FormDataContentDisposition fileBankGuarante,
@FormDataParam("bankGuarnteeNotes") String bankGuarnteeNotes, @FormDataParam("commPointPrjReq") Boolean commPointPrjReq, @FormDataParam("commPointPrjTimeline") String commPointPrjTimeline, @FormDataParam("prjClauseFile") InputStream prjClauseFileStream, @FormDataParam("prjClauseFile") FormDataContentDisposition filePrjClause, @FormDataParam("prjClause") String prjClauseNotes

}
我们可以这样定义输入类吗

public Response get(@HeaderParam("usrId") int usrId, @HeaderParam("id") int id, Input input)
{

............code
}
public class input
{

@FormDataParam("workFile") InputStream workFileStream, @FormDataParam("workFile") FormDataContentDisposition workFileDetail, @FormDataParam("workNotes") String workNotes, @FormDataParam("conditionFile") InputStream conditionFileStream,
@FormDataParam("conditionFile") FormDataContentDisposition conditionFileDatails, 
@FormDataParam("conditionNotes") String conditionNotes, @FormDataParam("DesignConditionFile") InputStream designConditionStream, @FormDataParam("DesignConditionFile") FormDataContentDisposition fileDesignCondition, 
@FormDataParam("desgnConditionNotes") String desgnConditionNotes,
@FormDataParam("drawingFile") InputStream drawingFileStream, @FormDataParam("drawingFile") FormDataContentDisposition fileDrawing, @FormDataParam("desgnDrawingNotes") String desgnDrawingNotes, @FormDataParam("listMakesFile") InputStream listMakesStream, @FormDataParam("listMakesFile") FormDataContentDisposition fileListMakes, @FormDataParam("listMakesNotes") String listMakesNotes,
@FormDataParam("paymentTermsFile") InputStream paymentTermsStream, @FormDataParam("paymentTermsFile") FormDataContentDisposition filePaymentTerms, 
@FormDataParam("paymentTermsNotes") String paymentTermsNotes, @FormDataParam("bankGuaranteFile") InputStream bankGuaranteStream, @FormDataParam("bankGuaranteFile") FormDataContentDisposition fileBankGuarante,
@FormDataParam("bankGuarnteeNotes") String bankGuarnteeNotes, @FormDataParam("commPointPrjReq") Boolean commPointPrjReq, @FormDataParam("commPointPrjTimeline") String commPointPrjTimeline, @FormDataParam("prjClauseFile") InputStream prjClauseFileStream, @FormDataParam("prjClauseFile") FormDataContentDisposition filePrjClause, @FormDataParam("prjClause") String prjClauseNotes

}
尝试使用。注释可用作“参数聚合器”,可以注入到资源类字段、属性或资源方法参数中。它可以按如下方式使用:

1.将参数包装到类中 创建POJO以聚合参数:

公共类输入{
@FormDataParam(“工作文件”)
私有输入流工作文件流;
@FormDataParam(“工作文件”)
私有FormDataContentDispositionWorkFileDetail;
@FormDataParam(“工作注释”)
私人字符串工作注释;
@FormDataParam(“条件文件”)
私有输入流条件文件流;
@FormDataParam(“条件文件”)
私有FormDataContentDispositionConditionFileDatails;
@FormDataParam(“条件注释”)
私人字串票据;
@FormDataParam(“设计条件文件”)
私有输入流;
@FormDataParam(“设计条件文件”)
私有FormDataContentDispositionFileDesignCondition;
@FormDataParam(“desgnConditionNotes”)
私有字符串desgnConditionNotes;
@FormDataParam(“绘图文件”)
私有输入流drawingFileStream;
@FormDataParam(“绘图文件”)
私有FormDataContentDispositionFileDrawing;
@FormDataParam(“设计图纸注释”)
私有字符串desgnDrawingNotes;
@FormDataParam(“listMakesFile”)
私有InputStream listMakesStream;
@FormDataParam(“listMakesFile”)
私有FormDataContentDispositionFileListMakes;
@FormDataParam(“listMakesNotes”)
私有字符串listMakesNotes;
@FormDataParam(“paymentTermsFile”)
私人输入流支付流;
@FormDataParam(“paymentTermsFile”)
私有FormDataContentDispositionFilePaymentTerms;
@FormDataParam(“付款条件”)
私人字符串付款条件;
@FormDataParam(“银行担保文件”)
私人输入流银行担保流;
@FormDataParam(“银行担保文件”)
私有FormDataContentDisposition文件BankGuarante;
@FormDataParam(“银行担保人”)
私人银行保函;
@FormDataParam(“commPointPrjReq”)
私有布尔commPointPrjReq;
@FormDataParam(“commPointPrjTimeline”)
私有字符串commPointPrjTimeline;
@FormDataParam(“prjClauseFile”)
私有输入流prjClauseFileStream;
@FormDataParam(“prjClauseFile”)
私有FormDataContentDispositionFilePrjClause;
@FormDataParam(“prjClause”)
私人字符串prjClauseNotes;
//默认构造函数、getter和setter已被指定
}
2.将资源方法更改为使用“参数聚合器”类 使用上述定义的POJO作为资源方法的参数:

@POST
公共响应上载(@HeaderParam(“usrId”)int-usrId,
@HeaderParam(“id”)内部id,
@BeanParam输入){
...
}

尝试使用。这很有帮助。。Thans@GaneshBhagavath所以别忘了接受答案;)是的。。再次感谢你。。。你能解释一下如何在RestCalt或邮递员中测试这一点吗?@加辛巴格瓦夫,如果我的答案解决了你的问题,请考虑接受它。