On Monday 06 April 2015 21:58:51 Romain Manni-Bucau wrote:
> 2015-04-06 21:36 GMT+02:00 David Goodenough <
> 
> [email protected]>:
> > Attached is the war file, which fails every time for me.
> 
> I get a HTTP 200 + the good response string deploying your war.
Yes it does without the *, but it still throws the exception in 
logs/catalina.out
> 
> > The @Post method does have a body, all it does is return a string.
> > 
> > I met the * somewhere online, I think on an oracle site.  I will see if I
> > can
> > find it.
> 
> I'm sure it is valid, just it is not handled in tomee:
> https://issues.apache.org/jira/browse/TOMEE-1542. That said not using a
> star is exactly the same.
I have removed it.  With the * it does not, but as that should not be there 
I will simply avoid it in the future.

David
> 
> > David
> > 
> > On Monday 06 April 2015 21:14:53 Romain Manni-Bucau wrote:
> > > Please provide a sample *reproducing* the error. This one doesnt + @POST
> > > without body doesn't make much sense.
> > > 
> > > Side note: don't add a star at the end of @ApplicationPath mapping
> > > please
> > > 
> > > 
> > > Romain Manni-Bucau
> > > @rmannibucau <https://twitter.com/rmannibucau> |  Blog
> > > <http://rmannibucau.wordpress.com> | Github <
> > 
> > https://github.com/rmannibucau>
> > 
> > > | LinkedIn <https://www.linkedin.com/in/rmannibucau> | Tomitriber
> > > 
> > > <http://www.tomitribe.com>
> > > 
> > > 2015-04-06 17:35 GMT+02:00 David Goodenough <
> > > 
> > > [email protected]>:
> > > > No static blocks in the code.  Here is a really basic test:-
> > > > 
> > > > RestApp.java
> > > > 
> > > > package uk.co.dga.test;
> > > > 
> > > > import java.util.HashSet;
> > > > import java.util.Set;
> > > > 
> > > > import javax.ws.rs.ApplicationPath;
> > > > import javax.ws.rs.core.Application;
> > > > 
> > > > @ApplicationPath("/*")
> > > > public class RestApp extends Application {
> > > > 
> > > >         @Override public Set<Class<?>>getClasses() {
> > > >         
> > > >                 Set<Class<?>>s = new HashSet<Class<?>>();
> > > >                 s.add(RestEjb.class);
> > > >                 return s;
> > > >                 }
> > > >         
> > > >         }
> > > > 
> > > > RestEjb.java
> > > > 
> > > > package uk.co.dga.test;
> > > > 
> > > > import javax.ejb.Stateless;
> > > > import javax.ws.rs.POST;
> > > > import javax.ws.rs.Path;
> > > > import javax.ws.rs.Produces;
> > > > import javax.ws.rs.core.MediaType;
> > > > 
> > > > @Stateless
> > > > @Path("/test")
> > > > public class RestEjb {
> > > > 
> > > >         @POST
> > > >         @Produces(MediaType.TEXT_PLAIN)
> > > >         public String process() {
> > > >         
> > > >                 return "Hello World";
> > > >                 }
> > > >         
> > > >         }
> > > > 
> > > > and the file structure in webapps/test is:-
> > > > 
> > > > webapps/test/
> > > > 
> > > > |-- HelloWorld
> > > > |
> > > > |   |-- META-INF
> > > > |   |
> > > > |   |   `-- MANIFEST.MF
> > > > |   
> > > > |   `-- WEB-INF
> > > > |   
> > > > |       |-- classes
> > > > |       |
> > > > |       |   `-- uk
> > > > |       |   
> > > > |       |       `-- co
> > > > |       |       
> > > > |       |           `-- dga
> > > > |       |           
> > > > |       |               `-- test
> > > > |       |               
> > > > |       |                   |-- RestApp.class
> > > > |       |                   
> > > > |       |                   `-- RestEjb.class
> > > > |       
> > > > |       `-- lib
> > > > 
> > > > `-- HelloWorld.war
> > > > 
> > > > David
> > > > 
> > > > On Monday 06 April 2015 17:17:47 Romain Manni-Bucau wrote:
> > > > > Hi
> > > > > 
> > > > > Can it be a static block failing or something like that?
> > > > > 
> > > > > Can you share a project showing it?
> > > > > I have a JAX-RS application, and if I can I want to use the no-xml
> > > > > configuration with annotations instead.
> > > > > 
> > > > > So I have written the main stateless EJB with @Path, which
> > > > > has an @POST annotated method on it, and a second class
> > > > > derived from Application which has an @ApplicationPath annotation.
> > > > > The Application has an overridden method:-
> > > > > 
> > > > >         @Override public Set<Class<?>>getClasses() {
> > > > >         
> > > > >                 Set<Class<?>>s = new HashSet<Class<?>>();
> > > > >                 s.add(Ejb.class);
> > > > >                 return s;
> > > > >                 }
> > > > > 
> > > > > I then put the whole lot in a war file which contains just those
> > > > > classes and a few others that I reference from the @POST method.
> > > > > They all make reference to libraries that are in the {tomee}/lib
> > > > > directory.  In the war file is also a persistence.xml which defines
> > > > > the postgresql driver and the JDBC connection info (the driver is
> > > > > included in the  war file)
> > > > > 
> > > > > I finally put the war file in its own directory in the webapps
> > 
> > directory
> > 
> > > > > and start tomee (using bin/startup.sh).
> > > > > 
> > > > > In the log file I get information which seems to say that it has
> > > > > found everything:-
> > > > > 
> > > > > INFO - REST Application: http://localhost:8080/test/*           ->
> > > > > uk.co.dga.test.App
> > > > > INFO -      Service URI: http://localhost:8080/test/ejb  ->  EJB
> > > > > uk.co.dga.test.Ejb
> > > > > INFO -              POST http://localhost:8080/test/ejb/ ->
> > 
> > Reply
> > 
> > > > > process(JAXBElement<Request>)
> > > > > 
> > > > > So it seems to have found both classes.
> > > > > 
> > > > > Then however is starts to complain:-
> > > > > 
> > > > > SEVERE - Error waiting for multi-thread deployment of directories to
> > > > > complete
> > > > > java.util.concurrent.ExecutionException: java.lang.InternalError:
> > > > > LocalBeanProxyFactory.createProxy:
> > > > > java.lang.reflect.InvocationTargetException
> > > > > 
> > > > > and a whole stack trace ending with as the inner most part:-
> > > > > 
> > > > > Caused by: java.lang.ClassNotFoundException: uk.co.dga.test.Ejb
> > > > > 
> > > > >         at
> > 
> > org.apache.openejb.core.TempClassLoader.loadClass(TempClassLoader.java:186
> > 
> > > > )
> > > > 
> > > > >         at
> > 
> > org.apache.openejb.core.TempClassLoader.loadClass(TempClassLoader.java:83)
> > 
> > > > >         ... 26 more
> > > > > 
> > > > > How can it have found it and not found it?
> > > > > 
> > > > > David
> > 
> > r

Reply via email to