Appel d'un EJB dans un JAXBContext
Bonjour,
C'est mon premier post!...
Je cherche à obtenir un document XML qui représente les champs d'un entity dans une application cliente.
J'ai:
-un Entity Bean: BwfXml.java annoté en JAXB
-des sessions Beans DAO CRUD générés par netbeans
-un session Bean Métier que je souhaite utiliser chez le client.
Pour l'instant, ce qui fonctionne, c'est d'utiliser directement l'entity manager dans le bean métier:
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
|
@Stateless
public class MetaDB implements MetaDBRemote {
StringWriter writer = new StringWriter();
EntityManagerFactory emf=Persistence.createEntityManagerFactory("MetaBWFEJB-ejbPU");
EntityManager em=emf.createEntityManager();
@Override
public String getFullIxml(int bwfID) {
try {
JAXBContext jc = JAXBContext.newInstance(BwfXml.class);
Marshaller marshaller = jc.createMarshaller();
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT,true);
BwfXml bwfxml = em.find(BwfXml.class,bwfID);
marshaller.marshal(bwfxml, writer);
}
catch (JAXBException ex) {
Logger.getLogger(MetaDB.class.getName()).log(Level.SEVERE, null, ex);
}
return writer.toString();
} |
Je préfèrerais utiliser mon EJB DAO dans l'EJB métier.
Question: Que faut-il écrire à droite de JAXBContext jc =???
Pour l'instant, j'en suis là:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
@Stateless
public class MetaDB implements MetaDBRemote {
@EJB
private BwfXmlFacadeLocal bwfXmlFacade;
StringWriter writer = new StringWriter();
@Override
public String getFullIxml(int bwfID) {
try {
JAXBContext jc = JAXBContext.newInstance("BwfXmlFacadeLocal"); //Surement Faux!!
Marshaller marshaller = jc.createMarshaller();
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT,true);
BwfXml bwfxml = em.find(BwfXml.class,bwfID);
// marshaller.marshal(bwfxml, writer);
}
catch (JAXBException ex) {
Logger.getLogger(MetaDB.class.getName()).log(Level.SEVERE, null, ex);
}
return writer.toString();
} |
Merci si certains ont une idée!