【问题标题】:EJB Overriding JPA javax.persistenceEJB 覆盖 JPA javax.persistence
【发布时间】:2012-09-11 13:47:20
【问题描述】:

我对 Java EE 领域还很陌生,所以请原谅我的无知;我继承了一个使用 guice-persist 和 hibernate 来处理 ORM 的应用程序。

我正在尝试使用CriteriaQuery,但我发现我的jaxax.persistence.EntityManager 似乎是this 接口(来自EJB),而不是the one I want(来自JPA),所以我无法使用createQuery(CriteriaQuery)

这是一个 Maven 项目,我不清楚这个 EJB 代码是从哪里来的——我从 Guice-Persist 和 Hibernate 中看到的所有内容都显示了 JPA 接口,而不是 EJB 接口,所以我不知道在哪里此 EJB 包来自。

这里有什么想法吗?我是否有一个流浪的 Maven 依赖项将 EJB 引入我的项目,或者听起来我误解了持久层并且我的应用程序中实际上需要 EJB?

如果你让我知道你需要什么,我很乐意发布更多信息。

编辑:

经过仔细检查,我开始怀疑我的“remoter”项目的 pom.xml 格式不正确。下面的依赖树。

    [INFO] --- maven-dependency-plugin:2.1:tree (default-cli) @ texasU ---
    [INFO] texasU:texasU:war:1.1.2-SNAPSHOT
    [INFO] +- com.google.gwt:gwt-user:jar:2.5.0-rc1:provided
    [INFO] |  +- (javax.validation:validation-api:jar:1.0.0.GA:compile - scope updat
    ed from provided; omitted for duplicate)
    [INFO] |  +- javax.validation:validation-api:jar:sources:1.0.0.GA:provided
    [INFO] |  \- org.json:json:jar:20090211:provided
    [INFO] +- com.google.gwt:gwt-servlet:jar:2.5.0-rc1:runtime
    [INFO] +- com.arcbees.core:arcbees-core:jar:1.0-SNAPSHOT:provided
    [INFO] |  +- (com.google.gwt:gwt-servlet:jar:2.4.0:provided - omitted for confli
    ct with 2.5.0-rc1)
    [INFO] |  +- com.google.appengine:appengine-api-1.0-sdk:jar:1.6.1:provided
    [INFO] |  +- (com.gwtplatform:gwtp-dispatch-server-guice:jar:0.8-SNAPSHOT:provid
    ed - omitted for duplicate)
    [INFO] |  +- (com.gwtplatform:gwtp-dispatch-shared:jar:0.8-SNAPSHOT:compile - sc
    ope updated from provided; omitted for duplicate)
    [INFO] |  +- (com.google.inject:guice:jar:3.0:compile - scope updated from provi
    ded; omitted for duplicate)
    [INFO] |  +- (com.google.inject.extensions:guice-servlet:jar:3.0:provided - omit
    ted for duplicate)
    [INFO] |  +- (com.google.inject.extensions:guice-assistedinject:jar:3.0:provided
     - omitted for duplicate)
    [INFO] |  +- javax.persistence:persistence-api:jar:1.0:provided
    [INFO] |  +- org.restlet.gae:org.restlet:jar:2.1-RC2:provided
    [INFO] |  \- org.restlet.gae:org.restlet.ext.servlet:jar:2.1-RC2:provided
    [INFO] |     \- (org.restlet.gae:org.restlet:jar:2.1-RC2:provided - omitted for
    duplicate)
    [INFO] +- com.gwtplatform:gwtp-mvp-client:jar:0.8-SNAPSHOT:provided
    [INFO] |  \- com.gwtplatform:gwtp-clients-common:jar:0.8-SNAPSHOT:provided
    [INFO] |     \- (com.google.inject:guice:jar:3.0:provided - omitted for duplicat
    e)
    [INFO] +- com.gwtplatform:gwtp-dispatch-client:jar:0.8-SNAPSHOT:provided
    [INFO] |  +- (com.gwtplatform:gwtp-clients-common:jar:0.8-SNAPSHOT:provided - om
    itted for duplicate)
    [INFO] |  +- (com.gwtplatform:gwtp-dispatch-shared:jar:0.8-SNAPSHOT:provided - o
    mitted for duplicate)
    [INFO] |  \- (com.google.inject:guice:jar:3.0:provided - omitted for duplicate)
    [INFO] +- com.gwtplatform:gwtp-dispatch-server-guice:jar:0.8-SNAPSHOT:compile
    [INFO] |  +- com.gwtplatform:gwtp-dispatch-server:jar:0.8-SNAPSHOT:compile
    [INFO] |  |  \- (com.gwtplatform:gwtp-dispatch-shared:jar:0.8-SNAPSHOT:compile -
     omitted for duplicate)
    [INFO] |  +- (com.gwtplatform:gwtp-dispatch-shared:jar:0.8-SNAPSHOT:compile - om
    itted for duplicate)
    [INFO] |  \- (com.google.inject:guice:jar:3.0:compile - omitted for duplicate)
    [INFO] +- com.gwtplatform:gwtp-dispatch-shared:jar:0.8-SNAPSHOT:compile
    [INFO] +- com.gwtplatform:gwtp-processors:jar:0.8-SNAPSHOT:provided
    [INFO] +- com.google.inject:guice:jar:3.0:compile
    [INFO] |  +- javax.inject:javax.inject:jar:1:compile
    [INFO] |  \- aopalliance:aopalliance:jar:1.0:compile
    [INFO] +- com.google.inject.extensions:guice-servlet:jar:3.0:compile
    [INFO] |  \- (com.google.inject:guice:jar:3.0:compile - omitted for duplicate)
    [INFO] +- com.google.inject.extensions:guice-assistedinject:jar:3.0:compile
    [INFO] |  \- (com.google.inject:guice:jar:3.0:compile - omitted for duplicate)
    [INFO] +- com.google.gwt.inject:gin:jar:1.5.0:provided
    [INFO] |  +- (com.google.inject:guice:jar:3.0-rc2:provided - omitted for conflic
    t with 3.0)
    [INFO] |  +- (com.google.inject.extensions:guice-assistedinject:jar:3.0-rc2:prov
    ided - omitted for conflict with 3.0)
    [INFO] |  \- (com.google.gwt:gwt-servlet:jar:2.2.0:provided - omitted for confli
    ct with 2.5.0-rc1)
    [INFO] +- mysql:mysql-connector-java:jar:5.1.21:compile
    [INFO] +- org.hibernate:hibernate-core:jar:4.1.4.Final:compile
    [INFO] |  +- antlr:antlr:jar:2.7.7:compile
    [INFO] |  +- org.jboss.logging:jboss-logging:jar:3.1.0.GA:compile
    [INFO] |  +- org.jboss.spec.javax.transaction:jboss-transaction-api_1.1_spec:jar
    :1.0.0.Final:compile
    [INFO] |  +- dom4j:dom4j:jar:1.6.1:compile
    [INFO] |  +- org.hibernate.javax.persistence:hibernate-jpa-2.0-api:jar:1.0.1.Fin
    al:compile
    [INFO] |  +- org.javassist:javassist:jar:3.15.0-GA:compile
    [INFO] |  \- org.hibernate.common:hibernate-commons-annotations:jar:4.0.1.Final:
    compile
    [INFO] |     \- (org.jboss.logging:jboss-logging:jar:3.1.0.CR2:compile - omitted
     for conflict with 3.1.0.GA)
    [INFO] +- org.hibernate:hibernate-entitymanager:jar:4.1.4.Final:compile
    [INFO] |  +- (org.jboss.logging:jboss-logging:jar:3.1.0.GA:compile - omitted for
     duplicate)
    [INFO] |  +- (org.hibernate:hibernate-core:jar:4.1.4.Final:compile - omitted for
     duplicate)
    [INFO] |  +- (org.jboss.spec.javax.transaction:jboss-transaction-api_1.1_spec:ja
    r:1.0.0.Final:compile - omitted for duplicate)
    [INFO] |  +- (dom4j:dom4j:jar:1.6.1:compile - omitted for duplicate)
    [INFO] |  +- (org.hibernate.javax.persistence:hibernate-jpa-2.0-api:jar:1.0.1.Fi
    nal:compile - omitted for duplicate)
    [INFO] |  +- (org.javassist:javassist:jar:3.15.0-GA:compile - omitted for duplic
    ate)
    [INFO] |  \- (org.hibernate.common:hibernate-commons-annotations:jar:4.0.1.Final
    :compile - omitted for duplicate)
    [INFO] +- org.hibernate:hibernate-validator:jar:4.3.0.Final:compile
    [INFO] |  +- javax.validation:validation-api:jar:1.0.0.GA:compile
    [INFO] |  \- (org.jboss.logging:jboss-logging:jar:3.1.0.CR2:compile - omitted fo
    r conflict with 3.1.0.GA)
    [INFO] +- com.google.inject.extensions:guice-persist:jar:3.0:compile
    [INFO] |  \- (com.google.inject:guice:jar:3.0:compile - omitted for duplicate)
    [INFO] +- org.hibernate:hibernate-c3p0:jar:4.1.4.Final:compile
    [INFO] |  +- (org.jboss.logging:jboss-logging:jar:3.1.0.GA:compile - omitted for
     duplicate)
    [INFO] |  +- (org.hibernate:hibernate-core:jar:4.1.4.Final:compile - omitted for
     duplicate)
    [INFO] |  \- c3p0:c3p0:jar:0.9.1:compile
    [INFO] +- com.googlecode.gwtquery:gwtquery:jar:1.1.0:provided
    [INFO] +- com.google.guava:guava:jar:13.0-rc2:compile
    [INFO] +- com.google.guava:guava-gwt:jar:13.0-rc2:provided
    [INFO] |  \- (com.google.guava:guava:jar:13.0-rc2:provided - omitted for duplica
    te)
    [INFO] +- org.mindrot:jbcrypt:jar:0.3m:compile
    [INFO] +- javax.mail:mail:jar:1.4.5:compile
    [INFO] |  \- javax.activation:activation:jar:1.1:compile
    [INFO] +- edu.utsouthwestern.qbri.remoter:service-bundle:jar:1.0-SNAPSHOT:compil
    e
    [INFO] |  +- org.nuiton.thirdparty:Rserve:jar:0.6-1:compile
    [INFO] |  +- org.nuiton.thirdparty:REngine:jar:0.6-1:compile
    [INFO] |  +- org.apache.cxf:cxf-rt-frontend-jaxws:jar:2.5.1:compile
    [INFO] |  |  +- xml-resolver:xml-resolver:jar:1.2:compile
    [INFO] |  |  +- asm:asm:jar:3.3:compile
    [INFO] |  |  +- org.apache.cxf:cxf-api:jar:2.5.1:compile
    [INFO] |  |  |  +- org.apache.cxf:cxf-common-utilities:jar:2.5.1:compile
    [INFO] |  |  |  |  +- (org.apache.ws.xmlschema:xmlschema-core:jar:2.0.1:compile
    - omitted for duplicate)
    [INFO] |  |  |  |  \- org.codehaus.woodstox:woodstox-core-asl:jar:4.1.1:runtime
    [INFO] |  |  |  |     \- org.codehaus.woodstox:stax2-api:jar:3.1.1:runtime
    [INFO] |  |  |  +- org.apache.ws.xmlschema:xmlschema-core:jar:2.0.1:compile
    [INFO] |  |  |  +- org.apache.neethi:neethi:jar:3.0.1:compile
    [INFO] |  |  |  \- wsdl4j:wsdl4j:jar:1.6.2:compile
    [INFO] |  |  +- org.apache.cxf:cxf-rt-core:jar:2.5.1:compile
    [INFO] |  |  |  +- (org.apache.cxf:cxf-api:jar:2.5.1:compile - omitted for dupli
    cate)
    [INFO] |  |  |  +- com.sun.xml.bind:jaxb-impl:jar:2.1.13:compile
    [INFO] |  |  |  +- (org.apache.ws.xmlschema:xmlschema-core:jar:2.0.1:compile - o
    mitted for duplicate)
    [INFO] |  |  |  \- org.apache.geronimo.specs:geronimo-javamail_1.4_spec:jar:1.7.
    1:compile
    [INFO] |  |  +- org.apache.cxf:cxf-rt-bindings-soap:jar:2.5.1:compile
    [INFO] |  |  |  +- (org.apache.cxf:cxf-api:jar:2.5.1:compile - omitted for dupli
    cate)
    [INFO] |  |  |  +- org.apache.cxf:cxf-tools-common:jar:2.5.1:compile
    [INFO] |  |  |  |  +- (wsdl4j:wsdl4j:jar:1.6.2:compile - omitted for duplicate)
    [INFO] |  |  |  |  +- (com.sun.xml.bind:jaxb-impl:jar:2.1.13:compile - omitted f
    or duplicate)
    [INFO] |  |  |  |  +- (org.apache.cxf:cxf-api:jar:2.5.1:compile - omitted for du
    plicate)
    [INFO] |  |  |  |  +- (org.apache.cxf:cxf-common-utilities:jar:2.5.1:compile - o
    mitted for duplicate)
    [INFO] |  |  |  |  \- (org.apache.cxf:cxf-rt-core:jar:2.5.1:compile - omitted fo
    r duplicate)
    [INFO] |  |  |  \- org.apache.cxf:cxf-rt-databinding-jaxb:jar:2.5.1:compile
    [INFO] |  |  |     +- (org.apache.cxf:cxf-api:jar:2.5.1:compile - omitted for du
    plicate)
    [INFO] |  |  |     +- (org.apache.cxf:cxf-rt-core:jar:2.5.1:compile - omitted fo
    r duplicate)
    [INFO] |  |  |     \- (com.sun.xml.bind:jaxb-impl:jar:2.1.13:compile - omitted f
    or duplicate)
    [INFO] |  |  +- org.apache.cxf:cxf-rt-bindings-xml:jar:2.5.1:compile
    [INFO] |  |  |  +- (org.apache.cxf:cxf-api:jar:2.5.1:compile - omitted for dupli
    cate)
    [INFO] |  |  |  \- (org.apache.cxf:cxf-rt-databinding-jaxb:jar:2.5.1:compile - o
    mitted for duplicate)
    [INFO] |  |  +- org.apache.cxf:cxf-rt-frontend-simple:jar:2.5.1:compile
    [INFO] |  |  |  +- (org.apache.cxf:cxf-api:jar:2.5.1:compile - omitted for dupli
    cate)
    [INFO] |  |  |  +- (org.apache.cxf:cxf-rt-core:jar:2.5.1:compile - omitted for d
    uplicate)
    [INFO] |  |  |  \- (org.apache.cxf:cxf-rt-bindings-soap:jar:2.5.1:compile - omit
    ted for duplicate)
    [INFO] |  |  \- org.apache.cxf:cxf-rt-ws-addr:jar:2.5.1:compile
    [INFO] |  |     +- (org.apache.cxf:cxf-api:jar:2.5.1:compile - omitted for dupli
    cate)
    [INFO] |  |     +- (org.apache.cxf:cxf-common-utilities:jar:2.5.1:compile - omit
    ted for duplicate)
    [INFO] |  |     \- (org.apache.cxf:cxf-rt-bindings-soap:jar:2.5.1:compile - omit
    ted for duplicate)
    [INFO] |  \- org.apache.cxf:cxf-rt-transports-http:jar:2.5.1:compile
    [INFO] |     +- (org.apache.cxf:cxf-api:jar:2.5.1:compile - omitted for duplicat
    e)
    [INFO] |     +- org.apache.cxf:cxf-rt-transports-common:jar:2.5.1:compile
    [INFO] |     |  +- (org.apache.cxf:cxf-api:jar:2.5.1:compile - omitted for dupli
    cate)
    [INFO] |     |  \- (org.apache.cxf:cxf-rt-core:jar:2.5.1:compile - omitted for d
    uplicate)
    [INFO] |     +- (org.apache.cxf:cxf-rt-core:jar:2.5.1:compile - omitted for dupl
    icate)
    [INFO] |     \- org.springframework:spring-web:jar:3.0.6.RELEASE:compile
    [INFO] |        +- (aopalliance:aopalliance:jar:1.0:compile - omitted for duplic
    ate)
    [INFO] |        +- org.springframework:spring-beans:jar:3.0.6.RELEASE:compile
    [INFO] |        |  \- (org.springframework:spring-core:jar:3.0.6.RELEASE:compile
     - omitted for duplicate)
    [INFO] |        +- org.springframework:spring-context:jar:3.0.6.RELEASE:compile
    [INFO] |        |  +- org.springframework:spring-aop:jar:3.0.6.RELEASE:compile
    [INFO] |        |  |  +- (aopalliance:aopalliance:jar:1.0:compile - omitted for
    duplicate)
    [INFO] |        |  |  +- (org.springframework:spring-asm:jar:3.0.6.RELEASE:compi
    le - omitted for duplicate)
    [INFO] |        |  |  +- (org.springframework:spring-beans:jar:3.0.6.RELEASE:com
    pile - omitted for duplicate)
    [INFO] |        |  |  \- (org.springframework:spring-core:jar:3.0.6.RELEASE:comp
    ile - omitted for duplicate)
    [INFO] |        |  +- (org.springframework:spring-beans:jar:3.0.6.RELEASE:compil
    e - omitted for duplicate)
    [INFO] |        |  +- (org.springframework:spring-core:jar:3.0.6.RELEASE:compile
     - omitted for duplicate)
    [INFO] |        |  +- org.springframework:spring-expression:jar:3.0.6.RELEASE:co
    mpile
    [INFO] |        |  |  \- (org.springframework:spring-core:jar:3.0.6.RELEASE:comp
    ile - omitted for duplicate)
    [INFO] |        |  \- org.springframework:spring-asm:jar:3.0.6.RELEASE:compile
    [INFO] |        \- org.springframework:spring-core:jar:3.0.6.RELEASE:compile
    [INFO] |           +- (org.springframework:spring-asm:jar:3.0.6.RELEASE:compile
    - omitted for duplicate)
    [INFO] |           \- commons-logging:commons-logging:jar:1.1.1:compile
    [INFO] +- org.apache.commons:commons-io:jar:1.3.2:compile
    [INFO] +- com.googlecode.gwt.charts:gwt-charts:jar:0.9.5:compile
    [INFO] +- junit:junit:jar:4.10:test
    [INFO] |  \- org.hamcrest:hamcrest-core:jar:1.1:test
    [INFO] +- org.mockito:mockito-all:jar:1.9.5-rc1:test
    [INFO] +- org.jukito:jukito:jar:1.1:test
    [INFO] |  +- org.mockito:mockito-core:jar:1.8.5:test
    [INFO] |  |  +- (org.hamcrest:hamcrest-core:jar:1.1:test - omitted for duplicate
    )
    [INFO] |  |  \- org.objenesis:objenesis:jar:1.0:test
    [INFO] |  +- (junit:junit:jar:4.5:test - omitted for conflict with 4.10)
    [INFO] |  +- (com.google.inject:guice:jar:3.0:test - omitted for duplicate)
    [INFO] |  \- (com.google.inject.extensions:guice-assistedinject:jar:3.0:test - o
    mitted for duplicate)
    [INFO] +- org.seleniumhq.selenium:selenium-java:jar:2.22.0:test
    [INFO] |  +- org.seleniumhq.selenium:selenium-android-driver:jar:2.22.0:test
    [INFO] |  |  \- org.seleniumhq.selenium:selenium-remote-driver:jar:2.22.0:test
    [INFO] |  |     +- cglib:cglib-nodep:jar:2.1_3:test
    [INFO] |  |     +- (org.json:json:jar:20080701:test - omitted for conflict with
    20090211)
    [INFO] |  |     +- (org.seleniumhq.selenium:selenium-api:jar:2.22.0:test - omitt
    ed for duplicate)
    [INFO] |  |     +- (org.apache.httpcomponents:httpclient:jar:4.1.2:test - omitte
    d for duplicate)
    [INFO] |  |     +- (com.google.guava:guava:jar:12.0:test - omitted for conflict
    with 13.0-rc2)
    [INFO] |  |     +- (org.apache.commons:commons-exec:jar:1.1:test - omitted for d
    uplicate)
    [INFO] |  |     +- (net.java.dev.jna:jna:jar:3.4.0:test - omitted for duplicate)

    [INFO] |  |     \- (net.java.dev.jna:platform:jar:3.4.0:test - omitted for dupli
    cate)
    [INFO] |  +- org.seleniumhq.selenium:selenium-chrome-driver:jar:2.22.0:test
    [INFO] |  |  \- (org.seleniumhq.selenium:selenium-remote-driver:jar:2.22.0:test
    - omitted for duplicate)
    [INFO] |  +- org.seleniumhq.selenium:selenium-htmlunit-driver:jar:2.22.0:test
    [INFO] |  |  +- org.seleniumhq.selenium:selenium-api:jar:2.22.0:test
    [INFO] |  |  |  \- (com.google.guava:guava:jar:12.0:test - omitted for conflict
    with 13.0-rc2)
    [INFO] |  |  +- net.sourceforge.htmlunit:htmlunit:jar:2.9:test
    [INFO] |  |  |  +- xalan:xalan:jar:2.7.1:test
    [INFO] |  |  |  |  \- xalan:serializer:jar:2.7.1:test
    [INFO] |  |  |  |     \- (xml-apis:xml-apis:jar:1.3.04:test - omitted for duplic
    ate)
    [INFO] |  |  |  +- commons-collections:commons-collections:jar:3.2.1:test
    [INFO] |  |  |  +- commons-lang:commons-lang:jar:2.6:test
    [INFO] |  |  |  +- org.apache.httpcomponents:httpmime:jar:4.1.2:test
    [INFO] |  |  |  |  +- (org.apache.httpcomponents:httpcore:jar:4.1.2:test - omitt
    ed for duplicate)
    [INFO] |  |  |  |  \- (commons-logging:commons-logging:jar:1.1.1:test - omitted
    for duplicate)
    [INFO] |  |  |  +- commons-codec:commons-codec:jar:1.4:test
    [INFO] |  |  |  +- net.sourceforge.htmlunit:htmlunit-core-js:jar:2.9:test
    [INFO] |  |  |  +- xerces:xercesImpl:jar:2.9.1:test
    [INFO] |  |  |  |  \- xml-apis:xml-apis:jar:1.3.04:test
    [INFO] |  |  |  +- net.sourceforge.nekohtml:nekohtml:jar:1.9.15:test
    [INFO] |  |  |  +- net.sourceforge.cssparser:cssparser:jar:0.9.5:test
    [INFO] |  |  |  |  \- org.w3c.css:sac:jar:1.3:test
    [INFO] |  |  |  +- (commons-io:commons-io:jar:2.0.1:test - omitted for duplicate
    )
    [INFO] |  |  |  \- (commons-logging:commons-logging:jar:1.1.1:compile - scope up
    dated from test; omitted for duplicate)
    [INFO] |  |  \- org.apache.httpcomponents:httpclient:jar:4.1.2:test
    [INFO] |  |     +- org.apache.httpcomponents:httpcore:jar:4.1.2:test
    [INFO] |  |     \- (commons-logging:commons-logging:jar:1.1.1:compile - scope up
    dated from test; omitted for duplicate)
    [INFO] |  +- org.seleniumhq.selenium:selenium-firefox-driver:jar:2.22.0:test
    [INFO] |  |  +- (org.seleniumhq.selenium:selenium-remote-driver:jar:2.22.0:test
    - omitted for duplicate)
    [INFO] |  |  +- commons-io:commons-io:jar:2.0.1:test
    [INFO] |  |  \- org.apache.commons:commons-exec:jar:1.1:test
    [INFO] |  +- org.seleniumhq.selenium:selenium-ie-driver:jar:2.22.0:test
    [INFO] |  |  +- net.java.dev.jna:jna:jar:3.4.0:test
    [INFO] |  |  +- net.java.dev.jna:platform:jar:3.4.0:test
    [INFO] |  |  \- (org.seleniumhq.selenium:selenium-remote-driver:jar:2.22.0:test
    - omitted for duplicate)
    [INFO] |  +- org.seleniumhq.selenium:selenium-iphone-driver:jar:2.22.0:test
    [INFO] |  |  \- (org.seleniumhq.selenium:selenium-remote-driver:jar:2.22.0:test
    - omitted for duplicate)
    [INFO] |  +- org.seleniumhq.selenium:selenium-safari-driver:jar:2.22.0:test
    [INFO] |  |  +- (org.seleniumhq.selenium:selenium-remote-driver:jar:2.22.0:test
    - omitted for duplicate)
    [INFO] |  |  \- (org.webbitserver:webbit:jar:0.4.6:test - omitted for duplicate)

    [INFO] |  +- org.seleniumhq.selenium:selenium-support:jar:2.22.0:test
    [INFO] |  |  \- (org.seleniumhq.selenium:selenium-api:jar:2.22.0:test - omitted
    for duplicate)
    [INFO] |  \- org.webbitserver:webbit:jar:0.4.6:test
    [INFO] |     \- org.jboss.netty:netty:jar:3.2.7.Final:test
    [INFO] +- info.cukes:cucumber-java:jar:1.0.11:test
    [INFO] |  \- info.cukes:cucumber-core:jar:1.0.11:test
    [INFO] |     +- info.cukes:gherkin:jar:2.11.1:test
    [INFO] |     \- info.cukes:cucumber-html:jar:0.2.1:test
    [INFO] +- info.cukes:cucumber-guice:jar:1.0.11:test
    [INFO] |  \- (info.cukes:cucumber-java:jar:1.0.11:test - omitted for duplicate)
    [INFO] \- info.cukes:cucumber-junit:jar:1.0.11:test
    [INFO]    \- (info.cukes:cucumber-core:jar:1.0.11:test - omitted for duplicate)
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD SUCCESS
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time: 5.014s
    [INFO] Finished at: Tue Sep 11 09:08:32 CDT 2012
    [INFO] Final Memory: 13M/218M
    [INFO] ------------------------------------------------------------------------

