【问题标题】:tomcat 7 + jersey + hibernate 4.5.1 - NameNotFoundException - tried everythingtomcat 7 + jersey + hibernate 4.5.1 - NameNotFoundException - 尝试了一切
【发布时间】:2014-01-31 07:50:41
【问题描述】:

提前感谢您的帮助。我对此一无所知。我已经完成了所有设置(我认为正确),但没有任何效果。所以在这里发帖希望有人可以提供帮助。

POM.xml:

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>iam</groupId>
  <artifactId>iam</artifactId>
  <packaging>war</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>IAMS Web Service</name>
  <url>http://maven.apache.org</url>
  <properties>
        <jersey.version>2.5.1</jersey.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.build.timestamp.format>yyyyMMdd'T'HHmmss</maven.build.timestamp.format>
        <hibernate-core-version>4.3.1.Final</hibernate-core-version>
        <codi.version>1.0.5</codi.version>
    </properties>

    <repositories>
        <repository>
            <id>codelds</id>
            <url>https://code.lds.org/nexus/content/groups/main-repo</url>
        </repository>
    </repositories>

      <dependencies>
        <dependency>
        <groupId>org.glassfish.jersey</groupId>
        <artifactId>jersey-bom</artifactId>
        <version>${jersey.version}</version>
        <type>pom</type>
        <scope>import</scope>
        </dependency>
        <dependency>
                <groupId>org.hibernate</groupId>
                <artifactId>hibernate-core</artifactId>
                <version>${hibernate-core-version}</version>
            </dependency>
            <dependency>
                <groupId>org.hibernate</groupId>
                <artifactId>hibernate-entitymanager</artifactId>
                <version>${hibernate-core-version}</version>
            </dependency>
            <dependency>
                <groupId>org.glassfish.jersey.containers</groupId>
                <artifactId>jersey-container-servlet-core</artifactId>
                <version>${jersey.version}</version>
            </dependency>
            <!--  jackson dependencies for pojo/json support -->
            <dependency>
            <groupId>org.glassfish.jersey.media</groupId>
            <artifactId>jersey-media-json-jackson</artifactId>
            <version>${jersey.version}</version>
            </dependency>
            <!-- end jackson deps -->
            <dependency>
                <groupId>org.glassfish.jersey.media</groupId>
                <artifactId>jersey-media-json-processing</artifactId>
                <version>${jersey.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-lang3</artifactId>
            <version>3.0</version>
            </dependency>
            <!-- junit test and jersey client features -->
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>4.9</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>com.sun.jersey</groupId>
                <artifactId>jersey-client</artifactId>
                <version>1.8</version>
            </dependency>
            <dependency>
                <groupId>com.oracle</groupId>
                <artifactId>ojdbc6</artifactId>
                <version>11.2.0.3</version>
            </dependency>
            <dependency>
                <groupId>javax.mail</groupId>
                <artifactId>mail</artifactId>
                <version>1.4</version>
                <scope>provided</scope>
            </dependency>
            <!--  Weld/CDI Begin -->
            <dependency>
                <groupId>javax.enterprise</groupId>
                <artifactId>cdi-api</artifactId>
                <version>1.1</version>
                <scope>provided</scope>
            </dependency>
             <dependency>
                <groupId>javax.annotation</groupId>
                <artifactId>jsr250-api</artifactId>
                <version>1.0</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>javax.servlet</groupId>
                <artifactId>javax.servlet-api</artifactId>
                <version>3.0.1</version>
                <scope>provided</scope>
            </dependency>
      </dependencies>
      <build>
        <finalName>iam</finalName>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>3.1</version>
                    <inherited>true</inherited>
                    <configuration>
                        <source>1.7</source>
                        <target>1.7</target>
                    </configuration>
                </plugin>
                <plugin>
                    <artifactId>maven-war-plugin</artifactId>
                    <version>2.4</version>
                    <configuration>
                        <packagingExcludes>src/test/*</packagingExcludes>
                    </configuration>
                </plugin>
            <plugin>
            <groupId>org.eclipse.m2e</groupId>
            <artifactId>lifecycle-mapping</artifactId>
            <version>1.0.0</version>
            <configuration>
                <lifecycleMappingMetadata>
                    <pluginExecutions>
                        <!-- copy-dependency plugin -->
                        <pluginExecution>
                            <pluginExecutionFilter>
                                <groupId>org.apache.maven.plugins</groupId>
                                <artifactId>maven-dependency-plugin</artifactId>
                                <versionRange>[1.0.0,)</versionRange>
                                <goals>
                                    <goal>copy-dependencies</goal>
                                </goals>
                            </pluginExecutionFilter>
                            <action>
                                <ignore />
                            </action>
                        </pluginExecution>
                    </pluginExecutions>
                </lifecycleMappingMetadata>
            </configuration>
            </plugin>
            </plugins>
      </build>
    </project>

persistence.xml:

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0" 
            xmlns="http://java.sun.com/xml/ns/persistence"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
            xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
  <persistence-unit name="iamwsDev" transaction-type="RESOURCE_LOCAL">
  <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
  <non-jta-data-source>java:comp/env/jdbc/id1dev</non-jta-data-source>
  <properties>
    <property name="hibernate.dialect" value="org.hibernate.dialect.Oracle10gDialect" />
    <property name="hibernate.hbm2ddl.auto" value="none" />
    <property name="hibernate.show_sql" value="false" />
    <property name="hibernate.format_sql" value="false" />
    <property name="hibernate.default_schema" value="****"/>
  </properties>
  </persistence-unit>
</persistence>

Web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!-- This web.xml file is not required when using Servlet 3.0 container,
     see implementation details http://jersey.java.net/nonav/documentation/latest/jax-rs.html -->
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
    <servlet>
        <servlet-name>IAM Web Service Application</servlet-name>
        <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
        <!-- Don't allow scanning of resources, set each resource individually (below with provider.classnames) -->
        <!-- 
            <init-param>
                <param-name>jersey.config.server.provider.packages</param-name>
                <param-value>******</param-value>
            </init-param>
         -->
        <!--  comma separate the list of resource providers -->
        <init-param>
            <param-name>jersey.config.server.provider.classnames</param-name>
                <param-value>
                    ******.resources.*****
                </param-value>
        </init-param>
        <init-param>
          <param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name>
          <param-value>true</param-value>
        </init-param>
        <init-param>
            <param-name>javax.ws.rs.Application</param-name>
            <param-value>****.MyApplication</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <listener>
    <listener-class>*****.ServiceContextListener</listener-class>
    </listener>
    <servlet-mapping>
        <servlet-name>**** Application</servlet-name>
        <url-pattern>/*</url-pattern>
    </servlet-mapping>
    <resource-ref>
      <description>DB Connection</description>
      <res-ref-name>jdbc/id1dev</res-ref-name>
      <res-type>javax.sql.DataSource</res-type>
      <res-auth>Container</res-auth>
    </resource-ref>
</web-app>

Server.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
--><!-- Note:  A "Server" is not itself a "Container", so you may not
     define subcomponents such as "Valves" at this level.
     Documentation at /docs/config/server.html
 --><Server port="8005" shutdown="SHUTDOWN">
  <!-- Security listener. Documentation at /docs/config/listeners.html
  <Listener className="org.apache.catalina.security.SecurityListener" />
  -->
  <!--APR library loader. Documentation at /docs/apr.html -->
  <Listener SSLEngine="on" className="org.apache.catalina.core.AprLifecycleListener"/>
  <!--Initialize Jasper prior to webapps are loaded. Documentation at /docs/jasper-howto.html -->
  <Listener className="org.apache.catalina.core.JasperListener"/>
  <!-- Prevent memory leaks due to use of particular java/javax APIs-->
  <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener"/>
  <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"/>
  <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener"/>

  <!-- Global JNDI resources
       Documentation at /docs/jndi-resources-howto.html
  -->
  <GlobalNamingResources>
    <!-- Editable user database that can also be used by
         UserDatabaseRealm to authenticate users
    -->
    <Resource auth="Container" description="User database that can be updated and saved" factory="org.apache.catalina.users.MemoryUserDatabaseFactory" name="UserDatabase" pathname="conf/tomcat-users.xml" type="org.apache.catalina.UserDatabase"/>
    <Resource auth="Container" driverClassName="oracle.jdbc.OracleDriver" maxActive="20" maxIdle="10" maxWait="-1" name="jdbc/id1dev" password="****" type="javax.sql.DataSource" url="jdbc:oracle:thin:@<url>:<port>:<sid>" username="*****"/>
  </GlobalNamingResources>

最后,运行如下简单代码会引发异常(稍后进行堆栈跟踪):

public EntityManager getEntityManager() {
    EntityManagerFactory factory = Persistence.createEntityManagerFactory("jpa");
    if (factory != null) {
        return factory.createEntityManager();
    }
    return null;
}

堆栈跟踪:

   Got Connection jdbc:oracle:thin:@iddb1.dev.id.ubc.ca:1521:id1dev, UserName=*****, Oracle JDBC driver, 
    Success obtaining connection
    2014-01-31 15:31:53 DEBUG logging:53 - Logging Provider: org.jboss.logging.Log4jLoggerProvider
    2014-01-31 15:31:53 WARN  HibernatePersistence:58 - HHH015016: Encountered a deprecated javax.persistence.spi.PersistenceProvider [org.hibernate.ejb.HibernatePersistence]; use [org.hibernate.jpa.HibernatePersistenceProvider] instead.
    2014-01-31 15:31:53 WARN  HibernatePersistence:58 - HHH015016: Encountered a deprecated javax.persistence.spi.PersistenceProvider [org.hibernate.ejb.HibernatePersistence]; use [org.hibernate.jpa.HibernatePersistenceProvider] instead.
    2014-01-31 15:31:53 WARN  HibernatePersistence:58 - HHH015016: Encountered a deprecated javax.persistence.spi.PersistenceProvider [org.hibernate.ejb.HibernatePersistence]; use [org.hibernate.jpa.HibernatePersistenceProvider] instead.
    2014-01-31 15:31:53 DEBUG ClassLoaderServiceImpl:139 - Incoming config yielded no classloaders; adding standard SE ones
    2014-01-31 15:31:54 DEBUG HibernatePersistenceProvider:102 - Located and parsed 1 persistence units; checking each
    2014-01-31 15:31:54 DEBUG HibernatePersistenceProvider:110 - Checking persistence-unit [name=iamwsDev, explicit-provider=org.hibernate.jpa.HibernatePersistenceProvider] against incoming persistence unit name [iamwsDev]
    2014-01-31 15:31:54 DEBUG ProviderChecker:106 - Persistence-unit [iamwsDev] requested PersistenceProvider [org.hibernate.jpa.HibernatePersistenceProvider]
    2014-01-31 15:31:54 DEBUG LogHelper:117 - PersistenceUnitInfo [
        name: iamwsDev
        persistence provider classname: org.hibernate.jpa.HibernatePersistenceProvider
        classloader: null
        excludeUnlistedClasses: false
        JTA datasource: null
        Non JTA datasource: java:comp/env/jdbc/id1dev
        Transaction type: RESOURCE_LOCAL
        PU root URL: file:/Users/nchecknita/UBC/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/iamws/WEB-INF/classes/
        Shared Cache Mode: null
        Validation Mode: null
        Jar files URLs []
        Managed classes names []
        Mapping files names []
        Properties [
            hibernate.default_schema: CWLOGIN
            hibernate.dialect: org.hibernate.dialect.Oracle10gDialect
            hibernate.show_sql: false
            hibernate.hbm2ddl.auto: none
            hibernate.format_sql: false]
    2014-01-31 15:31:54 DEBUG IntegratorServiceImpl:63 - Adding Integrator [org.hibernate.cfg.beanvalidation.BeanValidationIntegrator].
    2014-01-31 15:31:54 DEBUG IntegratorServiceImpl:63 - Adding Integrator [org.hibernate.secure.spi.JaccIntegrator].
    2014-01-31 15:31:54 DEBUG IntegratorServiceImpl:63 - Adding Integrator [org.hibernate.cache.internal.CollectionCacheInvalidator].
    2014-01-31 15:31:54 DEBUG IntegratorServiceImpl:63 - Adding Integrator [org.hibernate.jpa.event.spi.JpaIntegrator].
    2014-01-31 15:31:54 DEBUG StrategySelectorImpl:79 - Registering named strategy selector [org.hibernate.dialect.Dialect] : [MySQL5] -> [org.hibernate.dialect.MySQL5Dialect] (replacing [org.hibernate.dialect.MySQL5Dialect])
    2014-01-31 15:31:54 DEBUG StrategySelectorImpl:79 - Registering named strategy selector [org.hibernate.dialect.Dialect] : [MySQL5InnoDB] -> [org.hibernate.dialect.MySQL5InnoDBDialect] (replacing [org.hibernate.dialect.MySQL5InnoDBDialect])
    2014-01-31 15:31:54 INFO  Version:54 - HHH000412: Hibernate Core {4.3.1.Final}
    2014-01-31 15:31:54 INFO  Environment:239 - HHH000206: hibernate.properties not found
    2014-01-31 15:31:54 INFO  Environment:346 - HHH000021: Bytecode provider name : javassist
    2014-01-31 15:31:55 DEBUG ServiceBinding:85 - Overriding existing service binding 
[STUFF SNIPPED]
    2014-01-31 15:31:56 INFO  Version:66 - HCANN000001: Hibernate Commons Annotations {4.0.4.Final}
[MORE STUFF SNIPPED]
strategy [enhanced-table] -> [org.hibernate.id.enhanced.TableGenerator]
    2014-01-31 15:31:56 DEBUG Configuration:1841 - Preparing to build session factory with filters : {}
    2014-01-31 15:31:56 DEBUG HibernatePersistenceProvider:80 - Unable to build entity manager factory
    org.hibernate.engine.jndi.JndiException: Unable to lookup JNDI name [java:comp/env/jdbc/id1dev]
        at org.hibernate.engine.jndi.internal.JndiServiceImpl.locate(JndiServiceImpl.java:117)
        at org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.configure(DatasourceConnectionProviderImpl.java:115)
        at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:89)
        at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:206)
        at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:178)
        at org.hibernate.engine.jdbc.internal.JdbcServicesImpl.buildJdbcConnectionAccess(JdbcServicesImpl.java:260)
        at org.hibernate.engine.jdbc.internal.JdbcServicesImpl.configure(JdbcServicesImpl.java:94)
        at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:89)
        at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:206)
        at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:178)
        at org.hibernate.cfg.Configuration.buildTypeRegistrations(Configuration.java:1885)
        at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1843)
        at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:850)
        at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:843)
        at org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl.withTccl(ClassLoaderServiceImpl.java:399)
        at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:842)
        at org.hibernate.jpa.HibernatePersistenceProvider.createEntityManagerFactory(HibernatePersistenceProvider.java:73)
        at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:54)
        at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:55)
        at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:39)
        at ca.ubc.iamws.model.DbConnect.getEntityManager(DbConnect.java:24)
        at ca.ubc.iamws.resources.EmployeeAutoCreate.getIt(EmployeeAutoCreate.java:66)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory$1.invoke(ResourceMethodInvocationHandlerFactory.java:81)
        at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:151)
        at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:171)
        at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$TypeOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:195)
        at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:104)
        at org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:402)
        at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:349)
        at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:106)
        at org.glassfish.jersey.server.ServerRuntime$1.run(ServerRuntime.java:259)
        at org.glassfish.jersey.internal.Errors$1.call(Errors.java:271)
        at org.glassfish.jersey.internal.Errors$1.call(Errors.java:267)
        at org.glassfish.jersey.internal.Errors.process(Errors.java:315)
        at org.glassfish.jersey.internal.Errors.process(Errors.java:297)
        at org.glassfish.jersey.internal.Errors.process(Errors.java:267)
        at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:318)
        at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:236)
        at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:1010)
        at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:373)
        at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:382)
        at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:345)
        at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:220)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
        at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
        at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:409)
        at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1044)
        at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607)
        at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:313)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:744)
    Caused by: javax.naming.NameNotFoundException: Name [java:comp/env/jdbc/id1dev] is not bound in this Context. Unable to find [java:comp].
        at org.apache.naming.NamingContext.lookup(NamingContext.java:820)
        at org.apache.naming.NamingContext.lookup(NamingContext.java:154)
        at javax.naming.InitialContext.lookup(InitialContext.java:415)
        at org.hibernate.engine.jndi.internal.JndiServiceImpl.locate(JndiServiceImpl.java:114)

【问题讨论】:

  • 我确实添加了一些****以掩盖私人细节......
  • 嗨@Nena,你的问题解决了吗?我有同样的问题。
  • 嗨,artaxerxe,我现在才注意到我们的帖子 - 不,我从来没有修复它。我已经发布了一些额外的细节,但无论谁对帖子进行审核,都将其删除,因为他们认为这“不是答案”。我没有回去更新我原来的问题,因为如果没有原来的问题,那么在不完全重写问题的情况下添加额外的细节是没有意义的。如您所知,仅编写和正确构建问题就需要付出相当大的努力。抱歉,我无法提供进一步的帮助!

标签: java hibernate tomcat jpa jersey


【解决方案1】:

Hibernate 未找到数据源“java:comp/env/jdbc/id1dev”,请检查您的数据源配置。

将 context.xml 添加到包含此内容的 META-INF 文件夹中,

<?xml version='1.0' encoding='utf-8'?>
<Context>
    <ResourceLink name="jdbc/id1dev" global="jdbc/id1dev" type="javax.sql.DataSource" />
</Context>

它在您的应用程序上下文中创建对您在 server.xml 中声明的全局数据源的引用

【讨论】:

  • 要么从你的 persistence.xml 中删除 'hibernate.connection.datasource' 属性
  • 数据源配置是指server.xml/context.xml吗?我确实包含了该文件(server.xml),见上文。我似乎没有任何问题,但可能是我缺少的东西?
  • 这是 server.xml 中的相关部分(我也尝试将其放在 context.xml 中,两者都不起作用): 另外,这里是 context.xml 中的 sn-p:
  • 对不起。首先,你在persistence.xml中为hibernate提供了两种不同的方式来访问你的数据库,你应该使用'hibernate.connection.datasource'或'javax.persistence ...',但不能同时使用,一个和删除另一个。
  • 如果您选择了 'hibernate.connection.datasource' 配置,然后检查我的答案的更新,输入 context.xml 并告诉我进展如何
猜你喜欢
  • 1970-01-01
  • 2019-09-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-07
  • 2015-01-26
  • 2012-12-17
  • 2021-05-04
相关资源
最近更新 更多