Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.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
Spring IllegalArgumentException:不是托管类型_Spring_Hibernate_Spring Data_Hibernate Mapping_Hibernate Ogm - Fatal编程技术网

Spring IllegalArgumentException:不是托管类型

Spring IllegalArgumentException:不是托管类型,spring,hibernate,spring-data,hibernate-mapping,hibernate-ogm,Spring,Hibernate,Spring Data,Hibernate Mapping,Hibernate Ogm,我将Spring数据与Hibernate和mongo db一起使用。我在尝试将我的webapp部署到Wildfly 10时遇到以下堆栈 原因:java.lang.IllegalArgumentException:不是托管类型: 类com.olp.jpa.domain.docu.product.ProductTemplateBean位于 org.hibernate.jpa.internal.metamodel.MetamodelImpl.managedType(MetamodelImpl.java

我将Spring数据与Hibernate和mongo db一起使用。我在尝试将我的webapp部署到Wildfly 10时遇到以下堆栈

原因:java.lang.IllegalArgumentException:不是托管类型: 类com.olp.jpa.domain.docu.product.ProductTemplateBean位于 org.hibernate.jpa.internal.metamodel.MetamodelImpl.managedType(MetamodelImpl.java:219) 在 org.springframework.data.jpa.repository.support.JpaMetamodelEntityInformation.(JpaMetamodelEntityInformation.java:68) 在 org.springframework.data.jpa.repository.support.JpaEntityInformationSupport.getMetadata(JpaEntityInformationSupport.java:65) 在 org.springframework.data.jpa.repository.support.JpaRepositoryFactory.getEntityInformation(JpaRepositoryFactory.java:149) 在 org.springframework.data.jpa.repository.support.JpaRepositoryFactory.getTargetPository(JpaRepositoryFactory.java:88) 在 org.springframework.data.jpa.repository.support.JpaRepositoryFactory.getTargetPository(JpaRepositoryFactory.java:68) 在 org.springframework.data.repository.core.support.RepositoryFactorySupport.getRepository(RepositoryFactorySupport.java:159) 在 org.springframework.data.repository.core.support.RepositoryFactoryBeanSupport.initAndReturn(RepositoryFactoryBeanSupport.java:224) 在 org.springframework.data.repository.core.support.RepositoryFactoryBeanSupport.afterPropertieSet(RepositoryFactoryBeanSupport.java:210) 在 org.springframework.data.jpa.repository.support.JpaRepositoryFactoryBean.AfterPropertieSet(JpaRepositoryFactoryBean.java:92) 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1637) 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1574) ... 35多


使用SpringJUnit4ClassRunner在Junit中测试时,代码运行良好。只有在Wildfly部署期间,我才会出现此错误。下面各种工件的代码片段:

  • web.xml

    http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd“>

    }

  • Wildfly类装入器配置(jboss-deployment-structure.xml)

    
    

  • 如果有人能给出一些提示,我将不胜感激。我已经阅读了一些相关文章,其中大部分指向“packagesToScan”属性。这已经正确配置


    打破我的头很长一段时间!提前感谢您在这里提供的任何帮助。

    我怀疑
    packagesToScan
    是否也会检查子包。您有
    ProductTemplateBean
    实体存在于
    com.olp.jpa.domain.docu.product
    包中进行扫描。您可能需要添加此包和test.Or可能与
    com.olp.jpa.domain.docu.*.*.
    一起使用,但没有任何帮助。我已经尝试使用com.olp.jpa.domain.docu.product扫描特定的软件包,但仍然存在相同的错误。不确定,Wildfly内部发生了什么特别的事情,尽管禁用了其本机jpa.事实上,我现在不得不放弃Wildfly部署(最终将需要它)继续Tomcat和Jetty部署。在部署相同的代码时没有发现任何问题。因此,Wildfly hibernate库排除似乎工作不正常。我可能会在Wildfly论坛中跟进。我怀疑是否也会检查子包。您有
    产品项plateBean
    实体也存在于
    com.olp.jpa.domain.docu.product
    包中进行扫描。您可能需要添加此包并进行测试。或者可能与
    com.olp.jpa.domain.docu.*.*.*
    这没有帮助。我已经尝试使用com.olp.jpa.domain.docu.product扫描特定包仍然是相同的错误。不确定,在禁用本地jpa的情况下,Wildfly内部发生了什么特别的事情。事实上,我现在不得不放弃Wildfly部署(最终将需要它)继续Tomcat和Jetty部署。在部署相同的代码时没有发现任何问题。因此,Wildfly hibernate库排除功能似乎无法正常工作。我可能会在Wildfly论坛中跟进。
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/classes/applicationContext.xml</param-value>
    </context-param>
    
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    
    <context:component-scan base-package="com.olp"/>
    
    <tx:annotation-driven />
    
    <jpa:repositories base-package="com.olp.jpa.domain"  entity-manager-factory-ref="entityManagerFactory"/>
    
    <bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
      <property name="entityManagerFactory" ref="entityManagerFactory" />
    </bean>
    
    <bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
        <property name="persistenceUnitManager" ref="persistenceUnitMgr"/>
        <property name="jpaDialect" ref="jpaDialect"/>
        <property name="jpaVendorAdapter" ref="ogmVendorAdapter"/>
    </bean>
    
    <bean id="persistenceUnitMgr" class="org.springframework.orm.jpa.persistenceunit.DefaultPersistenceUnitManager">
        <property name="persistenceUnitPostProcessors">
            <array>
                <ref bean="persistencePostProcessor"/>
            </array>
        </property>
        <property name="persistenceXmlLocation" value="classpath:META-INF/persistence_olp.xml"/>
        <property name="defaultPersistenceUnitName" value="productHub"/>
        <property name="packagesToScan" value="com.olp.jpa.domain.docu" />
    </bean>
    
    <bean id="persistencePostProcessor" class="com.olp.jpa.OlpPersistenceUnitPostProcessor"/>
    
    <bean id="jpaDialect" class="org.springframework.orm.jpa.vendor.HibernateJpaDialect"/>
    
    <bean id="ogmVendorAdapter" class="com.olp.jpa.OlpHibernateOgmVendorAdapter"/>
    
        <properties>
    
            <!--
                All other hibernate / mongo properties are externalized and provided by persistence unit post-processor in Spring
            -->
    
            <property name="jboss.as.jpa.managed" value="false" />
    
        </properties>
    
    @Id
    @DocumentId
    @GeneratedValue(strategy = GenerationType.AUTO)
    //@Type(type = "objectid")
    private Long id;
    
    // Omitting other fields & getters setters for brevity
    
        <exclusions>
            <module name="org.hibernate"/>
            <module name="org.hibernate.search.orm"/>
            <module name="org.hibernate.search.engine"/>
            <module name="org.hibernate.validator"/>
            <module name="org.codehaus"/>
            <module name="resteasy" />
        </exclusions>
    
    </deployment>