tomee-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Romain Manni-Bucau <rmannibu...@gmail.com>
Subject Re: openEJB fail on second test
Date Wed, 22 Feb 2012 20:53:33 GMT
Did you check in the ejb the size of the list?

Note: as keyword is useless i think

Le 22 févr. 2012 21:45, "amber" <amber63@hotmail.fr> a écrit :

> Romain, thanks for your advices :)
>
> Of course if I remove the transaction code I have to use the entity manager
> from the EJB and not the one remains in the test class ^^ (I should have
> delete it..)
>
> Anyway the code is working now and I even tried to move it to a Web
> Service.
> works fine..except one thing : after the delete, the final assertion failed
> (null pointer) I don't know why ?
>
> Here the code :
>
> *The movie :*
>
> @Entity
> public class Movie {
>
>
>        @Id
>    @GeneratedValue
>    private long id;
>
> ....
>
>
> *The movies *
> @Stateless
> @TransactionAttribute(TransactionAttributeType.REQUIRED)
> @WebService(endpointInterface = "org.superbiz.altdd.IMoviesWS", serviceName
> = "MoviesWebService", targetNamespace = "http://superbiz.org/wsdl")
> public class Movies implements IMoviesWS {
>
>        @PersistenceContext(unitName = "movie-unit", type =
> PersistenceContextType.TRANSACTION)
>        private EntityManager entityManager;
>
>        public void addMovie(Movie movie) throws Exception {
>                entityManager.persist(movie);
>        }
>
>        public void deleteMovie(Movie movie) throws Exception {
>                entityManager.remove(entityManager.find(Movie.class,
> movie.getId()));
>        }
>
>
>        @SuppressWarnings("unchecked")
>        public List<Movie> getMovies() throws Exception {
>                Query query = entityManager.createQuery("SELECT m from
> Movie as m");
>                return query.getResultList();
>        }
> }
>
>
> *The interface of the WS :*
>
> @WebService(name = "IMoviesWS", targetNamespace =
> "http://superbiz.org/wsdl")
> public interface IMoviesWS {
>
>
>        void addMovie(Movie movie) throws Exception;
>
>        void deleteMovie(Movie movie) throws Exception;
>
>        List<Movie> getMovies() throws Exception;
> }
>
> *And the test :*
>
> @LocalClient
> public class MoviesTest extends TestCase {
>
>        @WebServiceRef(wsdlLocation = "http://127.0.0.1:4204/Movies?wsdl")
>        private IMoviesWS movies;
>
>        private InitialContext initialContext;
>
>        public void setUp() throws Exception {
>
>                Properties properties = new Properties();
>                properties.put("movieDatabase",
> "new://Resource?type=DataSource");
>                properties.put("movieDatabase.JdbcDriver",
> "org.hsqldb.jdbcDriver");
>                properties.put("movieDatabase.JdbcUrl",
> "jdbc:hsqldb:mem:moviedb");
>
>                properties.setProperty(Context.INITIAL_CONTEXT_FACTORY,
>
>  "org.apache.openejb.core.LocalInitialContextFactory");
>                properties.setProperty("openejb.embedded.remotable",
> "true");
>
>                initialContext = new InitialContext(properties);
>                initialContext.bind("inject", this);
>        }
>
>        public void test() throws Exception {
>                movies.addMovie(new Movie("Quentin Tarantino", "Reservoir
> Dogs", 1992));
>                movies.addMovie(new Movie("Joel Coen", "Fargo", 1996));
>                movies.addMovie(new Movie("Joel Coen", "The Big Lebowski",
> 1998));
>
>                List<Movie> list = movies.getMovies();
>                assertEquals("List.size()", 3, list.size());
>                for (Movie movie : list) {
>                        movies.deleteMovie(movie);
>                }
>                /*// do a null pointer exception why?*/
>                // assertEquals("Movies.getMovies()", 0,
> movies.getMovies().size());
>        }
>
>        public void testWS() throws Exception {
>                Service movieService = Service.create(new URL(
>                                "http://127.0.0.1:4204/Movies?wsdl"), new
> QName(
>                                "http://superbiz.org/wsdl",
> "MoviesWebService"));
>                assertNotNull(movieService);
>
>                IMoviesWS mv = movieService.getPort(IMoviesWS.class);
>                mv.addMovie(new Movie("Quentin Tarantino", "Reservoir
> Dogs", 1992));
>                assertEquals("List.size()", 1, movies.getMovies().size());
>        }
> }
>
> thank you for your patience!
> And I hope this will help other noobs like me ))
>
> --
> View this message in context:
> http://openejb.979440.n4.nabble.com/openEJB-fail-on-second-test-tp4401889p4411703.html
> Sent from the OpenEJB User mailing list archive at Nabble.com.
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message