1

私は現在、Tomcat 7 用の 64 ビット AmazonLinux サーバーを使用して、Maven でビルドされた .war ファイルを Elastic Beanstalk にデプロイしています。ボトム):

javax.naming.NamingException: com.mysql.jdbc.Driver

外部の Xeround インスタンスに接続しています。Web を読み回した後、アプリの context.xml を次のように変更しようとしました。

<Resource auth="Container" 
    factory="org.apache.tomcat.jdbc.pool.DataSourceFactory" //<- NOT THERE BEFORE
    driverClassName="com.mysql.jdbc.Driver" 
    logAbandoned="true" 
    maxActive="100" 
    maxIdle="30" 
    maxWait="10000" 
    name="jdbc/xxxx-01292013" 
    password="xxxx" 
    removeAbandoned="true" 
    removeAbandonedTimeout="60" 
    type="javax.sql.DataSource" 
    url="jdbc:mysql://instancexxxx.db.xeround.com:xxxx/xxxx-01292013?   autoReconnect=true"
    username="xxxx-general"/>

以前に動作していたバージョンを Elastic Beanstalk Tomcat 7 アプリにアップロードして使用する際に問題が発生し、動作させる方法を見つけた人はいますか?

この投稿も読みましたが、Netbeans maven プロジェクトの .ebextensions ファイルに追加する場所がわかりません。また、それが何をするのかわかりません。助けてくれてありがとう。

1) コンストラクターの注入エラー、javax.persistence.PersistenceException: [PersistenceUnit: myapp-persist] Unable to build EntityManagerFactory at com.berger.jpa.EntityInitializer.(EntityInitializer.java:12)
while locating com.berger.jpa.EntityInitializer for field com.nexuscop.startup.StartupListener.entityInit(StartupListener.java:40) で、com.nexuscop.startup.StartupListener を見つけます。

