tomar porque leche lacteos eliminar desintoxicacion dejar consumir consecuencias beneficios adelgaza web-services java-ee jaxb

web services - porque - Esto causarĂ¡ XML infinitamente profundo



no consumir lacteos adelgaza? (2)

Por defecto, un JAXB impl tratará pares de métodos de propiedades públicas (get / set) como mapeados. Si desea anotar el campo, debe poner @XmlAccessorType( XmlAccessType.FIELD) en su clase.

Si usa EclipseLink JAXB (MOXy) como su proveedor JAXB (JSR-222) (soy el MOXy), puede usar la extensión @XmlInverseReference .

Recibí este error, ¿alguien puede ayudarme, por favor?

javax.xml.ws.WebServiceException: javax.xml.bind.MarshalException - con excepción vinculada: [com.sun.istack.internal.SAXException2: Se detecta un ciclo en el gráfico de objetos. Esto causará un XML infinitamente profundo: tn.bh.jpa.Compte@1144c75 -> tn.bh.jpa.Mouvement_Compte@1f4eccd -> tn.bh.jpa.Compte@1144c75] at com.sun.xml.internal.ws. message.jaxb.JAXBMessage.writePayloadTo (Fuente desconocida) en com.sun.xml.internal.ws.message.AbstractMessageImpl.writeTo (Fuente desconocida) en com.sun.xml.internal.ws.encoding.StreamSOAPCodec.encode (Fuente desconocida ) en com.sun.xml.internal.ws.encoding.SOAPBindingCodec.encode (origen desconocido) en com.sun.xml.internal.ws.transport.http.HttpAdapter.encodePacket (origen desconocido) en com.sun.xml. internal.ws.transport.http.HttpAdapter.access $ 100 (origen desconocido) en com.sun.xml.internal.ws.transport.http.HttpAdapter $ HttpToolkit.handle (origen desconocido) en com.sun.xml.internal.ws .transport.http.HttpAdapter.handle (Fuente desconocida) en com.sun.xml.internal.ws.transport.http.server.WSHttpHandler.handleExchange (Fuente desconocida) en com.sun.xml.internal.ws.transport.http .server.WSHttpHandler.handle (Fuente desconocida) en com.sun.net.httpserver.Filter $ Chain.doFilter ( Fuente Desconocida) en sun.net.httpserver.AuthFilter.doFilter (Fuente Desconocida) en com.sun.net.httpserver.Filter $ Chain.doFilter (Fuente Desconocida) en sun.net.httpserver.ServerImpl $ Exchange $ LinkHandler.handle ( Fuente Desconocida) en com.sun.net.httpserver.Filter $ Chain.doFilter (Fuente Desconocida) en sun.net.httpserver.ServerImpl $ Exchange.run (Fuente Desconocida) en java.util.concurrent.ThreadPoolExecutor.runWorker (Fuente Desconocida ) en java.util.concurrent.ThreadPoolExecutor $ Worker.run (Fuente desconocida) en java.lang.Thread.run (Fuente desconocida) Causado por: javax.xml.bind.MarshalException - con excepción vinculada: [com.sun.istack .internal.SAXException2: Se detecta un ciclo en el gráfico de objetos. Esto causará XML infinitamente profundo: tn.bh.jpa.Compte@1144c75 -> tn.bh.jpa.Mouvement_Compte@1f4eccd -> tn.bh.jpa.Compte@1144c75] at com.sun.xml.internal.bind. v2.runtime.MarshallerImpl.write (Fuente desconocida) en com.sun.xml.internal.bind.v2.runtime.BridgeImpl.marshal (Fuente desconocida) en com.sun.xml.internal.bind.api.Bridge.marshal ( Fuente desconocida) ... 19 más Causado por: com.sun.istack.internal.SAXException2: Se detecta un ciclo en el gráfico de objetos. Esto causará XML infinitamente profundo: tn.bh.jpa.Compte@1144c75 -> tn.bh.jpa.Mouvement_Compte@1f4eccd -> tn.bh.jpa.Compte@1144c75 en com.sun.xml.internal.bind.v2 .runtime.XMLSerializer.reportError (origen desconocido) en com.sun.xml.internal.bind.v2.runtime.XMLSerializer.pushObject (origen desconocido) en com.sun.xml.internal.bind.v2.runtime.XMLSerializer.childAsXsiType (Fuente desconocida) en com.sun.xml.internal.bind.v2.runtime.property.SingleElementNodeProperty.serializeBody (Fuente desconocida) en com.sun.xml.internal.bind.v2.runtime.ClassBeanInfoImpl.serializeBody (Fuente desconocida) en com.sun.xml.internal.bind.v2.runtime.XMLSerializer.childAsXsiType (origen desconocido) en com.sun.xml.internal.bind.v2.runtime.property.ArrayElementNodeProperty.serializeItem (origen desconocido) en com.sun .xml.internal.bind.v2.runtime.property.ArrayElementProperty.serializeListBody (origen desconocido) en com.sun.xml.internal.bind.v2.runtime.property.ArrayERProperty.serializeBody (origen desconocido) en com.sun.xml .internal.bind.v2.runtime.Cla ssBeanInfoImpl.serializeBody (origen desconocido) en com.sun.xml.internal.bind.v2.runtime.XMLSerializer.childAsXsiType (origen desconocido) en com.sun.xml.internal.bind.v2.runtime.property.ArrayElementNodeProperty.serializeItem ( Origen desconocido) en com.sun.xml.internal.bind.v2.runtime.property.ArrayElementProperty.serializeListBody (origen desconocido) en com.sun.xml.internal.bind.v2.runtime.property.ArrayERProperty.serializeBody (origen desconocido ) en com.sun.xml.internal.bind.v2.runtime.ClassBeanInfoImpl.serializeBody (origen desconocido) en com.sun.xml.internal.bind.v2.runtime.XMLSerializer.childAsXsiType (origen desconocido) ... 22 más

