aspose file tools*
The moose likes Ant, Maven and Other Build Tools and the fly likes javax.persistence.criteria cannot be resolved to a type & project could not be used in the server. Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Engineering » Ant, Maven and Other Build Tools
Bookmark "javax.persistence.criteria cannot be resolved to a type & project could not be used in the server." Watch "javax.persistence.criteria cannot be resolved to a type & project could not be used in the server." New topic
Author

javax.persistence.criteria cannot be resolved to a type & project could not be used in the server.

sam White
Ranch Hand

Joined: Feb 18, 2011
Posts: 208
Hello,

I am building a Maven + Spring + JPA + Eclipse project.
Currently I am having compilation error with the following line of code:



Therefore, I want to add glassfish 3.1 libraries into the project in order to resolve the error.

I have added glassfish 3.1 server to eclipse 3.6.2, but the project I created in Eclipse "Could not be used in the server".

How can I resolve this error
and how to convert this mavenized project so that it can be used in the server?

Any suggestion is highly appreciated.
Thanks
Sam
Wouter Oet
Saloon Keeper

Joined: Oct 25, 2008
Posts: 2700

What was the compilation error? And add the persistence api to Maven with the scope provided instead of adding it to eclipse.


"Any fool can write code that a computer can understand. Good programmers write code that humans can understand." --- Martin Fowler
Please correct my English.
sam White
Ranch Hand

Joined: Feb 18, 2011
Posts: 208
Hello,

Thank you for the quick reply.

Here is the error:


javax.persistence.criteria cannot be resolved


I have just convert the project to WTP. Now I added the project to Glassfish 3.1 server.

After added the project to glassfish, I found there is a EclipseLink 2.1.x libraries added to the project, and consequently the new error becomes:

"The method getCriteriaBuilder() is undefined for the type EntityManager"

from the following code:



Here is fragment of the code:



the javax.persistence.* is referring to EclipseLink 2.1.x I think...
I shouldn't use EclipseLink, what should I do to replace it by something else that will makes the above code compiled?

Thanks
Sam
Wouter Oet
Saloon Keeper

Joined: Oct 25, 2008
Posts: 2700

I don't know what a WTP project is. You'll need to add the correct persistence api version. The older one didn't include a criteria builder.
sam White
Ranch Hand

Joined: Feb 18, 2011
Posts: 208
Hi,

Thanks for the reply again.

After removed EclipseLInk 2.1.x libraries from Build path in eclipse, and added 2 hibernate dependencies in the pom.xml file, maven update returns error:

Missing artifact org.hibernate:hibernate:jar:3.5.1-Final:compile

Here is my hibernate dependencies in the pom.xml file:



I am not sure how to automatically add hibernate jar file with maven,

Please help.

Thanks
Sam
sam White
Ranch Hand

Joined: Feb 18, 2011
Posts: 208
I just found there are hibernate-entitymanager-3.4.0GA.jar and hibernate-annotation-3.4.0.GA.jar, as well as hibernate-commons-annotations-3.1.0.GA.jar in the Maven Dependencies under the Libraries folder in my project.

I am wondering how to remove them?
When I right-click its filename in the Maven Dependencies, the Delete option is disabled.

Thanks
Sam
sam White
Ranch Hand

Joined: Feb 18, 2011
Posts: 208
After deleted all lower version of hibernates from my maven repositories folder, and removed the dead links of hibernates in the pom.xml file, it complied successfully.
However when I start Glassfish 3.1 from within Eclipse, it failed to deploy with the following error in the server log:

[#|2011-06-13T14:32:34.624+1000|SEVERE|glassfish3.1|javax.enterprise.system.tools.admin.org.glassfish.deployment.admin|_ThreadID=65;_ThreadName=Thread-1;|Exception while preparing the app : java.lang.ClassNotFoundException: org.hibernate.ejb.HibernatePersistence
java.lang.ClassNotFoundException: org.hibernate.ejb.HibernatePersistence
at org.glassfish.web.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1518)
at org.glassfish.web.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1368)
at org.glassfish.persistence.jpa.PersistenceUnitLoader.loadPU(PersistenceUnitLoader.java:173)
at org.glassfish.persistence.jpa.PersistenceUnitLoader.<init>(PersistenceUnitLoader.java:119)
at org.glassfish.persistence.jpa.JPADeployer$1.visitPUD(JPADeployer.java:213)
at org.glassfish.persistence.jpa.JPADeployer$PersistenceUnitDescriptorIterator.iteratePUDs(JPADeployer.java:486)
at org.glassfish.persistence.jpa.JPADeployer.createEMFs(JPADeployer.java:220)
at org.glassfish.persistence.jpa.JPADeployer.prepare(JPADeployer.java:166)
at com.sun.enterprise.v3.server.ApplicationLifecycle.prepareModule(ApplicationLifecycle.java:870)
at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:410)
at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:240)
at org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:370)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$1.execute(CommandRunnerImpl.java:355)
at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:370)
at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1067)
at com.sun.enterprise.v3.admin.CommandRunnerImpl.access$1200(CommandRunnerImpl.java:96)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1247)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1235)
at com.sun.enterprise.v3.admin.AdminAdapter.doCommand(AdminAdapter.java:465)
at com.sun.enterprise.v3.admin.AdminAdapter.service(AdminAdapter.java:222)
at com.sun.grizzly.tcp.http11.GrizzlyAdapter.service(GrizzlyAdapter.java:168)
at com.sun.enterprise.v3.server.HK2Dispatcher.dispath(HK2Dispatcher.java:117)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:234)
at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:822)
at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:719)
at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1013)
at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:225)
at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
at java.lang.Thread.run(Thread.java:662)
|#]


Is there any way I can use to resolve this issue?

Thanks
Sam
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: javax.persistence.criteria cannot be resolved to a type & project could not be used in the server.