Home » Newcomers » Newcomers » javax.persistence.PersistenceException: No Persistence provider for EntityManager named XXXX
javax.persistence.PersistenceException: No Persistence provider for EntityManager named XXXX [message #1739359] |
Sat, 30 July 2016 14:18 |
dheeraj lalwani Messages: 1 Registered: July 2016 Location: india |
Junior Member |
|
|
I am trying to create a simple osgi bundle jax-rs rest service with eclipselink but getting error javax.persistence.PersistenceException: No Persistence provider for EntityManager named persistenceUnit I have specified the eclipselink provider in the persistence.xml also persistence.xml location is also there in MANIFEST.MF.
Any help on this would be greatly appreciated.
PFB My Configuration-
pom.xml
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.test.servicemix</groupId>
<artifactId>servicemix</artifactId>
<version>1.0</version>
<packaging>bundle</packaging>
<properties>
<cxf.version>2.7.11</cxf.version>
</properties>
<dependencies>
<!-- <dependency> <groupId>karafcxf</groupId> <artifactId>karafcxf.service.impl</artifactId>
<version>1.0-SNAPSHOT</version> </dependency> -->
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxws</artifactId>
<version>2.7.11</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.6</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxrs</artifactId>
<version>2.7.11</version>
</dependency>
<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>eclipselink</artifactId>
<version>2.4.2</version>
<exclusions>
<exclusion>
<groupId>org.eclipse.persistence</groupId>
<artifactId>commonj.sdo</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>javax.persistence</artifactId>
<version>2.1.0</version>
</dependency>
<dependency>
<groupId>org.osgi</groupId>
<artifactId>org.osgi.core</artifactId>
<version>4.3.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.osgi</groupId>
<artifactId>org.osgi.compendium</artifactId>
<version>4.3.1</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.ow2.asm</groupId>
<artifactId>asm-commons</artifactId>
<version>5.0.3</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>asm</groupId>
<artifactId>asm</artifactId>
<version>3.3.1</version>
</dependency>
<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>commonj.sdo</artifactId>
<version>2.1.1</version>
</dependency>
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>1.1.0.Final</version>
</dependency>
<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>org.eclipse.persistence.oracle</artifactId>
<version>2.4.2</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<version>2.3.7</version>
<extensions>true</extensions>
<configuration>
<manifestLocation>src/main/resources/META-INF</manifestLocation>
<instructions>
<Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
<Bundle-Version>${project.version}</Bundle-Version>
<Meta-Persistence>META-INF/persistence.xml</Meta-Persistence>
<Bundle-Activator>com.test.servicemix.BundleStartupListener</Bundle-Activator>
<Export-Package>com.test.model</Export-Package>
<Import-Package>
org.osgi.service.blueprint;resolution:=optional,
org.apache.felix.service.command,
org.apache.felix.gogo.commands,
org.apache.karaf.shell.console,
*,!javax.persistence
</Import-Package>
<Embed-Dependency>javax.persistence</Embed-Dependency>
</instructions>
</configuration>
</plugin>
</plugins>
</build>
blueprint.xml (rest.xml)-
<blueprint>
<bean id="jpaProvider" class="org.eclipse.persistence.jpa.PersistenceProvider" />
<service ref="jpaProvider" interface="javax.persistence.spi.PersistenceProvider">
<service-properties>
<entry key="javax.persistence.provider" value="org.eclipse.persistence.jpa.PersistenceProvider"/>
</service-properties>
</service>
<cxf:bus id="cxfBus1">
<cxf:features>
<cxf:logging/>
</cxf:features>
</cxf:bus>
<jaxrs:server address="/servicemix" id="someRestService">
<jaxrs:serviceBeans>
<ref component-id="testServiceImpl"/>
</jaxrs:serviceBeans>
</jaxrs:server>
<!-- Implementation of the rest service -->
<bean id="testServiceImpl" class="com.test.servicemix.TestServiceImpl">
</bean>
</blueprint>
BundleStartupListener.java
package com.test.servicemix;
import java.util.Dictionary;
import java.util.Hashtable;
import org.osgi.framework.BundleActivator;
import org.osgi.framework.BundleContext;
import org.osgi.framework.ServiceRegistration;
public class BundleStartupListener implements BundleActivator {
private ServiceRegistration serviceRegistration;
private static final String JAVAX_PERSISTENCE_PROVIDER_PROP = "javax.persistence.provider";
public void start(BundleContext context) {
System.out.println("Starting my bundle");
org.eclipse.persistence.jpa.PersistenceProvider persistence = new org.eclipse.persistence.jpa.PersistenceProvider();
Dictionary<String, String> props = new Hashtable<String, String>();
props.put(JAVAX_PERSISTENCE_PROVIDER_PROP, persistence.getClass().getName());
serviceRegistration = context.registerService(persistence.getClass().getName(), persistence, props);
}
public void stop(BundleContext context) {
System.out.println("Stopping my bundle");
serviceRegistration.unregister();
}
}
TestService.java
package com.test.servicemix;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.core.Response;
@Path("test")
public interface TestService {
@GET
@Path("hello")
public Response handleGet();
}
TestServiceImpl.java
package com.test.servicemix;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import javax.ws.rs.core.CacheControl;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.Response.ResponseBuilder;
import com.test.model.User;;
public class TestServiceImpl implements TestService{
private EntityManager entityManager;
public TestServiceImpl(){
}
public Response handleGet(){
EntityManagerFactory factory = Persistence.createEntityManagerFactory("persistenceUnit");
entityManager = factory.createEntityManager();
List<User> resultList = entityManager.createQuery("Select a From User a WHERE a.userId between 1 AND 20", User.class).getResultList();
for (User user : resultList) {
System.out.println("next user: " + user.getId() +":"+ user.getSurname());
}
CacheControl cc= new CacheControl();
cc.setMaxAge(300000);
ResponseBuilder builder= Response.ok("Namaste user");
builder.cacheControl(cc);
return builder.build();
}
}
MANIFEST.MF
Manifest-Version: 1.0
Bnd-LastModified: 1469884319031
Build-Jdk: 1.7.0_79
Built-By: HP
Bundle-Activator: com.test.servicemix.BundleStartupListener
Bundle-ClassPath: .,javax.persistence-2.1.0.jar
Bundle-ManifestVersion: 2
Bundle-Name: servicemix
Bundle-SymbolicName: servicemix
Bundle-Version: 1.0
Created-By: Apache Maven Bundle Plugin
Embed-Dependency: javax.persistence
Embedded-Artifacts: javax.persistence-2.1.0.jar;g="org.eclipse.persisten
ce";a="javax.persistence";v="2.1.0"
Export-Package: com.test.model;version="1.0"
Export-Service: javax.persistence.spi.PersistenceProvider;javax.persiste
nce.provider="org.eclipse.persistence.jpa.PersistenceProvider"
Import-Package: javax.sql,javax.ws.rs;version="[2.0,3)",javax.ws.rs.core
;version="[2.0,3)",org.apache.felix.gogo.commands,org.apache.felix.serv
ice.command,org.apache.karaf.shell.console,org.eclipse.persistence.jpa,
org.osgi.framework;version="[1.6,2)",org.osgi.service.blueprint;resolut
ion:=optional;version="[1.0.0,2.0.0)"
Meta-Persistence: META-INF/persistence.xml
Originally-Created-By: Apache Maven Bundle Plugin
Tool: Bnd-1.50.0
User.java
package com.test.model;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name="person")
public class User implements Serializable{
private static final long serialVersionUID = 1L;
@Id
@Column(name="UserID")
private int id;
@Column(name="Surname")
private String surname;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getSurname() {
return surname;
}
public void setSurname(String surname) {
this.surname = surname;
}
}
Karaf Logs-
2016-07-30 18:42:12,222 | INFO | -SNAPSHOT/deploy | fileinstall | 8 - org.apache.felix.fileinstall - 3.5.0 | Updating bundle servicemix / 1.0.0
2016-07-30 18:42:12,223 | INFO | -SNAPSHOT/deploy | BlueprintExtender | 19 - org.apache.aries.blueprint.core - 1.4.3 | Destroying BlueprintContainer for bundle servicemix
2016-07-30 18:42:12,310 | INFO | -SNAPSHOT/deploy | InstrumentationManagerImpl | 144 - org.apache.cxf.cxf-core - 3.1.5 | registering MBean org.apache.cxf:bus.id=cxfBus1,type=Bus,instance.id=1728551857: org.apache.cxf.bus.ManagedBus@247eb64f
2016-07-30 18:42:12,311 | INFO | -SNAPSHOT/deploy | InstrumentationManagerImpl | 144 - org.apache.cxf.cxf-core - 3.1.5 | registering MBean org.apache.cxf:bus.id=cxfBus1,type=Bus,instance.id=1728551857: javax.management.modelmbean.RequiredModelMBean@7af30f40
2016-07-30 18:42:12,312 | INFO | -SNAPSHOT/deploy | InstrumentationManagerImpl | 144 - org.apache.cxf.cxf-core - 3.1.5 | registered org.apache.cxf:bus.id=cxfBus1,type=Bus,instance.id=1728551857
2016-07-30 18:42:12,313 | INFO | -SNAPSHOT/deploy | InstrumentationManagerImpl | 144 - org.apache.cxf.cxf-core - 3.1.5 | registering MBean org.apache.cxf:bus.id=cxfBus1,WorkQueueManager=Bus.WorkQueueManager,type=WorkQueueManager,instance.id=1802400207: org.apache.cxf.bus.managers.WorkQueueManagerImplMBeanWrapper@1ff20423
2016-07-30 18:42:12,314 | INFO | -SNAPSHOT/deploy | InstrumentationManagerImpl | 144 - org.apache.cxf.cxf-core - 3.1.5 | registering MBean org.apache.cxf:bus.id=cxfBus1,WorkQueueManager=Bus.WorkQueueManager,type=WorkQueueManager,instance.id=1802400207: javax.management.modelmbean.RequiredModelMBean@49eda637
2016-07-30 18:42:12,321 | INFO | -SNAPSHOT/deploy | ServerImpl | 144 - org.apache.cxf.cxf-core - 3.1.5 | Setting the server's publish address to be /servicemix
2016-07-30 18:42:12,322 | INFO | -SNAPSHOT/deploy | InstrumentationManagerImpl | 144 - org.apache.cxf.cxf-core - 3.1.5 | registering MBean org.apache.cxf:bus.id=cxfBus1,type=Bus.Service.Endpoint,service="{}TestServiceImpl",port="TestServiceImpl",instance.id=1061427707: org.apache.cxf.endpoint.ManagedEndpoint@1005ce30
2016-07-30 18:42:12,323 | INFO | -SNAPSHOT/deploy | InstrumentationManagerImpl | 144 - org.apache.cxf.cxf-core - 3.1.5 | registering MBean org.apache.cxf:bus.id=cxfBus1,type=Bus.Service.Endpoint,service="{}TestServiceImpl",port="TestServiceImpl",instance.id=1061427707: javax.management.modelmbean.RequiredModelMBean@6d23b987
2016-07-30 18:42:12,334 | INFO | -SNAPSHOT/deploy | fileinstall | 8 - org.apache.felix.fileinstall - 3.5.0 | Started bundle: file:/E:/apache-servicemix-5.6.2-SNAPSHOT/deploy/servicemix-1.0.jar
2016-07-30 18:42:23,138 | INFO | qtp41019454-75 | LoggingInInterceptor | 144 - org.apache.cxf.cxf-core - 3.1.5 | Inbound Message
----------------------------
ID: 10
Address: cxf/servicemix/test/hello
Http-Method: GET
Content-Type:
Headers: {Accept=[text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8], accept-encoding=[gzip, deflate, sdch], Accept-Language=[en-US,en;q=0.8], Cache-Control=[max-age=0], connection=[keep-alive], Content-Type=[null], Host=[localhost:8181], Upgrade-Insecure-Requests=[1], User-Agent=[Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36]}
--------------------------------------
2016-07-30 18:42:23,143 | WARN | qtp41019454-75 | PhaseInterceptorChain | 144 - org.apache.cxf.cxf-core - 3.1.5 | Application {}TestServiceImpl has thrown exception, unwinding now
org.apache.cxf.interceptor.Fault: No Persistence provider for EntityManager named persistenceUnit
at org.apache.cxf.service.invoker.AbstractInvoker.createFault(AbstractInvoker.java:162)[144:org.apache.cxf.cxf-core:3.1.5]
at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:128)[144:org.apache.cxf.cxf-core:3.1.5]
at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:189)[157:org.apache.cxf.cxf-rt-frontend-jaxrs:3.1.5]
at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:99)[157:org.apache.cxf.cxf-rt-frontend-jaxrs:3.1.5]
at org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:59)[144:org.apache.cxf.cxf-core:3.1.5]
at org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:96)[144:org.apache.cxf.cxf-core:3.1.5]
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308)[144:org.apache.cxf.cxf-core:3.1.5]
at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)[144:org.apache.cxf.cxf-core:3.1.5]
at org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:253)[151:org.apache.cxf.cxf-rt-transports-http:3.1.5]
at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:234)[151:org.apache.cxf.cxf-rt-transports-http:3.1.5]
at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:208)[151:org.apache.cxf.cxf-rt-transports-http:3.1.5]
at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:160)[151:org.apache.cxf.cxf-rt-transports-http:3.1.5]
at org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:180)[151:org.apache.cxf.cxf-rt-transports-http:3.1.5]
at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:298)[151:org.apache.cxf.cxf-rt-transports-http:3.1.5]
at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doGet(AbstractHTTPServlet.java:222)[151:org.apache.cxf.cxf-rt-transports-http:3.1.5]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:575)[59:org.apache.geronimo.specs.geronimo-servlet_3.0_spec:1.0.0]
at org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:273)[151:org.apache.cxf.cxf-rt-transports-http:3.1.5]
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:684)[64:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:503)[64:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
at org.ops4j.pax.web.service.jetty.internal.HttpServiceServletHandler.doHandle(HttpServiceServletHandler.java:69)[73:org.ops4j.pax.web.pax-web-jetty:3.2.4]
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)[64:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:557)[64:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)[64:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086)[64:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
at org.ops4j.pax.web.service.jetty.internal.HttpServiceContext.doHandle(HttpServiceContext.java:240)[73:org.ops4j.pax.web.pax-web-jetty:3.2.4]
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:429)[64:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)[64:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020)[64:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)[64:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
at org.ops4j.pax.web.service.jetty.internal.JettyServerHandlerCollection.handle(JettyServerHandlerCollection.java:75)[73:org.ops4j.pax.web.pax-web-jetty:3.2.4]
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)[64:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
at org.eclipse.jetty.server.Server.handle(Server.java:370)[64:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:494)[64:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:971)[64:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:1033)[64:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:644)[64:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)[64:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)[64:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:696)[64:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:53)[64:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)[64:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)[64:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
at java.lang.Thread.run(Thread.java:745)[:1.7.0_79]
Caused by: javax.persistence.PersistenceException: No Persistence provider for EntityManager named persistenceUnit
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:85)[251:servicemix:1.0.0]
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:54)[251:servicemix:1.0.0]
at com.test.servicemix.TestServiceImpl.handleGet(TestServiceImpl.java:23)[251:servicemix:1.0.0]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)[:1.7.0_79]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)[:1.7.0_79]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)[:1.7.0_79]
at java.lang.reflect.Method.invoke(Method.java:606)[:1.7.0_79]
at org.apache.cxf.service.invoker.AbstractInvoker.performInvocation(AbstractInvoker.java:180)[144:org.apache.cxf.cxf-core:3.1.5]
at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:96)[144:org.apache.cxf.cxf-core:3.1.5]
... 41 more
Dheeraj Lalwani
|
|
|
Goto Forum:
Current Time: Thu Apr 25 11:45:24 GMT 2024
Powered by FUDForum. Page generated in 0.08102 seconds
|