Erreur "NullPointerException" liée à HttpServletResponse
salut,
mon but est d'avoir comment ouvrit un document depuis mon application
web
mon code jsp est le suivant :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124
| <div id="pieces" class="baliseDiv">
<fieldset style="padding: 5px 10px 5px 10px;">
<legend align="top">
<util:message key="operateur.section.pieces.title" />
</legend>
<grid:view name="PieceRattacheList_view">
<grid:search position="top" align="right" width="200"
iconClass="icon-zoom" />
<grid:actionsbar>
<grid:action id="pieceRattacheList_add" type="button"
textkey="operateur.list.pieceRattacheList.action.pieceRattacheList_add.title"
tooltipkey="operateur.list.pieceRattacheList.action.pieceRattacheList_add.description"
iconClass="icon-form-add" onclick="action_pieceRattacheList_add" />
<grid:action id="pieceRattacheList_add_Split" type="splitbar" />
</grid:actionsbar>
<grid:pagingbar pageSize="10" displayInfo="true">
</grid:pagingbar>
<grid:table name="PieceRattacheList_Tab" list="pieceRattacheList"
titlekey="operateur.list.pieceRattacheList.title"
formbean="DossierJuridiquePortletBean" recordForm="false"
clicksToEdit="1" collapsible="true" closable="true" render="true">
<grid:repository id="pieceRattacheList.pieceRattacheList"
classpath="com.dq.foprodex.web.repository.DossierJuridiqueRepository" />
<grid:record id="attachementEntity" idProperty="id"
defaultSortColumn="nomfrPiece" defaultSortDir="ASC"
title="Enregistrement" columnCount="2"
iconClass="icon-edit-record"
recordClass="com.dq.foprodex.web.entity.AttachementEntity"
windowmodal="false">
<grid:property name="id" type="String" />
<grid:property name="idElement" type="String" />
<grid:property name="idTable" type="String" />
<grid:property name="idGuid" type="String" />
<grid:property name="nomfrPiece" type="String" />
<grid:property name="nomarPiece" type="String" />
<grid:property name="etat" type="String" />
<grid:property name="fo" type="String" />
<grid:property name="df" type="String" />
<grid:property name="agBack" type="String" />
<grid:property name="respBack" type="String" />
<grid:property name="pdg" type="String" />
<grid:property name="idType" type="String" />
<grid:property name="libType" type="String" />
<grid:property name="respRattach" type="String" />
<grid:property name="dateRattach" type="String" />
<grid:property name="nbreRappel" type="Integer" />
<grid:property name="dateDernRappel" type="String" />
<grid:property name="dateDemComp" type="String" />
<grid:property name="dateDepotComp" type="String" />
<grid:property name="idAvis" type="String" />
<grid:property name="libAvis" type="String" />
<grid:property name="comm" type="String" />
<grid:property name="app" type="String" />
<grid:property name="dateApp" type="String" />
<grid:property name="avisColumn" type="String" />
<grid:property name="motif" type="String" />
<grid:property name="rattachement" type="String" />
<grid:property name="actiondocumentdiffuser" type="String" />
<grid:property name="form" />
</grid:record>
<grid:column property="nomfrPiece"
titlekey="operateur.list.pieceRattacheList.column.nomfrPiece.title"
sortable="true" resizable="true" menuDisabled="false" width="20">
</grid:column>
<grid:column property="rattachement"
titlekey="operateur.list.pieceRattacheList.column.rattachement.title"
sortable="true" resizable="true" menuDisabled="false" width="40">
</grid:column>
<grid:column property="respRattach"
titlekey="operateur.list.pieceRattacheList.column.respRattach.title"
sortable="true" resizable="true" menuDisabled="false" width="40">
</grid:column>
<grid:column property="dateRattach"
titlekey="operateur.list.pieceRattacheList.column.dateRattach.title"
sortable="true" resizable="true" menuDisabled="false" width="40">
</grid:column>
<grid:column property="nbreRappel"
titlekey="operateur.list.pieceRattacheList.column.nbreRappel.title"
sortable="true" resizable="true" menuDisabled="false" width="40">
</grid:column>
<grid:column property="dateDernRappel"
titlekey="operateur.list.pieceRattacheList.column.dateDernRappel.title"
sortable="true" resizable="true" menuDisabled="false" width="40">
</grid:column>
<grid:column property="etat"
titlekey="operateur.list.pieceRattacheList.column.etat.title"
sortable="true" resizable="true" menuDisabled="false" width="40">
</grid:column>
<grid:column property="comm"
titlekey="operateur.list.pieceRattacheList.column.comm.title"
sortable="true" resizable="true" menuDisabled="false" width="40">
</grid:column>
<grid:column property="rowaction2" width="5">
<grid:rowaction id="piece"
tooltipkey="operateur.list.pieceRattacheList.action.pieceRattacheList_update1.title"
iconClass="icon-form-key1"
onclick="action_consultDoc"/>
</grid:column>
</grid:table>
</grid:view>
<br>
</fieldset>
</div>
<script type="text/javascript">
function action_consultDoc(grid, record, row, col) {
operateurService.consultDocService(Ext.getCmp('userId').getValue(),record.get('id'), {
callback : function(responseEntity) {
}
});
}
</script> |
code java :
la fonction consultDocService dans operationService est :
Code:
1 2 3 4 5 6 7 8 9
| public void consultDoc(String userid, String id) {
DossierJuridiqueManager dossierJuridiqueManager = (DossierJuridiqueManager) PortalUtil.getBean(DossierJuridiqueManager.managerid);
try {
dossierJuridiqueManager.consultDoc(null,null, userid, id);
} catch (Exception e) {
e.printStackTrace();
}
} |
la fonction consultDoc dans dossierJuridiqueManager est :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
| public ResponseEntity consultDoc(HttpServletRequest request, HttpServletResponse response,String userid,
String id) throws Exception {
System.out.println("the ids"+id);
List<AttachementEntity> attachements = attachementDAO.getAttachementList(id);
AttachementEntity attachementEntity=new AttachementEntity();
attachementEntity=attachements.get(0);
String guid=attachementEntity.getIdGuid();
P8Connector connector = new P8Connector(TypeEnum.CE.value(),
"gcd admin","C:/properties/");
System.out.println("verif " + connector.getConnection());
GetDocumentsListInFolder getDocumentsListInFolder = new GetDocumentsListInFolder();
List<Document> list = new ArrayList<Document>();
list = getDocumentsListInFolder.execute(connector,
"/chemin", "1");
int length = 0;
ServletOutputStream op = response.getOutputStream();
for (int i = 0; i < list.size(); i++) {
Document doc = (Document) list.get(i);
String h=doc.get_Id().toString();
if(h.equals(guid))
{
GetDocumentContent c = new GetDocumentContent();
byte[] is1 = c.execute(connector, doc);
byte[] bbuf = new byte[1024];
InputStream is3 = new ByteArrayInputStream(is1);
DataInputStream in = new DataInputStream(is3);
while ((in != null) && ((length = in.read(bbuf)) != -1)) {
op.write(bbuf, 0, length);
}
in.close();
op.flush();
op.close();
}
}
return new ResponseEntity();
} |
mais lors de test j'ai l'erreur suivate :
Code:
1 2 3 4 5 6
|
java.lang.NullPointerException
at com.dq.foprodex.web.manager.impl.DossierJuridiqueManagerImpl.consultDoc(DossierJuridiqueManagerImpl.java:2195)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) |
l'erreur lié à cette ligne :
Code:
ServletOutputStream op = response.getOutputStream();
en faite response est null grace à ce code :
Code:
dossierJuridiqueManager.consultDoc(null,null, userid, id);
mais je n'arrive pas à savoir comment remplir response
je pense que je dois le remplir dans la page jsp
merci d'avance