RemoteR 应该是一个自主运行的 CXF SOAP Web 服务。我在这个项目中想要的只是“客户端”部分,它能够向其他地方托管的 Web 服务发出请求。因此,在我当前的项目中看到 spring 依赖项让我怀疑我可能在这里遇到了一些 JPA 冲突。

【问题讨论】:

  • 你能显示mvc dependency:tree -Dverbose的输出吗?

标签: java hibernate jpa ejb guice-persist


【解决方案1】:

你可以通过

查看你有哪些依赖,包括传递依赖

mvn dependency:tree

但是我会假设这个 jar 来自您的应用程序服务器。 jOnAS 是偶然的吗?

这是一个依赖 Hibernate 实现 JPA 的示例

    <properties>        
            <hibernate.version>4.1.4-Final</hibernate.version>
    </properties>
    ......
    ......
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-entitymanager</artifactId>
        <version>${hibernate.version}</version>         
    </dependency>
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-core</artifactId>
        <version>${hibernate.version}</version>         
    </dependency>
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-annotations</artifactId>
        <version>${hibernate.version}</version>         
    </dependency>

【讨论】:

  • 不是——我在 Jetty 中测试并在生产中使用 Tomcat。
  • 好的,那么这就是我认为的 maven 依赖项。请参阅 Mark 关于依赖 JPA 1 和/或 2 的回答。基本上 JPA​​ 是一种规范,因此您需要依赖于实现。例如休眠。
  • 编辑答案以包含休眠依赖的示例
  • 谢谢。这就是我现在的样子,但我也继承了一些较旧的 Spring 依赖项(请参阅对问题的编辑),所以我认为这可能是我的问题。
  • 啊,我明白了。是的,听起来有些依赖会带来一些你不想要的东西。例如 com.arcbees.core 似乎依赖于 JPA 1
