Bonjour,

J'obtiens ce message d'erreur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
java.lang.IllegalStateException: getMessageContext cannot be called in BUSINESS
lorsque je fais un
Code : Sélectionner tout - Visualiser dans une fenêtre à part
SOAPMessageContext mc=(SOAPMessageContext) sessionContext.getMessageContext();
Si ça peut aider:
.l'application tourne sur un TomEE 1.6 (utilisant OpenEJB pour les EJB il me semble)
.la classe concernée:
package synchro;

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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
import java.io.InputStream;

import javax.annotation.Resource;
import javax.ejb.SessionContext;
import javax.ejb.Stateless;
import javax.xml.rpc.handler.soap.SOAPMessageContext;
import javax.xml.soap.AttachmentPart;
import javax.xml.soap.SOAPMessage;

@Stateless(mappedName="ejb/SynchroEjb")
public class SynchroEjb implements SynchroRemote {
	
  @Resource
  private SessionContext sessionContext;

  public SynchroEjb() {}
	
  @Override
  public void direBonjour(String aQui){
    System.out.println("Bonjour " + aQui)
  }
	
  @Override
  public String returnBonjour(String aQui){
    return "Bonjour " + aQui;
  }
	
  @Override
  public int synchroUp(String siren, int numPoste, String password, String version) {
    int obj=0;
    try {
      // Récupération de la pièce jointe
      SOAPMessageContext mc=(SOAPMessageContext)sessionContext.getMessageContext();
      SOAPMessage msg=mc.getMessage();
      java.util.Iterator it=msg.getAttachments();
      
      [...]

    }
    catch (Exception e) {
      if (e instanceof BadVersionException) return -3;
        e.printStackTrace();
	return -1;
      }
      return obj;
    }
  }
}
Merci pour votre aide.