-1

我正在使用 Java + BlazeDS + MySQL + Flash Builder + EclipseLink (JPA 2.1) + Tomcat 7 (Windows)

问题是这样的,当我在 Netbeans 中编译我的应用程序时,与数据库的连接工作得很好。但是当我使用war文件直接在tomcat中进行部署时,它不会访问数据库。

我尝试了多个版本的 tomcat,包括 tomcat netbeans,但它不起作用。仅当我从 Netbeans 中运行项目时才有效

我几乎疯了试图解决它,有人经历过这个问题吗?

我真的很感激任何帮助

我的 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="goncricPU" transaction-type="RESOURCE_LOCAL">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>    
<class>entidade.sancric</class>
<class>entidade.logincric</class>    
<exclude-unlisted-classes>false</exclude-unlisted-classes>
<properties>
<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/derea?   zeroDateTimeBehavior=convertToNull"/>
<property name="javax.persistence.jdbc.password" value="qwaszx"/>
<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
<property name="javax.persistence.jdbc.user" value="derea"/>
<property name="eclipselink.ddl-generation" value="create-tables"/>
</properties>
</persistence-unit>
</persistence>

…………

使数据库持久化的文件:

 */
public class persistir {
EntityManagerFactory emf = Persistence.createEntityManagerFactory("goncricPU");

public void persist(Object object) {
    EntityManager em = emf.createEntityManager();
    try {
        em.getTransaction().begin();
        em.persist(object);
        em.getTransaction().commit();
    } catch (Exception e) {
           Logger.getLogger(getClass().getName()).log(Level.SEVERE, "exception caught",   e);
        em.getTransaction().rollback();
    } finally {
        em.close();
    }
   }   

}
4

2 回答 2

0

问题解决了!

经过一段时间的磨难,问题以一种非常简单的方式解决了。

刚刚在我的应用程序的 lib 文件夹中添加了环境变量(路径)

C:\apache-tomcat-7.0.42\webapps\dereaasc\WEB-INF\lib

一切都很完美!

于 2013-08-27T03:46:55.457 回答
0

当我看到“完美”、“绝对”和“没有消息”时,我总是很怀疑。

我会将您从 NetBeans 中得到的任何行为视为红鲱鱼。它是一个 IDE,不会成为您的生产部署的一部分。如果您不考虑 NetBeans,您将取得更快的进步。

我的第一个猜测是 Tomcat /lib 文件夹中没有 MySQL JDBC 连接器 JAR。Tomcat 7 要求它在那里找到 JDBC 驱动程序 JAR,而在其他任何地方都找不到。如果您的 WAR 文件中有它,我建议您将它从应用程序包中移出并移到应用服务器上。

你在使用连接池吗?任何 JNDI 资源?您的应用程序中是否配置了 log4j?有像Spring这样的框架吗?

您没有提供任何其他信息,因此在您可以告诉我们更多信息之前,您必须进行有根据的猜测。

于 2013-08-26T16:42:10.603 回答