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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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!