[jboss-user] [EJB 3.0] - Re: How to get SOAP message inside a EJB layer

Arno Werr do-not-reply at jboss.com
Thu Jul 27 07:26:32 EDT 2006


Here is my sample of accessing SOAP message body content - Cabin by EJB exposed as a web service

  | package com.bruno.net.ejb;
  | 
  | import javax.annotation.PostConstruct;
  | import javax.ejb.Stateless;
  | import javax.jws.Oneway;
  | import javax.jws.WebMethod;
  | import javax.jws.WebParam;
  | import javax.jws.WebResult;
  | import javax.jws.WebService;
  | import javax.persistence.EntityManager;
  | import javax.persistence.PersistenceContext;
  | import javax.xml.ws.WebServiceRef;
  | 
  | import org.apache.log4j.Logger;
  | 
  | import com.bruno.net.domain.Cabin;
  | 
  | @WebService(name = "TravelAgent", serviceName = "TravelAgentService")
  | @WebServiceRef(name = "service/TravelAgentService")
  | @Stateless
  | public class TravelAgentBean implements TravelAgentRemote {
  | 	private Logger logger;
  | 
  | 	@PersistenceContext(unitName = "titan")
  | 	private EntityManager manager;
  | 
  | 	@PostConstruct
  | 	public void postConstruct() {
  | 		logger = Logger.getLogger(getClass().getName());
  | 	}
  | 
  | 	@WebMethod
  | 	@Oneway
  | 	public void createCabin(@WebParam(name = "Cabin")
  | 	Cabin cabin) {
  | 		logger.debug("here is my cabin delivered by JAX-WS = " + cabin);
  | 		logger.debug("cabin name " + cabin.getName());
  | 		logger.debug("bed count " + cabin.getBedCount());
  | 		manager.persist(cabin);
  | 	}
  | 
  | 	@WebMethod
  | 	@WebResult(name = "Cabin")
  | 	public Cabin findCabin(@WebParam(name = "ID")
  | 	int pKey) {
  | 		return manager.find(Cabin.class, pKey);
  | 	}
  | }
  | 
If you need SOAP header you have to create and wire up a message handler to work with SAAJ.
Cheers,
Arno

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3961246#3961246

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3961246



More information about the jboss-user mailing list