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
>

Reply via email to