Bonjour,
J'obtiens ce message d'erreur
java.lang.IllegalStateException: getMessageContext cannot be called in BUSINESS
lorsque je fais un
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;
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.
Partager