tomee, openejb etc are filtered by default, it is configurable with exclusions.list (or a system property).
That's mainly to avoid to scan our internal jars Romain Manni-Bucau Twitter: @rmannibucau Blog: http://rmannibucau.wordpress.com/ LinkedIn: http://fr.linkedin.com/in/rmannibucau Github: https://github.com/rmannibucau 2014-05-22 9:42 GMT+02:00 Andy Gumbrecht <[email protected]>: > Why is that prefix filtered? Marius's project name seems quite valid. I > think we surely need to improve that, or at least display a really loud log > message. > > Andy. > > > On 22/05/2014 07:14, Romain Manni-Bucau wrote: > >> tomee- prefix is filtered, just rename your app/project >> Le 22 mai 2014 01:34, "Marius Kruger" <[email protected]> a écrit : >> >> hi again >>> >>> ok, I give up :S >>> >>> I'm trying run this simple REST test with embedded OpenEjb but I can bang >>> my head against the table and it just doesn't want to pick up my >>> @LocalClient and rest services. >>> I have other projects with similar code where it works sort of but I >>> can't >>> spot the difference. As you will see I tried everything :( >>> >>> git clone https://github.com/amanica/tomee-embedded-trial.git >>> >>> mvn clean test -Dtest=PingRSEmbeddedOpenEjbTest >>> >>> org.apache.openejb.OpenEjbContainer$NoModulesFoundException: No modules >>> found to deploy. >>> 1)Maybe descriptors are placed in incorrect location. >>> Descriptors could go under: >>> <base-dir>/META-INF or <base-dir>/WEB-INF >>> but not directly under <base-dir> >>> Check 'Application Discovery via the Classpath' docs page for more info >>> 2)Maybe no modules are present in the classpath. >>> Is 'openejb.base' system property pointing to the intended location? >>> at >>> >>> org.apache.openejb.util.Exceptions.newNoModulesFoundException( >>> Exceptions.java:98) >>> at >>> >>> org.apache.openejb.OpenEjbContainer$Provider.load(OpenEjbContainer.java: >>> 549) >>> at >>> >>> org.apache.openejb.OpenEjbContainer$Provider.createEJBContainer( >>> OpenEjbContainer.java:354) >>> at >>> javax.ejb.embeddable.EJBContainer.createEJBContainer( >>> EJBContainer.java:56) >>> at com.example.AOpenEjbTest.getContext(AOpenEjbTest.java:74) >>> at com.example.AOpenEjbTest.inject(AOpenEjbTest.java:51) >>> at >>> >>> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall( >>> FrameworkMethod.java:45) >>> >>> >>> $ find -iname "*.xml" >>> ./src/main/webapp/WEB-INF/web.xml >>> ./src/main/webapp/META-INF/context.xml >>> ./src/main/resources/META-INF/ejb-jar.xml >>> ./src/main/resources/META-INF/persistence.xml >>> ./src/test/resources/META-INF/application-client.xml >>> ./src/test/resources/META-INF/ejb-jar.xml >>> ./target/classes/META-INF/ejb-jar.xml >>> ./target/classes/META-INF/persistence.xml >>> ./target/test-classes/META-INF/application-client.xml >>> ./target/test-classes/META-INF/ejb-jar.xml >>> >>> ./target/m2e-wtp/web-resources/META-INF/maven/za. >>> co.enerweb/tomee-embedded-trial/pom.xml >>> ./target/surefire-reports/TEST-com.example.PingRSEmbeddedOpenEjbTest.xml >>> ./pom.xml >>> >>> >>> >>> @LocalClient >>> public class PingRSEmbeddedOpenEjbTest extends AOpenEjbTest { >>> @EJB >>> private Movies movies; >>> >>> protected void setProperties(Properties properties) { >>> super.setProperties(properties); >>> >>> properties.setProperty("openejb.validation.output.level", >>> "VERBOSE"); >>> properties.setProperty("openejb.embedded.remotable", "true"); >>> properties.setProperty("openejb.log.factory", "slf4j"); >>> properties.setProperty("openejb.tempclassloader.skip", >>> "annotations"); >>> properties.setProperty( >>> "openejb.deployments.classpath.require.descriptor", >>> "NONE"); >>> properties.setProperty(EJBContainer.APP_NAME, "appName"); >>> properties.put("movieDatabase", "new://Resource?type= >>> DataSource"); >>> properties.put("movieDatabase.JdbcDriver", >>> "org.hsqldb.jdbcDriver"); >>> properties.put("movieDatabase.JdbcUrl", >>> "jdbc:hsqldb:mem:moviedb"); >>> } >>> @Test >>> public void ping() { >>> final String message = >>> WebClient.create("http://localhost:8080").path( >>> // "/" + getClass().getSimpleName() + >>> "/tomee-embedded-trial/MyRestApplication" + >>> "/ping") >>> .get(String.class); >>> System.out.println("got message: " + message); >>> assertEquals("pong", message); >>> } >>> >>> } >>> >>> >>> public abstract class AOpenEjbTest { >>> >>> private Context context; >>> >>> @Before >>> public final void setupAOpenEjbTest() throws Exception { >>> // needed here for users of our subclasses >>> setUpBeforeInjection(); >>> injectContext(); >>> setUpAfterInjection(); >>> } >>> >>> private void injectContext() throws Exception { >>> if (context == null) { >>> context = inject(this); >>> } >>> } >>> >>> private Context inject(final Object target) >>> throws NamingException { >>> Properties properties = new Properties(); >>> setProperties(properties); >>> >>> Context context = getContext(properties); >>> try { >>> context.bind("inject", target); >>> } catch (NamingException e) { >>> System.out.println("Could not load context."); >>> e.printStackTrace(); >>> } >>> return context; >>> } >>> >>> protected Context getContext(Properties properties) { >>> return EJBContainer.createEJBContainer(properties) >>> .getContext(); >>> } >>> >>> protected void setProperties(Properties properties) { >>> properties.setProperty(Context.INITIAL_CONTEXT_FACTORY, >>> "org.apache.openejb.client.LocalInitialContextFactory"); >>> properties.setProperty("openejb.embedded.remotable", "true"); >>> } >>> } >>> >>> >>> Any pointers? >>> thanks >>> marius >>> >>> > -- > Andy Gumbrecht > > http://www.tomitribe.com > [email protected] > https://twitter.com/AndyGeeDe > > TomEE treibt Tomitribe! | http://tomee.apache.org > >
