我有一个非常简单的WAR项目,我想META-INF在类输出文件夹的顶部包含一个目录,其中包含所有已编译的Java类.我正在使用Maven,但似乎默认情况下Maven不会包含任何不是Java类的内容.所以它忽略了我META-INF位于src目录顶部的目录.该META-INF目录包含一个名为的文件persistence.xml.有关如何指示Maven将此目录和文件放入输出文件夹的快速指示?
public class LoginTest {
public static void main(String[] args) {
EntityManagerFactory emf = Persistence.createEntityManagerFactory("IRCBotPU");
EntityManager em = emf.createEntityManager();
em.getTransaction().begin();
Login lg = new Login();
lg.setPassword("password");
lg.setUserName("Rocky");
em.persist(lg);
em.flush();
Login st = em.find(Login.class, lg.getPassword());
System.out.println(st);
em.getTransaction().commit();
em.close();
emf.close();
}
}
Run Code Online (Sandbox Code Playgroud)
当我尝试运行这个类时,我遇到了异常
javax.persistence.PersistenceException: No Persistence provider for EntityManager named IRCBotPU:
No META-INF/persistence.xml was found in classpath.
Run Code Online (Sandbox Code Playgroud)
META-INF/persistence.xml在我的类路径中.我不知道是什么原因或这个例外.
持久性库是TopLink.
我正在关注如何使用Google Cloud Messaging(GCM)创建即时消息应用程序的Appsrox教程.不同之处在于我使用Android Studio而不是Eclipse,而Gradle则用于构建自动化.我已经尝试将META-INF放在'src/main'文件夹中但是我收到了来自Google App Engine的警告:
警告:在当前线程的CLASSPATH中找不到META-INF/persistence.xml文件!
EntityManager 在初始化过程中崩溃,导致它无法找到'persistence.xml'.
我正在寻找一个简单问题的简单答案:我在哪里放置META-INF文件夹?
java ×3
classpath ×1
gradle ×1
java-ee ×1
jpa ×1
maven-2 ×1
maven-plugin ×1
meta-inf ×1
persistence ×1
toplink ×1