Spring Bootで安らかなAPIを実装しました。これは、Tomcatサーバーが組み込まれたSpring Boot Suite内でアプリケーションを起動するときに機能します。LifecycleException:Tomcatでwarを展開するコンポーネントの起動に失敗しました
SEVERE: Exception fixing docBase for context [/cgweb]
java.io.FileNotFoundException: /Users/djiao/Downloads/apache-tomcat-7.0.68/webapps/cgweb/LICENSE (Is a directory)
SEVERE: ContainerBase.addChild: start:
org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/cgweb]]
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaAutoConfiguration.class]: Invocation of init method failed; nested exception is java.lang.NoSuchMethodError: javax.persistence.JoinColumn.foreignKey()Ljavax/persistence/ForeignKey;
Caused by: java.lang.NoSuchMethodError: javax.persistence.JoinColumn.foreignKey()Ljavax/persistence/ForeignKey;
SEVERE: Error deploying web application archive /Users/djiao/Downloads/apache-tomcat-7.0.68/webapps/cgweb.war
java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina
].StandardHost[localhost].StandardContext[/cgweb]]
私はポストの同様のタイプの何百ものは、おそらくそこにいることを知っている:私は、Tomcatの7に戦争を展開しようとしたときしかし、私は次のエラーを得ました。私が2日間以上研究した後は、このような問題の大きな原因があります。
- Tomcatのバージョンがjavaコンパイラのバージョンと一致しません。
私はJava 7でコンパイルし、展開のためにTomcat 7を使用しました。私はjdkパスではなくJAVA_HOMEのjreパスを設定したことを確認しました。
- jpa 2.0と2.1の間の競合(外部キーエラーに関連する)。
私は自分の依存関係にあり、2.0を削除しました。
- hibernate-entitymangerとhibernate-coreのバージョンが一致しません。
pomの依存関係階層をチェックしたところ、どちらも4.3.11.最終的です。
- warをwebappフォルダに手動でコピーして展開します。
Tomcat ManagerのUIにデプロイしようとしました。
これらのどれも私のケースには適用されません。すべてを試したが、何も働かなかった。私はSpring Bootを使っているので、ほとんどの設定は自動的に行われました。私はweb.xmlを持っていません。メインアプリケーションクラスの前に次の注釈があります。
application.propertiesには、データソースの設定以外に次の行があります。
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect
spring.jpa.hibernate.naming-strategy=org.hibernate.cfg.EJB3NamingStrategy
spring.data.jpa.repositories.enabled=true
展開に失敗する可能性があるその他の理由はありますか。
tomcatサーバーのlibディレクトリまたはcommonディレクトリに、WEB-INF/libでパッケージ化したものよりも優先順位が高い、hibernateまたはJPA関連のjarファイルがあるかどうかを確認してください。そして、ちょうどきれいなビルドを行い、tomcat作業ディレクトリをきれいにして再起動するだけです。 –
残念ですが、_java.lang.NoSuchMethodError:javax.persistence.JoinColumn.foreignKey()Ljavax/persistence/ForeignKey_という意味は1つしかありません。実行時にCLASSPATHにJPA API v2.0 jarがあります。まだ。したがって、ランタイムsystem.classpathを出力してください。 –
Tomcatを '-verbose:class'で実行してみてください。 JPA 2のどこに表示されますか。0クラスがロードされています –