Recuperando um arquivo inserido no banco de dados

Pessoa eu estou fazendo um portlet utilizando, JPA+Spring+ Struts 2
Eu preciso fazer um cadastro para documentos, esse documento pode ter uma descrição e um ou mais arquivos em anexo.
Eu consegui fazer o arquivo ser inserido no banco utilizando o FileUpload da apache, porém não estou conseguindo resgata-lo e fazer o download da aplicação para o meu computador ou client.
Segue o que estou fazendo.

Struts.xml

<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>

Action


public String download() throws ServletException, IOException
{
	this.setAnexo(anexoService.getAnexo(requestParam.get("id")[0]));
	
	return "download";
}

JSP


<%@taglib prefix="s" uri="/struts-tags"%>

<table width="80%" align="center">
	<tr>
		<td colspan="2"><h2>Gerenciador de Anexos</h2></td>
	</tr>
	<tr><td><span style="coloer: red;"></span><s:actionerror /></spam></td></tr>
	<tr><td><hr size="2"/></td></tr>
	<tr><td> </td></tr>
	<tr>
		<td>
			Incluir anexo para o documento <s:property value="nome"/>

			<s:form name="anexarDocumento" action="anexar!doAdd" enctype="multipart/form-data" portletMode="view" method="post" theme="simple">
				<input type="hidden" name="key" id="key" value="<s:property value='subCategoriaId' />" />
				<input type="hidden" name="documentoId" id="documentoId" value="<s:property value='documentoId' />" />

				<table>
					<tr>
						<td>Título:</td>
						<td><s:textfield name="titulo" id="titulo" /></td>
					</tr>
					<tr>
						<td>Arquivo:</td>
						<td><s:file name="file" id="file" /></td>
					</tr>
					<tr>
						<td><s:submit value="Anexar"/></td>
					</tr>
				</table>
			</s:form>
		</td>
	</tr>
</table>

<table width="80%" align="center">
	<tr>
		<td><hr size="2"/></td>
	</tr>
	<tr>
		&lt;td&gt;<b>Lista de Anexos</b>&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt;
			&lt;s:if test="anexos.size() &gt; 0"&gt;
				&lt;table width="100%"&gt;
					&lt;tr&gt;
						&lt;td&gt;<b>T&iacute;tulo</b>&lt;/td&gt;
						&lt;td&gt;<b>A&ccedil;&atilde;o</b>&lt;/td&gt;
					&lt;/tr&gt;
					&lt;s:iterator value="anexos"&gt;
						&lt;tr&gt;	
							&lt;td&gt;&lt;s:property value="name" /&gt;&lt;/td&gt;
							&lt;td&gt;
								&lt;s:url id="removeDocumento" action="anexar!doDelete" namespace="/view"&gt;
									&lt;s:param name="id" value="id"/&gt;
									&lt;s:param name="documentoId" value="documentoId"/&gt;
									&lt;s:param name="key" value="subCategoriaId" /&gt;
								&lt;/s:url&gt;
								&lt;s:a href="%{removeDocumento}"&gt;Excluir&lt;/s:a&gt;
								|
								&lt;s:url id="downloadDocumento" action="anexar!download" namespace="/view"&gt;
									&lt;s:param name="id" value="id"/&gt;
								&lt;/s:url&gt;
								&lt;s:a href="%{downloadDocumento}"&gt;Download&lt;/s:a&gt;
							&lt;/td&gt;
						&lt;/tr&gt;
					&lt;/s:iterator&gt;
				&lt;/table&gt;
			&lt;/s:if&gt;
		&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt;
			&lt;s:url id="back" action="documento!doEdit" namespace="/viewGerencial"&gt;
				&lt;s:param name="documentoId" value="documentoId"/&gt;
				&lt;s:param name="key" value="subCategoriaId" /&gt;
			&lt;/s:url&gt; 
			&lt;s:a href="%{back}"&gt;Voltar&lt;/s:a&gt;
		&lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;


Já faz 3 dias que estou tentando desvendar este mistério e preciso muito disso, por favor me ajudem…

VLW!!!

[]'s

Você tem que disponibilizar o inputStream para ele retornar.

Pessoa Estou precisando de Ajuda ninguém tem uma luz.
A solução dada eu já estou fazendo mas não tenho uma solução ainda.
Eu preciso passar uma url mas como eu estou usando portlet fica ccomplicado