Ich habe eine Methode für eine Aktionsschaltfläche in JSF in der Backing-Bean definiert. Ich verwende Hibernate als ORM. Ich kann die neuen Daten speichern. Aber wenn ich versuche, die gleichen Daten zu aktualisieren, wird eine Transaktion Rollback AusnahmeSpring @Transaction Rollback nach Abschluss einer Aktionsmethode
geworfenjavax.faces.FacesException: #{itemModificationBean.saveData('0','IM')}: org.springframework.transaction.UnexpectedRollbackException: Transaction rolled back because it has been marked as rollback-only
at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:118)
at javax.faces.component.UICommand.broadcast(UICommand.java:315)
at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:790)
at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1282)
at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:198)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:646)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:98)
at
Ich habe keine Schnittstelle für das Verfahren implementiert, und es wird in dem Träger Bean selbst genannt und definiert.
Gibt es eine Möglichkeit, um herauszufinden, was schief läuft? ....
Jede Hilfe
würde geschätztLassen Sie mich wissen, ob weitere Details benötigt werden, mehr zu diesem Thema zu erarbeiten
Backing Bean
ItemBackingBean Aktionsmethode
@Transactional(readOnly=false, propagation=Propagation.REQUIRED)
public String saveData(String action, String app) throws WFException {
setSaveOrSubmitStatus(action);
setCurrentApp(app);
//DB operations
.
.
.
.
.
return requestNo
}
Die Komponente
<p:commandButton value="#{msg.save}" type="submit" id="modifySav"
process="@form @this"
action="#{itemModificationBean.saveData('0','IM')}"
rendered="#{itemAttributeBean.getRenderedValue('modifySav')}"
update="@([id$=form]) @([id$=collectionTab]) @([id$=itemRequestDetailsGrid]) @([id$=saveDialogItemMod])"
style="float:right;" />
Haben Sie Java-Code? –
Es ist eine ziemlich große Methode als ein Legacy-Code. So habe ich die wesentlichen Teile hinzugefügt – sandeepsharat
Können Sie die vollständige Implementierung von Backing Bean einschließen? Kannst du auch die Ausnahme in der BackingBean abfangen und den StackTrace ausdrucken und das auch aufnehmen? Scheinbar scheint das Update fehlzuschlagen. Können Sie auch die Definition des Ruhezustands mit einbeziehen? – yaswanth