由于jboss.persistenceunit中的NullPointer,JBOSS服务器无法启动服务

用户名

我在本地JBOSS 7.1.1服务器上的应用程序遇到了一些麻烦。
我刚刚设置了模型和persistence.xml,现在.war无法部署了。
实例化所有服务后,出现以下错误,该错误根本没有用:

14:43:32,571 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-3) MSC00001: Failed to start service jboss.persistenceunit."TravelCanvas.war#TravelCanvas": org.jboss.msc.service.StartException in service jboss.persistenceunit."TravelCanvas.war#TravelCanvas": Failed to start service
at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1767) [jboss-msc-1.0.2.GA.jar:1.0.2.GA]
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [rt.jar:1.7.0_51]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [rt.jar:1.7.0_51]
at java.lang.Thread.run(Unknown Source) [rt.jar:1.7.0_51]
Caused by: java.lang.NullPointerException
at org.hibernate.cfg.Ejb3JoinColumn.checkReferencedColumnsType(Ejb3JoinColumn.java:538)
at org.hibernate.cfg.BinderHelper.createSyntheticPropertyReference(BinderHelper.java:126)
at org.hibernate.cfg.ToOneFkSecondPass.doSecondPass(ToOneFkSecondPass.java:116)
at org.hibernate.cfg.Configuration.processEndOfQueue(Configuration.java:1514)
at org.hibernate.cfg.Configuration.processFkSecondPassInOrder(Configuration.java:1437)
at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1355)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1724)
at org.hibernate.ejb.EntityManagerFactoryImpl.<init>(EntityManagerFactoryImpl.java:84)
at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:904)
at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:889)
at org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.java:73)
at org.jboss.as.jpa.service.PersistenceUnitServiceImpl.createContainerEntityManagerFactory(PersistenceUnitServiceImpl.java:162)
at org.jboss.as.jpa.service.PersistenceUnitServiceImpl.start(PersistenceUnitServiceImpl.java:85)
at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811) [jboss-msc-1.0.2.GA.jar:1.0.2.GA]
at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746) [jboss-msc-1.0.2.GA.jar:1.0.2.GA]
... 3 more  

我的persistence.xml看起来像这样:

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
    <persistence-unit name="TravelCanvas">
        <jta-data-source>java:jboss/datasources/MySqlDS</jta-data-source>
    </persistence-unit>
</persistence>

在服务器的standalone.xml中配置所有属性后:

<datasource jta="false" jndi-name="java:jboss/datasources/MySqlDS" pool-name="MySqlDS" enabled="true" use-ccm="false">
                    <connection-url>jdbc:mysql://localhost:3306/gohostel</connection-url>
                    <driver-class>com.mysql.jdbc.Driver</driver-class>
                    <driver>mysql-connector-java-5.1.29-bin.jar</driver>
                    <security>
                        <user-name>gohostel</user-name>
                        <password>gohostel</password>
                    </security>
                    <validation>
                        <validate-on-match>false</validate-on-match>
                        <background-validation>false</background-validation>
                    </validation>
                    <statement>
                        <share-prepared-statements>false</share-prepared-statements>
                    </statement>
                </datasource>

这里的一些答案表明它与我的模型有关,但是我对此并不陌生,我不知道自己在做错什么。我有19个模型类,但其中有一些片段:

@XmlRootElement
@Entity
@Table(name="user")
public class User implements Serializable {
    private static final long serialVersionUID = 1L;

    @Id
    @GeneratedValue
    private Integer id;
    private String name;
    private String email;
    private String fb_account_id;
    private String profile_picture;
    private String password;
    private String password_salt;

    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name="id")
    private Language language_id;

    @OneToMany(fetch = FetchType.LAZY, mappedBy="user_id")
    private List<Post> posts;

    @OneToOne(fetch=FetchType.LAZY)
    @JoinColumn(name="id")
    private Advertiser advertiser;

    @ManyToMany
    @JoinTable(name="user_isGoingTo_post",
        joinColumns={@JoinColumn(name="user_id", referencedColumnName="id")},
        inverseJoinColumns={@JoinColumn(name="post_id", referencedColumnName="id")})
    private List<Post> userIsGoingToPost;

    @ManyToMany
    @JoinTable(name="hostel_has_manager",
        joinColumns={@JoinColumn(name="user_id", referencedColumnName="id")},
        inverseJoinColumns={@JoinColumn(name="hostel_id", referencedColumnName="id")})
    private List<Hostel> userIsManagerOf;

    @ManyToMany
    @JoinTable(name="user_has_languages",
        joinColumns={@JoinColumn(name="user_id", referencedColumnName="id")},
        inverseJoinColumns={@JoinColumn(name="language_id", referencedColumnName="id")})
    private List<Language> userSpeaksLanguages;

    @ManyToMany
    @JoinTable(name="user_likes_ad",
        joinColumns={@JoinColumn(name="user_id", referencedColumnName="id")},
        inverseJoinColumns={@JoinColumn(name="ad_id", referencedColumnName="id")})
    private List<Ad> userLikesAd;