tn.bh.jpa.Compte

@Entity @Table(name="compte") public class Compte { @Id @Column(name="compte_rib") private Integer rib; @ManyToOne(cascade={CascadeType.PERSIST, CascadeType.MERGE}) @JoinColumn(name="compte_utilisateurIdentifiant") @XmlTransient private User user; @Column(name="compte_libelle") private String libelle; @OneToMany(mappedBy="compte") private List<Solde> soldeList; @Column(name="compte_dateCreation", nullable=false) private String dateCréation; @Column(name="compte_dateMaj", nullable=false) private String dateMaj; @Column(name="compte_typeDevise", nullable=false) private Integer typeDevise; @Column(name="compte_situationCompte", nullable=false) private Integer situationCompte; @OneToMany(fetch = FetchType.EAGER, mappedBy="compte2") @XmlTransient private List<Mouvement_Compte> mvtList; @ManyToMany(cascade = {CascadeType.ALL}, mappedBy = "comptes", targetEntity = Virement.class) private List<Virement> virementList; public Compte(){} public Compte(Integer rib, String libelle, String dateCréation, String dateMaj, Integer typeDevise, Integer situationCompte) { this.rib = rib; this.libelle = libelle; this.dateCréation = dateCréation; this.dateMaj = dateMaj; this.typeDevise = typeDevise; this.situationCompte = situationCompte; } public boolean equals(Compte c){ boolean returnValue = true; if ((!this.rib.equals(c.getRib())) || (!this.dateCréation.equals(c.getDateCréation())) || (!this.dateMaj.equals(c.getDateMaj())) || (!this.typeDevise.equals(c.getTypeDevise())) || (!this.situationCompte.equals(c.getSituationCompte()))) returnValue = false; return returnValue; } public String toString(Compte c){ return "[Rib] : " + c.getRib() + " [Libelle] : " + c.getLibelle() + " [String création] : " + c.getDateCréation() + " [String mise-à-jour] : " + c.getDateMaj() + " [Type devise] : " + c.getTypeDevise() + " [Situation compte] : " + c.getSituationCompte(); } public Integer getRib() { return rib; } public void setRib(Integer rib) { this.rib = rib; } public String getLibelle() { return libelle; } public void setLibelle(String libelle) { this.libelle = libelle; } public String getDateCréation() { return dateCréation; } public void setDateCréation(String dateCréation) { this.dateCréation = dateCréation; } public String getDateMaj() { return dateMaj; } public void setDateMaj(String dateMaj) { this.dateMaj = dateMaj; } public Integer getTypeDevise() { return typeDevise; } public void setTypeDevise(Integer typeDevise) { this.typeDevise = typeDevise; } public Integer getSituationCompte() { return situationCompte; } public void setSituationCompte(Integer situationCompte) { this.situationCompte = situationCompte; } public List<Solde> getSoldeList() { return soldeList; } public void setSoldeList(List<Solde> soldeList) { this.soldeList = soldeList; } public User getUser() { return user; } public void setUser(User user) { this.user = user; } public List<Mouvement_Compte> getMvtList() { return mvtList; } public void setMvtList(List<Mouvement_Compte> mvtList) { this.mvtList = mvtList; } public List<Virement> getVirementList() { return virementList; } public void setVirementList(List<Virement> virementList) { this.virementList = virementList; } }

