The entityManager getSingleResut() went off into the wild. I switched to using the List return and everything started working.
-----Original Message----- From: Sobkowiak Krzysztof [mailto:[email protected]] Sent: Thursday, June 25, 2015 10:48 PM To: [email protected] Subject: Re: karaf cxf jpa issue Hi What was the problem? Regards Krzysztof On 26.06.2015 01:39, Pratt, Jason wrote: > > Fixed it > > > > *From:*Pratt, Jason [mailto:[email protected]] > *Sent:* Thursday, June 25, 2015 9:12 AM > *To:* [email protected] > *Subject:* karaf cxf jpa issue > > > > Hello - I am getting a strange cast exception I haven't run into > before. I am trying to simply return a json document via a restful > call that loads a jpa entity by id number. The stack says I can't cast > from X to X, which doesn't make sense to me. I've followed > > > > http://www.liquid-reality.de/display/liquid/2012/07/20/Apache+Karaf+Tu > torial+Part+7+-+Camel+JPA+and+JTA+transactions > > http://www.liquid-reality.de/display/liquid/2011/12/22/Karaf+Tutorial+ > Part+4+-+CXF+Services+in+OSGi > > > > in making this test up. I am not sure what I am doing wrong, any help > would be greatly appreciated > > > > > > @GET > > @Path("{id}") > > @Produces(MediaType.*/APPLICATION_JSON/*) > > *public*Test getTestById(@PathParam("id") Long id) { > > Test myTest= *null*; > > */log/*.info("\n\n\n********** getTestById id = "+ > id+"\n\n"); > > > > *try*{ > > myTest= (TestBean) > getEm().find(TestBean.*class*, id); > > */log/*.info("test = "+ myTest.toString()); > > } *catch*(Exception e) { > > */log/*.error(">>> Caught getTestById: ", e); > > } > > *return*myTest; > > } > > > > ID: 14 > > Address: http://localhost:8181/cxf/test/600 > > Http-Method: GET > > Content-Type: > > Headers: > {Accept=[text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0 > .8], accept-encoding=[gzip, deflate], Accept-Language=[null], > connection=[keep-alive], Content-Type=[null], Host=[loc > > -------------------------------------- > > 2015-06-24 18:43:26,240 | INFO | qtp713727344-65 | TestServiceImpl > | 564 - product - 1.0.0 | > > > > > > ********** getTestById id = 600 > > > > > > 2015-06-24 18:43:57,610 | ERROR | qtp713727344-65 | TestServiceImpl > | 564 - product - 1.0.0 | >>> Caught getTestById: > > java.lang.ClassCastException: product.domain.TestBean cannot be cast > to product.domain.TestBean > > at > com.wrs.ept.dart.core.product.service.TestServiceImpl.getTestById(Test > ServiceImpl.java:118)[564: product:1.0.0] > > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native > Method)[:1.8.0_45] > > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.j > ava:62)[:1.8.0_45] > > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccess > orImpl.java:43)[:1.8.0_45] > > at java.lang.reflect.Method.invoke(Method.java:497)[:1.8.0_45] > > at > org.apache.aries.proxy.impl.ProxyHandler$1.invoke(ProxyHandler.java:54 > ) > > at > org.apache.aries.proxy.impl.ProxyHandler.invoke(ProxyHandler.java:119) > > at > com.wrs.ept.dart.core.product.service.$TestServiceImpl571557319.getTes > tById(Unknown Source)[564: product:1.0.0] > > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native > Method)[:1.8.0_45] > > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.j > ava:62)[:1.8.0_45] > > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccess > orImpl.java:43)[:1.8.0_45] > > at java.lang.reflect.Method.invoke(Method.java:497)[:1.8.0_45] > > at > org.apache.cxf.service.invoker.AbstractInvoker.performInvocation(Abstr > actInvoker.java:181)[317:org.apache.cxf.cxf-core:3.0.4] > > at > org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker. > java:97)[317:org.apache.cxf.cxf-core:3.0.4] > > at > org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:200)[441:or > g.apache.cxf.cxf-rt-frontend-jaxrs:3.0.4] > > at > org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:99)[441:org > .apache.cxf.cxf-rt-frontend-jaxrs:3.0.4] > > at > org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvo > kerInterceptor.java:59)[317:org.apache.cxf.cxf-core:3.0.4] > > at > org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(Ser > viceInvokerInterceptor.java:96)[317:org.apache.cxf.cxf-core:3.0.4] > > at > org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseIntercepto > rChain.java:307)[317:org.apache.cxf.cxf-core:3.0.4] > > at > org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitia > tionObserver.java:121)[317:org.apache.cxf.cxf-core:3.0.4] > > at > org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractH > TTPDestination.java:251)[443:org.apache.cxf.cxf-rt-transports-http:3.0 > .4] > > at > org.apache.cxf.transport.servlet.ServletController.invokeDestination(S > ervletController.java:234)[443:org.apache.cxf.cxf-rt-transports-http:3 > .0.4] > > at > org.apache.cxf.transport.servlet.ServletController.invoke(ServletContr > oller.java:208)[443:org.apache.cxf.cxf-rt-transports-http:3.0.4] > > at > org.apache.cxf.transport.servlet.ServletController.invoke(ServletContr > oller.java:160)[443:org.apache.cxf.cxf-rt-transports-http:3.0.4] > > at > org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpri > ngServlet.java:171)[443:org.apache.cxf.cxf-rt-transports-http:3.0.4] > > at > org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(Abs > tractHTTPServlet.java:293)[443:org.apache.cxf.cxf-rt-transports-http:3 > .0.4] > > at > org.apache.cxf.transport.servlet.AbstractHTTPServlet.doGet(AbstractHTT > PServlet.java:217)[443:org.apache.cxf.cxf-rt-transports-http:3.0.4] > > at > javax.servlet.http.HttpServlet.service(HttpServlet.java:575)[66:org.ap > ache.geronimo.specs.geronimo-servlet_3.0_spec:1.0.0] > > at > org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractH > TTPServlet.java:268)[443:org.apache.cxf.cxf-rt-transports-http:3.0.4] > > at > org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:684) > [72:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v20140411] > > at > org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java: > 503)[72:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v20140411] > > at > org.ops4j.pax.web.service.jetty.internal.HttpServiceServletHandler.doH > andle(HttpServiceServletHandler.java:69)[81:org.ops4j.pax.web.pax-web- > jetty:3.1.4] > > at > org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.ja > va:137)[72:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v201404 > 11] > > at > org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java > :557)[72:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v20140411 > ] > > at > org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandle > r.java:231)[72:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v20 > 140411] > > at > org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandle > r.java:1086)[72:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v2 > 0140411] > > at > org.ops4j.pax.web.service.jetty.internal.HttpServiceContext.doHandle(H > ttpServiceContext.java:240)[81:org.ops4j.pax.web.pax-web-jetty:3.1.4] > > at > org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:4 > 29)[72:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v20140411] > > at > org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler > .java:193)[72:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v201 > 40411] > > at > org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler > .java:1020)[72:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v20 > 140411] > > at > org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.ja > va:135)[72:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v201404 > 11] > > at > org.ops4j.pax.web.service.jetty.internal.JettyServerHandlerCollection. > handle(JettyServerHandlerCollection.java:75)[81:org.ops4j.pax.web.pax- > web-jetty:3.1.4] > > at > org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper. > java:116)[72:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v2014 > 0411] > > at > org.eclipse.jetty.server.Server.handle(Server.java:370)[72:org.eclipse > .jetty.aggregate.jetty-all-server:8.1.15.v20140411] > > at > org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(Abstract > HttpConnection.java:494)[72:org.eclipse.jetty.aggregate.jetty-all-serv > er:8.1.15.v20140411] > > at > org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(Abstrac > tHttpConnection.java:971)[72:org.eclipse.jetty.aggregate.jetty-all-ser > ver:8.1.15.v20140411] > > at > org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerC > omplete(AbstractHttpConnection.java:1033)[72:org.eclipse.jetty.aggrega > te.jetty-all-server:8.1.15.v20140411] > > at > org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:644)[72:or > g.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v20140411] > > at > org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)[ > 72:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v20140411] > > at > org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnectio > n.java:82)[72:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v201 > 40411] > > at > org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEnd > Point.java:696)[72:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15 > .v20140411] > > at > org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndP > oint.java:53)[72:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v > 20140411] > > at > org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool > .java:608)[72:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v201 > 40411] > > at > org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool. > java:543)[72:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v2014 > 0411] > > at java.lang.Thread.run(Thread.java:745)[:1.8.0_45] > > 2015-06-24 18:44:00,164 | INFO | qtp713727344-65 | > ticalLoggingSessionEventListener | 111 - > org.jboss.logging.jboss-logging - 3.1.4.GA | Session Metrics { > > 20798530247 nanoseconds spent acquiring 2114 JDBC connections; > > 180257790 nanoseconds spent releasing 2114 JDBC connections; > > 20849510365 nanoseconds spent preparing 2115 JDBC statements; > > 5556061459 nanoseconds spent executing 2115 JDBC statements; > > 0 nanoseconds spent executing 0 JDBC batches; > > 0 nanoseconds spent performing 0 L2C puts; > > 0 nanoseconds spent performing 0 L2C hits; > > 0 nanoseconds spent performing 0 L2C misses; > > 2549708385 nanoseconds spent executing 1 flushes (flushing a total > of 203873 entities and 2117 collections); > > 0 nanoseconds spent executing 0 partial-flushes (flushing a total > of 0 entities and 0 collections) > > } > -- Krzysztof Sobkowiak JEE & OSS Architect Apache Software Foundation Member Apache ServiceMix <http://servicemix.apache.org/> Committer & PMC Senior Solution Architect @ Capgemini SSC <http://www.pl.capgemini-sdm.com/en/>