广告商类别:

@XmlRootElement
@Entity
@Table(name="advertiser")
public class Advertiser implements Serializable {
    private static final long serialVersionUID = 1L;

    @Id
    @OneToOne(fetch=FetchType.LAZY, mappedBy="advertiser")    
    private User user_id;

    private String name;
    private String info;
    private String website_url;

    @OneToMany(fetch = FetchType.LAZY, mappedBy="advertiser_user_id")
    private List<Ad> ads;

宿舍等级:

@XmlRootElement
@Entity
@Table(name="hostel")
public class Hostel implements Serializable {
    private static final long serialVersionUID = 1L;

    @Id
    @GeneratedValue
    private Integer id;
    private String name;
    private String website_url;

    @OneToMany(fetch = FetchType.LAZY, mappedBy="hostel_id")
    private List<HostelImage> images;

     @OneToMany(fetch = FetchType.LAZY, mappedBy="hostel_id")
     private List<HostelLocation> locations;

     @ManyToMany(mappedBy="userIsManagerOf")
     private List<User> managersOfThisHostel;

我选择了这三个类是因为它显示了如何设置@ OneToMany,@ ManyToOne,@ OneToOne和@ManyToMany关系。我在所有其他类中都使用了相同的设置。
这是我的数据库的摘要,我无法显示所有内容,这就是为什么我从图像中删除了一些实体的原因,这也是为什么它们在代码中而不在图像中的原因。
数据库模型

你们知道我为什么收到这个错误吗?
我找不到原因。
提前致谢!

用户名

我已经解决了这个问题。
我的manyToOne语法中存在一些错误,导致出现问题。
空指针是oneToOne错误,因为它们被错误地映射。
映射它们的正确语法如下:

用户类别:

@OneToOne(fetch=FetchType.LAZY, mappedBy="user_id")
private Advertiser advertiser;

广告商类别:

@Id
@OneToOne(fetch=FetchType.LAZY)   
@JoinColumn(name="user_id")
private User user_id;

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

JBoss服务器7.1无法在Eclipse Luna中启动

无法在 Eclipse 中启动 JBoss 服务器

JBoss AS 7和MySQL-无法启动服务器

启动jboss服务器时出错

如何启动jboss 7.1.1服务器并在jboss 7.1.1中部署项目

由于TypeError无法启动服务器

指向另一个数据库服务器后,Jboss服务器无法启动

使用暂停队列启动 JBoss EAP 服务器

启动Wildfly(JBoss)服务器时VM错误

在8843端口启动Jboss服务器5.x

如何启动 Jboss Fuse 作为服务器

无法启动jboss服务器;NoClassDefFoundError:com / tibco / tibrv / TibrvException

无法使用JBoss服务器实例化InitialContext

无法发布到服务器。Jboss7.1服务器中的java.lang.NullPointerException

如何在IntelliJ中添加Jboss服务器

无法在Jboss EAP 7.0服务器中创建oracle数据源

Jboss ON安装等待服务器

JBoss ESB服务器和JBoss Fuse之间的区别

由于NoMethodError而无法启动Rack服务器

Web服务器由于缺少bean而无法启动

在计算机启动时启动JBoss 7.02服务器时出现问题

由于一个或多个端口无效,因此服务器无法启动[Eclipse中的Tomcat]

服务jboss.web.deployment.default-host中的org.jboss.msc.service.StartException:/无法启动服务

自动启动JBoss服务(MBean)

JBoss EAP,Wildfly,JBoss Web和JBoss服务器之间有什么区别?

独立服务器的JBOSS EAP 6.2中未部署带有Web服务的War File

我想在春季启动时基于tomcat,jboss等服务器创建bean

组策略客户端服务由于以下错误而无法启动:该服务未响应服务器中的启动或控制请求

无法在 Eclipse IDE Photon Release Candidate 3 (4.8.0RC3) 中安装 WildFly/JBoss 服务器