【解决方案2】:

你在这里混合了很多概念,让我澄清一下......

第一个 JPA 与 EJB - JPA 代表 Java 持久性架构 - 它是一种规范,是 Java EE 规范的一部分,描述了如何实现 ORM 并将您的东西存储在数据库中。在后台,它可以使用 hibernate、toplink 或任何其他 ORM 框架来实现。

现在 EJB - 代表 Enterprise Java Beans 是另一个解决业务逻辑并定义如何创建远程调用的代码的规范。 从历史上看(在 EJB3 之前),ejb 的规范提到了 JPA 和 EJB,因此是混合的。但是现在分离很明显了。

关于你的问题。

javax.persistence.EntityManager 是 JPA 的一个类,但整个 Criteria API 仅在 JPA 2.0 中添加 因此,您的第一个链接不包含它只是因为它描述了 JPA 1.0 规范

你应该怎么做? 答案和往常一样“取决于”:)

在理想情况下,我会告诉您类似:“升级到 JPA 2.0 并使用 Criteria API”

从技术上讲,你应该更新 pom.xml 中的依赖版本(你说你的项目是 mavenized),你会没事的。

但在实践中并不那么容易:

  • Java EE 是由容器(也称为应用服务器)实现的,因此您很有可能在 JBoss/Glassfish/WebShere 中运行您的项目,您可以命名它。 通常每个版本的应用服务器都会在 Java EE 上实现特定的版本。

    JPA 1.0 是 Java EE 5.0 的一部分,而 JPA 2.0(使用您的标准 api)是 Java EE 6.0 的一部分

    所以如果你真的想使用这个标准 api,你应该确保应用服务器能够运行 Java EE 6。

  • 我必须提到的另一个问题是,在底层,ORM 框架也在不断发展,因此如果您正在升级,您将获得更新版本的,例如 hibernate。

    这可能会导致一些不一致,尤其是在复杂的查询中。

所以选择权在你。

免责声明:我没有使用 guice-persist,所以我的答案针对的是在 Java EE 容器中运行的应用程序。

希望对你有帮助

【讨论】:

  • 谢谢。也许我应该提到我使用的是 Hibernate 4.1.4.Final。我的阅读表明最近可以使用 JPA2?我们在 Tomcat 6 上,我相信,在它后面使用的是 JEE6。我完全有可能在尝试引入其他项目(较旧且基于 Spring)时破坏了我们的 pom.xml 文件。是否可以在一个项目中“覆盖”或重复实现 javax.persistence?
  • 注意 Tomcat 不是 JEE 应用服务器。
  • 当然,当我回答时,我不知道 Jeff Allen 运行 tomcat :) 抱歉。在这种情况下,至少您不需要升级应用程序服务器的麻烦,但我的其余论点仍然成立,我相信
  • 好吧,我不会把它混在同一个项目中,类名是一样的(比如实体管理器),我不认为你需要一个类加载器地狱,除非你正在使用类似于 OSGI...
猜你喜欢
  • 2023-03-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-12
  • 1970-01-01
  • 1970-01-01
  • 2014-08-14
  • 2018-06-25
相关资源
最近更新 更多