I extended JMSTransportSupport and overrode processSOAPMessage() to get something to work
with Ejb3 MDBs.
For starters the the WebService is implements per usual as a SLSB. I am just using the MDB
as an alternate path in the WebService.
The MDB just defines the ObjectName for the real web service.
| @MessageDriven(activationConfig = {...})
| public class AuthorizationCallbackMDB extends MyJmsTransportSupport implements
| MessageListener {
| ObjectName getObjectName() {
| try {
| return new ObjectName(
|
"jboss.ws:context=payment-authorizer-0,endpoint=AuthorizationCallbackServiceMockBean");
| } catch (Exception e) {
| throw new RuntimeException(e);
| }
| }
| }
|
| public abstract class MyJmsTransportSupport extends JMSTransportSupport {
|
| private static final long serialVersionUID = 1L;
|
| abstract ObjectName getObjectName();
|
| protected SOAPMessage processSOAPMessage(String fromName,
| InputStream reqMessage) throws SOAPException, IOException,
| RemoteException {
| try {
| ServiceEndpointManagerFactory factory = ServiceEndpointManagerFactory
| .getInstance();
| ServiceEndpointManager epManager = factory
| .getServiceEndpointManager();
| ServiceEndpoint sep = epManager
| .getServiceEndpointByID(getObjectName());
| return sep.handleRequest(null, null, reqMessage);
| } catch (BindingException ex) {
| throw new WSException("Cannot bind incomming soap message", ex);
| }
| }
| }
|
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3986246#...
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&a...