com.google.inject.internal.Errors.throwProvisionExceptionIfErrorsExist(Errors.java:451) で 1 エラー com.google.inject.internal.MembersInjectorImpl.injectMembers(MembersInjectorImpl.java:65) で.injectMembers(InjectorImpl.java:944) で com.nexuscop.startup.StartupListener.(StartupListener.java:41) で sun.reflect.NativeConstructorAccessorImpl.newInstance0(ネイティブ メソッド) で sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java: 57) Sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) で java.lang.reflect.Constructor.newInstance(Constructor.java:532) で java.lang.Class.newInstance0(Class.java:372) でorg.apache.catalina.core の java.lang.Class.newInstance(Class.java:325)。DefaultInstanceManager.newInstance(DefaultInstanceManager.java:125) org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4715) org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5273) org org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:895) の .apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) org.apache.catalina.core.ContainerBase.addChild(ContainerBase) .java:871) org.apache.catalina.core.StandardHost.addChild(StandardHost.java:615) で org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1099) で org.apache.catalina. startup.HostConfig$DeployDirectory.run(HostConfig.java:1621) で java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) で java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) で java.util.concurrent.FutureTask.run(FutureTask.java:166) で java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) で java .util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) で java.lang.Thread.run(Thread.java:679) 原因: javax.persistence.PersistenceException: [PersistenceUnit: nexuscop-persist] できませんorg.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:915) で EntityManagerFactory をビルドします。 ) com の javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:47) で。berger.jpa.JpaPersistService.start(JpaPersistService.java:83) com.berger.jpa.EntityInitializer.(EntityInitializer.java:14) で sun.reflect.NativeConstructorAccessorImpl.newInstance0(ネイティブ メソッド) で sun.reflect.NativeConstructorAccessorImpl.newInstance (NativeConstructorAccessorImpl.java:57) で sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) で java.lang.reflect.Constructor.newInstance(Constructor.java:532) で com.google.inject.internal.DefaultConstructionProxyFactory$2 .newInstance(DefaultConstructionProxyFactory.java:85) で com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:85) で com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:254) でcom.google.inject.internal.SingleFieldInjector.inject(SingleFieldInjector.java:53) で com.google.inject.internal.MembersInjectorImpl.injectMembers(MembersInjectorImpl.java:110) で com.google.inject.internal.MembersInjectorImpl$1.call(MembersInjectorImpl.java:75) でcom.google.inject.internal.MembersInjectorImpl$1.call(MembersInjectorImpl.java:73) at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1024) at com.google.inject.internal.MembersInjectorImpl.injectAndNotify (MembersInjectorImpl.java:73) at com.google.inject.internal.MembersInjectorImpl.injectMembers(MembersInjectorImpl.java:60) ... 23 以上 原因: org.hibernate.HibernateException: Could not find datasource at org.hibernate.connection org.hibernate.connection の .DatasourceConnectionProvider.configure(DatasourceConnectionProvider.java:79)。ConnectionProviderFactory.newConnectionProvider(ConnectionProviderFactory.java:143) org.hibernate.ejb.InjectionSettingsFactory.createConnectionProvider(InjectionSettingsFactory.java:51) org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:90) org.hibernate.cfg の Configuration.buildSettings(Configuration.java:2859) の .Configuration.buildSettingsInternal(Configuration.java:2863) org.hibernate の Configuration.buildSessionFactory(Configuration.java:1870)。 ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:906) ... 42 以上 原因: javax.naming.NamingException: com.mysql.jdbc.Driver at org.apache.naming.NamingContext.lookup(NamingContext.java:860) org.apache.naming.NamingContext.lookup(NamingContext.java:154) org.apache.naming.NamingContext.lookup(NamingContext.java:831) で org.apache.naming.NamingContext.lookup(NamingContext.java:154) で org.apache.naming.NamingContext.lookup(NamingContext.java) :831) org.apache.naming.NamingContext.lookup(NamingContext.java:154) で org.apache.naming.NamingContext.lookup(NamingContext.java:831) で org.apache.naming.NamingContext.lookup(NamingContext. java:168) org.apache.naming.SelectorContext.lookup(SelectorContext.java:158) で javax.naming.InitialContext.lookup(InitialContext.java:409) で org.hibernate.connection.DatasourceConnectionProvider.configure(DatasourceConnectionProvider.java) :75)lookup(NamingContext.java:831) at org.apache.naming.NamingContext.lookup(NamingContext.java:154) at org.apache.naming.NamingContext.lookup(NamingContext.java:831) at org.apache.naming.NamingContext org.hibernate.connection.DatasourceConnectionProvider の javax.naming.InitialContext.lookup(InitialContext.java:409) の org.apache.naming.SelectorContext.lookup(SelectorContext.java:158) の .lookup(NamingContext.java:168)。構成 (DatasourceConnectionProvider.java:75)lookup(NamingContext.java:831) at org.apache.naming.NamingContext.lookup(NamingContext.java:154) at org.apache.naming.NamingContext.lookup(NamingContext.java:831) at org.apache.naming.NamingContext org.hibernate.connection.DatasourceConnectionProvider の javax.naming.InitialContext.lookup(InitialContext.java:409) の org.apache.naming.SelectorContext.lookup(SelectorContext.java:158) の .lookup(NamingContext.java:168)。構成 (DatasourceConnectionProvider.java:75)org.hibernate.connection.DatasourceConnectionProvider.configure(DatasourceConnectionProvider.java:75) で lookup(InitialContext.java:409)org.hibernate.connection.DatasourceConnectionProvider.configure(DatasourceConnectionProvider.java:75) で lookup(InitialContext.java:409)

4

1 に答える 1

1

現在、多くの人が .ebextensions アプローチを機能させるのに苦労しているようです。これは、起動して実行するための回避策です。このような本番環境では実行しませんが、.ebextensions に不満を感じたときにテスト/デバッグに使用しました。

mysql ドライバーを WAR に直接配置できます。Maven を使用している場合は、これを pom.xml に追加するだけです。

    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.6</version>
    </dependency>

これを META-INF/context.xml に追加することもできます

<Resource auth="Container" driverClassName="com.mysql.jdbc.Driver" factory="org.apache.commons.dbcp.BasicDataSourceFactory" type="javax.sql.DataSource" 
      url="jdbc:mysql://XXXXXXX
       ... />

そして、これを pom.xml に入れます (それ以外の場合、BasicDataSourceFactory は見つかりません):

    <dependency>
        <groupId>commons-dbcp</groupId>
        <artifactId>commons-dbcp</artifactId>
        <version>1.4</version>
    </dependency>

    <dependency>
        <groupId>commons-pool</groupId>
        <artifactId>commons-pool</artifactId>
        <version>1.6</version>
    </dependency>

    <dependency>
        <groupId>commons-collections</groupId>
        <artifactId>commons-collections</artifactId>
        <version>3.2.1</version>
    </dependency>
于 2013-02-14T18:10:18.100 に答える