Download de arquivo usando Struts 2

Estou iniciando agora em Struts 2, dando manutenção e estou com problema para fazer download de arquivo carregado do banco de dados.

Código da Página:

Função baixarArquivoAnexo:

O link do arqiuvo aparece na página, só que ao clicar ocorre erro de NullPointer

Pesquisei bastante e achei muitos tutoriais de fazer upload, e 1 pra fazer download usando o Request and Response e usando download do Struts 1.
Se alguém souber resolver isso pelo struts 2 eu agradeço. Ou se não tem jeito mesmo e tenho que criar uma Access Request.

Obrigado

Consegui resolver o problema (não consigo criar uma resposta, sempre fica pedindo login).

Na action que tem o evento de baixar arquivo criei atributos de response e request, implementado de ServletRequestAware, ServletResponseAware.
Dai usei o response para enviar o arquivo para download. segue o código:

import org.apache.struts2.interceptor.ServletRequestAware;
import org.apache.struts2.interceptor.ServletResponseAware;

public class AnexoAction extends DocumentoAction implements ServletRequestAware, ServletResponseAware {

// Código para pegar Request e response
private HttpServletRequest request;

private HttpServletResponse response;

public void setServletRequest(HttpServletRequest request) {
	this.request = request;
}

public HttpServletRequest getServletRequest() {
	return request;
}

public void setServletResponse(HttpServletResponse response) {
	this.response = response;
}

public HttpServletResponse getServletResponse() {
	return response;
}

    public void baixarArquivoAnexo() {
	Anexo anexo = (Anexo) getDao().findById(Anexo.class, getId());
	this.getServletResponse().setContentType("application/octet-stream");
	this.getServletResponse().setHeader("Content-Disposition", "attachment; filename=" + anexo.getNomeArquivoAnexo());
	try {
		this.getServletResponse().getOutputStream().write(anexo.getBytesArquivoAnexo());
		this.getServletResponse().getOutputStream().flush();
	} catch (Exception e) {
		System.out.println("Operação cancelada pelo usuário!");
	}
	return;
}

}

kra já fiz download com jsp sem Struts. serve? e se der pra me ajudar a fazer upload com Struts 2 agradeço tipo se der pra me enviar um exemplo seria muito bom. Ai posso testar download com Struts, ah se servir um exemplo com donwload com Servlet é só avisar que te envio.

Esqueleto

no meu caso continua dando NullPointer…???

resolvido agora esta funcionado. Precisei apenas dar um refresh no projeto juntamente com um Clean.

Você poderia me explicar como funciona a parte citada encima.

Estou com problemas em fazer o download o upload está fazendo normal só que para fazer o download estou com um puoco de problema você poderia me ajudar?
Segue o meu código

JSP

<s:iterator value="anexos">
                      <tr>	
				<td><s:property value="name" /></td>
				<td>
					<s:url id="removeDocumento" action="anexar!doDelete" namespace="/view">
						<s:param name="id" value="id"/>
						<s:param name="documentoId" value="documentoId"/>
						<s:param name="key" value="subCategoriaId" />
					</s:url>
					<s:a href="%{removeDocumento}">Excluir</s:a>
					|
					<s:url id="downloadDocumento" action="anexar!download" namespace="/view">
						<s:param name="id" value="id"/>
					</s:url>
					<s:a href="%{downloadDocumento}">Download</s:a>
					</td>
				</tr>
</s:iterator>

Action

[code]public String download() throws ServletException, IOException
{
this.setAnexo(anexoService.getAnexo(requestParam.get(“id”)[0]));

	return "download";
}[/code]

Struts

<action name="anexar" class="br.com.porto.col.portlet.view.AnexoAction"> <result name="success">/WEB-INF/view/gerencial/anexarDocumento.jsp</result> <result name="edit">/WEB-INF/view/gerencial/editDocumento.jsp</result> <result name="download" type="stream"> <param name="contentDisposition">${myContentDisposition}</param> <param name="inputName">myInputStream</param> <param name="contentType">image/jpeg</param> </result> </action>

Estou precisando muito disso já faz uma semana que eu estou travado nisso por favor me ajude!!!

Também estou com dificuldades em fazer o download de um arquivo .

http://www.guj.com.br/posts/list/131361.java#711055

Como resolveu o problema ?