Hola a todos!Me he metido ahora a trabajar con webservices y tengo varios problemillas… El que más quebraderos de cabeza me está dando es el doble submit en las jsps.Os cuento un poco…Tengo una jsp que muestra contenido, muy parecida a la browse.jsp, por cada fila tengo varias acciones, entre ellas la de borrar, que borra el nodo y ya está…El problema es, que cuando ejecuto esa acción, si inmediatamente después, hago un F5, se me vuelve a ejecutar!! Ya se que el propio navegador envia de nuevo los datos del formulario y que te avisa de esto, pero en el webClient de alfresco tengo hecho lo mismo, y esto no ocurre… os pego la jsp y el metodo al que llamo por si se os ocurre algo…jsp:<h:form acceptcharset="UTF-8" id="form" >
<h:inputHidden value="#{MyBean.tam}" id="tam"/>
<h:dataTable id="contentList" value="#{MyBean.content}" binding="#{MyBean.dataTable}" var="r" width="100%" styleClass="recordSet"
rendered="#{not empty MyBean.content}">
<h:column>
<f:facet name="header">
<h:selectBooleanCheckbox id="checkCabecera" onclick="javascript:seleccionar(this.name);"/>
</f:facet>
<h:selectBooleanCheckbox id="checkboxes" value="#{MyBean.selectedIds[r.id]}" />
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="#{msg.observaciones}"/>
</f:facet>
<h:outputText value="#{r.observaciones}" />
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="#{msg.acciones}"/>
</f:facet>
<h:commandButton image="../images/delete.gif" onclick="enviar();" actionListener="#{MyBean.borrarPedido}" />
</h:column>
</h:dataTable>
</h:form> El método del MyBean.java: public void borrarPedido(ActionEvent event){
HttpServletRequest req = (HttpServletRequest)FacesContext.getCurrentInstance().getExternalContext().getRequest();
AuthenticationDetails details = (AuthenticationDetails)req.getSession().getAttribute("authenticationDetails");
RepositoryServiceSoapBindingStub repositoryService = WebServiceClient.getRepositoryService(details);
Pedido pedido = (Pedido)getDataTable().getRowData();
Reference nodeRef = new Reference(STORE, pedido.getId(), pedido.getPath());
Predicate predicate = new Predicate(new Reference[]{nodeRef}, null, null);
CMLDelete delete = new CMLDelete(predicate);
CML cml = new CML();
cml.setDelete(new CMLDelete[]{delete});
try {
repositoryService.update(cml);
} catch (RepositoryFault e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (RemoteException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// invoke some business logic here
}y el faces-config.xml
<faces-config>
<application>
<locale-config>
<default-locale>es_ES</default-locale>
<supported-locale>es_ES</supported-locale>
</locale-config>
<message-bundle>messages</message-bundle>
<!– <message-bundle>errors</message-bundle>–>
</application>
<managed-bean>
<managed-bean-name>LoginBean</managed-bean-name>
<managed-bean-class>beans.LoginBean</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
<managed-bean>
<managed-bean-name>MyBean</managed-bean-name>
<managed-bean-class>beans.ContentBean</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
<navigation-rule>
<from-view-id>/jsp/login.jsp</from-view-id>
<navigation-case>
<from-outcome>fail</from-outcome>
<to-view-id>/jsp/login.jsp</to-view-id>
<redirect />
</navigation-case>
<navigation-case>
<from-outcome>logout</from-outcome>
<to-view-id>/jsp/login.jsp</to-view-id>
<redirect />
</navigation-case>
<navigation-case>
<from-outcome>success</from-outcome>
<to-view-id>/jsp/tareas.jsp</to-view-id>
</navigation-case>
</navigation-rule>
</faces-config>
Gracias de antemano 