Problema con Webservices

cancel
Showing results for 
Search instead for 
Did you mean: 
cybermakoki
Member II

Problema con Webservices

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 Smiley Happy
1 Reply
cybermakoki
Member II

Re: Problema con Webservices

Ya he solucionado esto, por si a alguien le interesa os dejo el link con la solución…

http://balusc.blogspot.com/2007/03/post-redirect-get-pattern.html