2011-08-05 6 views
-1

マイdatasource.xmlデータソースは

<?xml version="1.0" encoding="UTF-8"?> 

    <datasource> 
     <local-tx-datasource> 
      <jndi-name>SampleDS</jndi-name> 
      <connection-url>jdbc:mysql://www.mycomp.com:3306/mydb    </connection-url> 
      <driver-class>com.mysql.jdbc.Driver</driver-class> 
      <min-pool-size> 
       1>/min-pool-size> 
       <max-pool-size> 
        20>/max-pool-size> 
    admin</user-name> 
         <password>admin</password> 
         <metadata> 
          <type-mapping & g ; mySQL</type-mapping> 
         </metadata> 
     </local-tx-datasource> 

</datasource> 

persistence.xmlの

<persistence xmlns="http://java.sun.com/xml/ns/persistence" 
    version="1.0"> 

    <persistence-unit name="DefaultPersistenceUnit" 
     transaction-type="JTA"> 
     <provider>org.hibernate.ejb.HibernatePersistence</provider> 
     <class>User</class> 

     <properties> 
      <property name="hibernate.connection.url" value="jdbc:mysql://www.mycomp.com:3306/mydb" /> 
      <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"></property> 
      <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver" /> 
      <property name="hibernate.connection.password" value="admin" /> 
      <property name="hibernate.connection.username" value="admin" /> 
      <property name="hibernate.connection.datasource" value="SampleDS" /> 
     </properties> 
    </persistence-unit> 
</persistence> 

UserList.java

public List<User> getUsers(){ 
    EntityManagerFactory emf = Persistence.createEntityManagerFactory("DefaultPersistenceUnit"); 
    EntityManager em = emf.createEntityManager(); 
    Query query = em.createQuery(CityList.EJBQL); 
    List<User> users= query.getResultList(); 

    return users; 
} 

私のXHTMLページにアクセスしたとき、私は取得していますデプロイした後、コンテキストにバインドされていませんエラー

javax.persistence.PersistenceException: [PersistenceUnit: DefaultPersistenceUnit] Unable to build EntityManagerFactory 
    at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:915) 
    at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:57) 
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:48) 
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:32) 
    at com.myapp.action.UserList.getUsers(UserList.java:19) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
    at java.lang.reflect.Method.invoke(Method.java:597) 
    at javax.el.BeanELResolver.invoke(BeanELResolver.java:467) 
    at javax.el.CompositeELResolver.invoke(CompositeELResolver.java:161) 
    at org.apache.el.parser.AstValue.getValue(AstValue.java:159) 
    at org.apache.el.parser.AstDeferredExpression.getValue(AstDeferredExpression.java:44) 
    at org.apache.el.parser.AstCompositeExpression.getValue(AstCompositeExpression.java:50) 
    at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:189) 
    at com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:106) 
    at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:190) 
    at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:178) 
    at javax.faces.component.UIOutput.getValue(UIOutput.java:165) 
    at com.sun.faces.renderkit.html_basic.HtmlBasicInputRenderer.getValue(HtmlBasicInputRenderer.java:201) 
    at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.getCurrentValue(HtmlBasicRenderer.java:351) 
    at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeEnd(HtmlBasicRenderer.java:160) 
    at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:879) 
    at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1670) 
    at javax.faces.render.Renderer.encodeChildren(Renderer.java:164) 
    at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:849) 
    at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1663) 
    at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1666) 
    at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1666) 
    at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:389) 
    at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:127) 
    at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:117) 
    at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:97) 
    at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:135) 
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:335) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164) 
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100) 
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:563) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:403) 
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:301) 
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:162) 
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:140) 
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:309) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) 
    at java.lang.Thread.run(Thread.java:662) 
Caused by: org.hibernate.HibernateException: Could not find datasource 
    at org.hibernate.connection.DatasourceConnectionProvider.configure(DatasourceConnectionProvider.java:79) 
    at org.hibernate.connection.ConnectionProviderFactory.newConnectionProvider(ConnectionProviderFactory.java:143) 
    at org.hibernate.ejb.InjectionSettingsFactory.createConnectionProvider(InjectionSettingsFactory.java:51) 
    at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:90) 
    at org.hibernate.cfg.Configuration.buildSettingsInternal(Configuration.java:2863) 
    at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2859) 
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1870) 
    at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:906) 
    ... 51 more 
Caused by: javax.naming.NameNotFoundException: Name SampleDS is not bound in this Context 
    at org.apache.naming.NamingContext.lookup(NamingContext.java:803) 
    at org.apache.naming.NamingContext.lookup(NamingContext.java:159) 
    at org.apache.naming.SelectorContext.lookup(SelectorContext.java:158) 
    at javax.naming.InitialContext.lookup(InitialContext.java:392) 
    at org.hibernate.connection.DatasourceConnectionProvider.configure(DatasourceConnectionProvider.java:75) 
    ... 58 more 

解決方法

答えて

1

プロパティhibernate.connection.datasourceでは、hibernateにJNDIでデータソースを探すよう指示しています。明らかにあなたはそれを持っていません。他のすべての必要な接続プロパティを指定しているので、私はあなたがそれを行うことを本当に意味するとは思わない。

+0

SampleDSを命名コンテキストに保持する方法は? – Gnanam

+0

Tomcatを使用しているように見えるので、[Tomcat docs](http://tomcat.apache.org/tomcat-6.0-doc/jndi-resources-howto.html)を試してみてください。 –