tn.bh.jpa.Mouvement_compte

@Entity @Table(name="mouvement_compte") public class Mouvement_Compte { @Id @GeneratedValue(strategy=GenerationType.AUTO) @Column(name="mouvement_compte_id") private Integer id; @ManyToOne(cascade={CascadeType.PERSIST, CascadeType.MERGE}) @JoinColumn(name="mouvement_compte_compteRib") @XmlTransient private Compte compte2; @Column(name="mouvement_compte_cod_op", nullable=false) private String cod_op; @Column(name="mouvement_compte_dat_mvt", nullable=false) private String dat_mvt; @Column(name="mouvement_compte_mnt_mvt", nullable=false) private Double mnt_mvt; @Column(name="mouvement_compte_sens_mvt", nullable=false) private char sens_mvt; @Column(name="mouvement_compte_dat_journee", nullable=false) private String dat_journee; public Mouvement_Compte(){} public Mouvement_Compte(String cod_op, String dat_mvt, Double mnt_mvt, char sens_mvt, String dat_journee) { this.cod_op = cod_op; this.dat_mvt = dat_mvt; this.mnt_mvt = mnt_mvt; this.sens_mvt = sens_mvt; this.dat_journee = dat_journee; } public boolean equals(Mouvement_Compte m){ boolean returnValue = true; if ((!this.id.equals(m.getId())) || (!this.cod_op.equals(m.getCod_op())) || (!this.dat_mvt.equals(m.getDat_mvt())) || (!this.mnt_mvt.equals(m.getMnt_mvt())) || ((this.sens_mvt != m.getSens_mvt())) || (!this.dat_journee.equals(m.getDat_journee()))) returnValue = false; return returnValue; } public String toString(Mouvement_Compte m){ return "[Id] : " + m.getCod_op() + " [Code opération] : " + m.getCod_op() + " [Date] : " + m.getDat_mvt() + " [Montant] : " + m.getMnt_mvt() + " [Sens] : " + m.getSens_mvt() + " [String journée] : " + m.getDat_journee(); } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getCod_op() { return cod_op; } public void setCod_op(String cod_op) { this.cod_op = cod_op; } public String getDat_mvt() { return dat_mvt; } public void setDat_mvt(String dat_mvt) { this.dat_mvt = dat_mvt; } public Double getMnt_mvt() { return mnt_mvt; } public void setMnt_mvt(Double mnt_mvt) { this.mnt_mvt = mnt_mvt; } public char getSens_mvt() { return sens_mvt; } public void setSens_mvt(char sens_mvt) { this.sens_mvt = sens_mvt; } public String getDat_journee() { return dat_journee; } public void setDat_journee(String dat_journee) { this.dat_journee = dat_journee; } public Compte getCompte() { return compte2; } public void setCompte(Compte compte) { this.compte2 = compte; } }

WebMethod

@WebMethod public List<Compte> consulterListeCpt(String id){ List<Compte> objects = null; try { s = HibernateUtils.getSession(); Transaction tx = s.beginTransaction(); Query query = s.createQuery("from Compte where compte_utilisateuridentifiant = :y"); query.setString("y", id); objects = query.list(); tx.commit(); } catch (HibernateException e) { System.out.println(e.getMessage()); } finally { s.close(); } for (Compte c: objects) System.out.println("[rib] = " + c.getRib() + "/t" + "[title] = " + c.getLibelle() + "/t" + "[dateC] = " + c.getDateCréation() + "/t"); return objects; }

Clase principal del cliente

public class Client { public static void main(String[] args){ ServiceService service = new ServiceService(); tn.bh.services.client.Service srvc = service.getServicePort(); List<Compte> response = srvc.consulterListeCpt("id"); }


Mueva el @XmlTransient al método get de la clase que usa la opción mappedBy (el lado inverso de la relación).