Java Post 带有来自 Bean 的附件 JAX-RS 的方法

Java Post Method with Attachment JAX-RS from Bean

我有一个电子邮件 Web 服务 - 工作正常 - 现在我需要添加附件。

1.How 我是否在我的 post 方法中编写 @FormParam 来接收 byte[]?

2.How 我是否将我的 bean 写为 addParam 以添加文件?

我的bean是这样的:

public String sendEmail() throws IOException{            
    FacesContext context = FacesContext.getCurrentInstance();
    HttpServletRequest req = (HttpServletRequest) context.getExternalContext().getRequest();
    String ip = req.getRemoteAddr();

    String conteudo = "é ô ç $ & / { [";     
    List<byte[]> att = new ArrayList<byte[]>();        

    String request = "myURI";
    HttpClient client = new HttpClient();
    PostMethod method = new PostMethod(request); 
    method.getParams().setContentCharset("utf-8");       

    method.addParameter("conteudo", conteudo);
    method.addParameter("ip", ip);

    return "sendEmail ok";
}

我的POST方法是这样的:

@POST   
@Path("/sendEmail")
@Consumes({"application/json","application/x-www-form-urlencoded",})    
public String sEmail(@FormParam("conteudo") String conteudo, @FormParam("ip") String ip)throws MessagingException {

    String de = "de@mail.com.br";
    String para = "para@rmail.com.br";
    String cc = "";
    String cco = "";
    String titulo = "Email test";
    String conteudo = "conteudo";


    try {

        Email email = new SimpleEmail(); 
        email.setHostName("smtp....");
        email.setSmtpPort(25);
        email.setStartTLSEnabled(true);
        email.setFrom(de); 
        email.addTo(para); 
        email.setSubject(titulo); 
        email.setMsg(conteudo); 

        if (!cc.equals("")){
            email.addCc(cc); 
        }
        if (!cco.equals("")){
            email.addBcc(cco); 
        }

        email.send();

    } catch (EmailException e) {
        Logger.getLogger(Mail.class.getName()).log(Level.SEVERE, null, e.getMessage());            
 }

我使用 JavaMail 1.4。

我编码为base64,然后我将所有文件放入一个字符串中,用;

分隔

在网络服务中,我首先拆分字符串,然后从 base64 解码。