Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 未在数据库中创建的实体_Java_Mysql_Netbeans_Ejb_Jboss6.x - Fatal编程技术网

Java 未在数据库中创建的实体

Java 未在数据库中创建的实体,java,mysql,netbeans,ejb,jboss6.x,Java,Mysql,Netbeans,Ejb,Jboss6.x,我希望这里有人能帮我解决问题,这是我让EJB工作的传奇故事的下一部分 这是我的服务器日志,说明我的部署成功: 2012-03-11 22:02:41,837 INFO [org.jboss.web.tomcat.service.deployers.TomcatDeployment] (HDScanner) undeploy, ctxPath=/SE2-war 2012-03-11 22:02:41,882 INFO [org.jboss.jpa.deployment.PersistenceU

我希望这里有人能帮我解决问题,这是我让EJB工作的传奇故事的下一部分

这是我的服务器日志,说明我的部署成功:

2012-03-11 22:02:41,837 INFO  [org.jboss.web.tomcat.service.deployers.TomcatDeployment] (HDScanner) undeploy, ctxPath=/SE2-war
2012-03-11 22:02:41,882 INFO  [org.jboss.jpa.deployment.PersistenceUnitDeployment] (HDScanner) Stopping persistence unit persistence.unit:unitName=SE2.ear/SE2-ejb.jar#wvp08heuPU
2012-03-11 22:02:42,429 WARN  [org.jboss.ejb3.interceptor.InterceptorInfoRepository] (HDScanner) EJBTHREE-1852: InterceptorInfoRepository is deprecated
2012-03-11 22:02:42,650 INFO  [org.jboss.profileservice.management.upload.remoting.DeployHandler] (WorkerThread#0[127.0.0.1:3125]) invoke, payload: {DeploymentTargetID=names=[SE2.ear], clientAddress=/127.0.0.1}, parameter: start
2012-03-11 22:02:42,900 INFO  [org.jboss.ejb3.deployers.JBossASKernel] (HDScanner) Created KernelDeployment for: SE2-ejb.jar
2012-03-11 22:02:42,901 INFO  [org.jboss.ejb3.deployers.JBossASKernel] (HDScanner) installing bean: jboss.j2ee:ear=SE2.ear,jar=SE2-ejb.jar,name=NewSessionBean,service=EJB3
2012-03-11 22:02:42,901 INFO  [org.jboss.ejb3.deployers.JBossASKernel] (HDScanner)   with dependencies:
2012-03-11 22:02:42,901 INFO  [org.jboss.ejb3.deployers.JBossASKernel] (HDScanner)   and demands:
2012-03-11 22:02:42,902 INFO  [org.jboss.ejb3.deployers.JBossASKernel] (HDScanner)  jboss-switchboard:appName=SE2,module=SE2-ejb,name=NewSessionBean; Required: Create
2012-03-11 22:02:42,902 INFO  [org.jboss.ejb3.deployers.JBossASKernel] (HDScanner)  jboss.ejb:service=EJBTimerService; Required: Described
2012-03-11 22:02:42,902 INFO  [org.jboss.ejb3.deployers.JBossASKernel] (HDScanner)   and supplies:
2012-03-11 22:02:42,903 INFO  [org.jboss.ejb3.deployers.JBossASKernel] (HDScanner)  Class:ejb.NewSessionBeanRemote
2012-03-11 22:02:42,903 INFO  [org.jboss.ejb3.deployers.JBossASKernel] (HDScanner)  jndi:NewSessionBean
2012-03-11 22:02:42,903 INFO  [org.jboss.ejb3.deployers.JBossASKernel] (HDScanner)  jndi:SE2/NewSessionBean/remote-ejb.NewSessionBeanRemote
2012-03-11 22:02:42,903 INFO  [org.jboss.ejb3.deployers.JBossASKernel] (HDScanner)  jndi:SE2/NewSessionBean/remote
2012-03-11 22:02:42,904 INFO  [org.jboss.ejb3.deployers.JBossASKernel] (HDScanner) Added bean(jboss.j2ee:ear=SE2.ear,jar=SE2-ejb.jar,name=NewSessionBean,service=EJB3) to KernelDeployment of: SE2-ejb.jar
2012-03-11 22:02:42,980 INFO  [org.jboss.ejb3.session.SessionSpecContainer] (HDScanner) Starting jboss.j2ee:ear=SE2.ear,jar=SE2-ejb.jar,name=NewSessionBean,service=EJB3
2012-03-11 22:02:43,054 INFO  [org.jboss.ejb3.EJBContainer] (HDScanner) STARTED EJB: ejb.NewSessionBean ejbName: NewSessionBean
2012-03-11 22:02:43,410 INFO  [org.jboss.ejb3.proxy.impl.jndiregistrar.JndiSessionRegistrarBase] (HDScanner) Binding the following Entries in Global JNDI:

    SE2/NewSessionBean/remote - EJB3.x Default Remote Business Interface
    SE2/NewSessionBean/remote-ejb.NewSessionBeanRemote - EJB3.x Remote Business Interface

2012-03-11 22:02:43,411 WARN  [org.jboss.ejb3.TimerServiceContainer] (HDScanner) EJBTHREE-2193: using deprecated TimerServiceFactory for restoring timers
2012-03-11 22:02:43,424 INFO  [org.jboss.jpa.deployment.PersistenceUnitDeployment] (HDScanner) Starting persistence unit persistence.unit:unitName=SE2.ear/SE2-ejb.jar#wvp08heuPU
2012-03-11 22:02:43,454 INFO  [org.jboss.web.tomcat.service.deployers.TomcatDeployment] (HDScanner) deploy, ctxPath=/SE2-war
2012-03-11 22:02:43,561 INFO  [org.jboss.web.tomcat.service.deployers.TomcatDeployment] (WorkerThread#0[127.0.0.1:3125]) undeploy, ctxPath=/SE2-war
2012-03-11 22:02:43,621 INFO  [org.jboss.jpa.deployment.PersistenceUnitDeployment] (WorkerThread#0[127.0.0.1:3125]) Stopping persistence unit persistence.unit:unitName=SE2.ear/SE2-ejb.jar#wvp08heuPU
2012-03-11 22:02:43,629 INFO  [org.jboss.ejb3.session.SessionSpecContainer] (WorkerThread#0[127.0.0.1:3125]) Stopping jboss.j2ee:ear=SE2.ear,jar=SE2-ejb.jar,name=NewSessionBean,service=EJB3
2012-03-11 22:02:43,781 INFO  [org.jboss.ejb3.EJBContainer] (WorkerThread#0[127.0.0.1:3125]) STOPPED EJB: ejb.NewSessionBean ejbName: NewSessionBean
2012-03-11 22:02:44,394 WARN  [org.jboss.ejb3.interceptor.InterceptorInfoRepository] (WorkerThread#0[127.0.0.1:3125]) EJBTHREE-1852: InterceptorInfoRepository is deprecated
2012-03-11 22:02:44,418 INFO  [org.jboss.ejb3.deployers.JBossASKernel] (WorkerThread#0[127.0.0.1:3125]) Created KernelDeployment for: SE2-ejb.jar
2012-03-11 22:02:44,425 INFO  [org.jboss.ejb3.deployers.JBossASKernel] (WorkerThread#0[127.0.0.1:3125]) installing bean: jboss.j2ee:ear=SE2.ear,jar=SE2-ejb.jar,name=NewSessionBean,service=EJB3
2012-03-11 22:02:44,426 INFO  [org.jboss.ejb3.deployers.JBossASKernel] (WorkerThread#0[127.0.0.1:3125])   with dependencies:
2012-03-11 22:02:44,426 INFO  [org.jboss.ejb3.deployers.JBossASKernel] (WorkerThread#0[127.0.0.1:3125])   and demands:
2012-03-11 22:02:44,426 INFO  [org.jboss.ejb3.deployers.JBossASKernel] (WorkerThread#0[127.0.0.1:3125])     jboss-switchboard:appName=SE2,module=SE2-ejb,name=NewSessionBean; Required: Create
2012-03-11 22:02:44,426 INFO  [org.jboss.ejb3.deployers.JBossASKernel] (WorkerThread#0[127.0.0.1:3125])     jboss.ejb:service=EJBTimerService; Required: Described
2012-03-11 22:02:44,427 INFO  [org.jboss.ejb3.deployers.JBossASKernel] (WorkerThread#0[127.0.0.1:3125])   and supplies:
2012-03-11 22:02:44,427 INFO  [org.jboss.ejb3.deployers.JBossASKernel] (WorkerThread#0[127.0.0.1:3125])     Class:ejb.NewSessionBeanRemote
2012-03-11 22:02:44,427 INFO  [org.jboss.ejb3.deployers.JBossASKernel] (WorkerThread#0[127.0.0.1:3125])     jndi:NewSessionBean
2012-03-11 22:02:44,427 INFO  [org.jboss.ejb3.deployers.JBossASKernel] (WorkerThread#0[127.0.0.1:3125])     jndi:SE2/NewSessionBean/remote-ejb.NewSessionBeanRemote
2012-03-11 22:02:44,427 INFO  [org.jboss.ejb3.deployers.JBossASKernel] (WorkerThread#0[127.0.0.1:3125])     jndi:SE2/NewSessionBean/remote
2012-03-11 22:02:44,428 INFO  [org.jboss.ejb3.deployers.JBossASKernel] (WorkerThread#0[127.0.0.1:3125]) Added bean(jboss.j2ee:ear=SE2.ear,jar=SE2-ejb.jar,name=NewSessionBean,service=EJB3) to KernelDeployment of: SE2-ejb.jar
2012-03-11 22:02:44,466 INFO  [org.jboss.ejb3.session.SessionSpecContainer] (WorkerThread#0[127.0.0.1:3125]) Starting jboss.j2ee:ear=SE2.ear,jar=SE2-ejb.jar,name=NewSessionBean,service=EJB3
2012-03-11 22:02:44,467 INFO  [org.jboss.ejb3.EJBContainer] (WorkerThread#0[127.0.0.1:3125]) STARTED EJB: ejb.NewSessionBean ejbName: NewSessionBean
2012-03-11 22:02:44,475 INFO  [org.jboss.ejb3.proxy.impl.jndiregistrar.JndiSessionRegistrarBase] (WorkerThread#0[127.0.0.1:3125]) Binding the following Entries in Global JNDI:

    SE2/NewSessionBean/remote - EJB3.x Default Remote Business Interface
    SE2/NewSessionBean/remote-ejb.NewSessionBeanRemote - EJB3.x Remote Business Interface

2012-03-11 22:02:44,477 WARN  [org.jboss.ejb3.TimerServiceContainer] (WorkerThread#0[127.0.0.1:3125]) EJBTHREE-2193: using deprecated TimerServiceFactory for restoring timers
2012-03-11 22:02:44,484 INFO  [org.jboss.jpa.deployment.PersistenceUnitDeployment] (WorkerThread#0[127.0.0.1:3125]) Starting persistence unit persistence.unit:unitName=SE2.ear/SE2-ejb.jar#wvp08heuPU
2012-03-11 22:02:44,529 INFO  [org.jboss.web.tomcat.service.deployers.TomcatDeployment] (WorkerThread#0[127.0.0.1:3125]) deploy, ctxPath=/SE2-war
以下是我的持久化单元及其上下文:

<?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="wvp08heuPU" transaction-type="JTA">
    <provider>oracle.toplink.essentials.PersistenceProvider</provider>
    <jta-data-source>java:/MYSQL</jta-data-source>
    <exclude-unlisted-classes>false</exclude-unlisted-classes>
    <properties>
      <property name="toplink.ddl-generation" value="create-tables"/>
    </properties>
  </persistence-unit>
</persistence>
有什么想法吗

编辑:

我的会话bean:

package ejb;

import entities.Account;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

@Stateless
public class NewSessionBean implements NewSessionBeanRemote {

    @PersistenceContext(unitName = "wvp08heuPU")
    private EntityManager em;

    @Override
    public void AddAccount(Account a){
        em.persist(a);
    }
}
解决方案:

主要问题是:我的持久化层无法在数据库上创建表,因为它没有相应的功能

正如Oscar指出的那样,为了解决我真正的问题,我将持久性提供程序更改为Hibernate2.0—这与各种更改列表一起使EJB能够工作

我遇到的几个问题,您可能也在寻求解决:

  • ClassNotFoundException-将persistence.jar文件移动到 JBoss 6服务器的服务器/默认目录

  • 类不能强制转换-当使用EclipseLink和JBoss 6时 有一些兼容性问题,我无法让它工作; 我不会费心去试的

  • 未找到MYSQL-确保您只有一个MYSQL连接器驱动程序 不仅列在JBoss libs文件夹中,还列在netbeans中。 您可以使用google将告诉您的SET CLANSATH来默认此设置 其余的


在哪里调用
entityManager.persist(account)?应该存在一个负责持久化实体的业务组件,不管是会话EJB还是POJO。

您好,奥斯卡-您的权利我应该有一个电话,我已经用会话Bean编辑了上面的问题(它有持久化部分)。那么,如果我没有弄错,即使我没有调用实体管理器,表仍然应该在数据库中创建?反正我以前也是这么做的。。。但是JBoss7就是这样。你的问题有误导性,标题是“实体不持久”;现在——如果我理解正确的话——问题在于没有在数据库中创建表,而不是不能持久化它们。看看这篇文章,进一步了解如何解决你的问题。嗨,奥斯卡-再次感谢你的回复。当然,我的问题应该是“EJB:数据库中没有创建实体”。您的回答帮助我更好地理解了这个问题。为了让持久性提供程序为我创建表,我不能使用TopLink Essentials,因为它不支持此功能。它可以用来生成ddl文件,以便您手动执行。如果您希望获得与我相同的功能,我会选择hibernate 2.0,因为这是我最终设法使ejb工作的方式。@LewisWheeler正确,在hibernate中,表创建与
persistence.xml中的这一行无缝工作:
其中
??
可以是
@列中解释的任何值(unique=true)私人字符串电子邮件对于简单的约束来说已经足够了。感谢viktor-我知道有一种方法可以作为类主体的一部分来完成,但是这种方法也很有效。对我的实际问题有什么想法吗?
package ejb;

import entities.Account;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

@Stateless
public class NewSessionBean implements NewSessionBeanRemote {

    @PersistenceContext(unitName = "wvp08heuPU")
    private EntityManager em;

    @Override
    public void AddAccount(Account a){
        em.persist(a);
    }
}