Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/377.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 启动Wildfly 11应用程序服务器时出错-名为null的持久化单元_Java_Jpa_Ejb_Wildfly - Fatal编程技术网

Java 启动Wildfly 11应用程序服务器时出错-名为null的持久化单元

Java 启动Wildfly 11应用程序服务器时出错-名为null的持久化单元,java,jpa,ejb,wildfly,Java,Jpa,Ejb,Wildfly,我正在使用Eclipse和Wildfly 11开发一个基于maven的JSF+JPA+EJB3.2项目。 启动应用程序服务器时,我收到以下错误: 20:37:27,664 INFO [org.jboss.weld.deployer] (MSC service thread 1-4) WFLYWELD0003: Processing weld deployment erpmini.war 20:37:28,116 INFO [org.hibernate.validator.inter

我正在使用Eclipse和Wildfly 11开发一个基于maven的JSF+JPA+EJB3.2项目。 启动应用程序服务器时,我收到以下错误:

    20:37:27,664 INFO  [org.jboss.weld.deployer] (MSC service thread 1-4) WFLYWELD0003: Processing weld deployment erpmini.war

20:37:28,116 INFO  [org.hibernate.validator.internal.util.Version] (MSC service thread 1-4) HV000001: Hibernate Validator 5.3.5.Final

20:37:28,552 INFO  [org.jboss.as.ejb3.deployment] (MSC service thread 1-4) WFLYEJB0473: JNDI bindings for session bean named 'UserManagementServiceSlsb' in deployment unit 'deployment "erpmini.war"' are as follows:


java:global/erpmini/UserManagementServiceSlsb!com.itsys.erp.server.commonservices.usermgmt.UserManagementService

java:app/erpmini/UserManagementServiceSlsb!com.itsys.erp.server.commonservices.usermgmt.UserManagementService

java:module/UserManagementServiceSlsb!com.itsys.erp.server.commonservices.usermgmt.UserManagementService

java:jboss/exported/erpmini/UserManagementServiceSlsb!com.itsys.erp.server.commonservices.usermgmt.UserManagementService

java:global/erpmini/UserManagementServiceSlsb

java:app/erpmini/UserManagementServiceSlsb

java:module/UserManagementServiceSlsb

20:37:29,879 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-4) MSC000001: Failed to start service jboss.deployment.unit."erpmini.war".INSTALL: org.jboss.msc.service.StartException in service jboss.deployment.unit."erpmini.war".INSTALL: WFLYSRV0153: Failed to process phase INSTALL of deployment "erpmini.war"

at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:172)

at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:2032)

at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1955)

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)

at java.lang.Thread.run(Thread.java:748)

Caused by: org.jboss.as.server.deployment.DeploymentUnitProcessingException: WFLYEE0041: Component class com.itsys.erp.server.commonservices.usermgmt.slsbadapter.UserManagementServiceSlsb for component UserManagementServiceSlsb has errors:

WFLYJPA0033: Can't find a persistence unit named null in deployment "erpmini.war"

at org.jboss.as.ee.component.deployers.ModuleJndiBindingProcessor$1.handle(ModuleJndiBindingProcessor.java:157)

at org.jboss.as.ee.component.ClassDescriptionTraversal.run(ClassDescriptionTraversal.java:54)

at org.jboss.as.ee.component.deployers.ModuleJndiBindingProcessor.processClassConfigurations(ModuleJndiBindingProcessor.java:186)

at org.jboss.as.ee.component.deployers.ModuleJndiBindingProcessor.deploy(ModuleJndiBindingProcessor.java:143)

at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:165)

... 5 more

20:37:30,098 INFO  [org.infinispan.factories.GlobalComponentRegistry] (MSC service thread 1-2) ISPN000128: Infinispan version: Infinispan 'Chakra' 8.2.8.Final

20:37:31,825 INFO  [org.jboss.as.clustering.infinispan] (ServerService Thread Pool -- 63) WFLYCLINF0002: Started client-mappings cache from ejb container

20:37:32,131 ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) WFLYCTL0013: Operation ("deploy") failed - address: ([("deployment" => "erpmini.war")]) - failure description: {

    "WFLYCTL0080: Failed services" => {"jboss.deployment.unit.\"erpmini.war\".INSTALL" => "WFLYSRV0153: Failed to process phase INSTALL of deployment \"erpmini.war\"

    Caused by: org.jboss.as.server.deployment.DeploymentUnitProcessingException: WFLYEE0041: Component class com.itsys.erp.server.commonservices.usermgmt.slsbadapter.UserManagementServiceSlsb for component UserManagementServiceSlsb has errors:

WFLYJPA0033: Can't find a persistence unit named null in deployment \"erpmini.war\""},

    "WFLYCTL0412: Required services that are not installed:" => ["jboss.deployment.unit.\"erpmini.war\".beanmanager"],

    "WFLYCTL0180: Services with missing/unavailable dependencies" => [

    "jboss.deployment.unit.\"erpmini.war\".weld.weldClassIntrospector is missing [jboss.deployment.unit.\"erpmini.war\".beanmanager]",

    "jboss.deployment.unit.\"erpmini.war\".batch.artifact.factory is missing [jboss.deployment.unit.\"erpmini.war\".beanmanager]"

    ]

}
我正在无状态bean中注入EntityManager:

@Stateless
public class UserManagementServiceSlsb implements UserManagementService {

     /** The Entity Manager */
     @PersistenceContext(name = "TELCOAppPU")
     private EntityManager entityManager;

     private UserManagementService userMgmtService;
 ....
}

为什么容器无法找到persistence.xml文件?persistence.xml存在于META-INF目录中。任何帮助都将不胜感激。 谢谢
更新:
这是projectdir结构,persistence.xml存在于META-INF目录中

persistence.xml包含实体类和MySql数据库连接详细信息

<persistence-unit name="TELCOAppPU">
    <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
    <class>com.itsys.erp.server.dal.entities.City</class>
    <class>com.itsys.erp.server.dal.entities.Machine</class>
    <class>com.itsys.erp.server.dal.entities.Product</class>
    <class>com.itsys.erp.server.dal.entities.ProductType</class>
    <class>com.itsys.erp.server.dal.entities.ProductionLog</class>
    ...
    <properties>
        <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" />
        <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/erpdb" />
        <property name="javax.persistence.jdbc.user" value="root" />
        <property name="javax.persistence.jdbc.password" value="root" />
        <property name="hibernate.show_sql" value="true" />
    </properties>
</persistence-unit>

org.hibernate.jpa.HibernatePersistenceProvider
com.itsys.erp.server.dal.entities.City
com.itsys.erp.server.dal.entities.Machine
com.itsys.erp.server.dal.entities.Product
com.itsys.erp.server.dal.entities.ProductType
com.itsys.erp.server.dal.entities.ProductionLog
...

尝试将您的
persistence.xml
文件放在
WEB-INF(src/main/webapp/WEB-INF)
目录中,因为在发生
战争的情况下,您应该将
persistence.xml
文件放在那里。

通过添加
资源
文件夹(作为源文件夹)解决了这个问题到路径
src/main/resources
并将
META-INF
文件夹移动到
resources
文件夹,这反过来告诉maven把所有文件放在
resources
目录下,放到
target/classes
WEB-INF/classes
的战争中。

你的
persistence.xml
包含什么,它在哪里?persistence.xml存在于META-INF目录中。我已经提出了项目结构的问题。persistence.xml包含实体类和mysql数据库连接详细信息。更新了这个问题。是的,我刚才在JPA2.2规范的8.2节中读到了。我的项目是一个maven Web App项目,我没有看到
src/main/java/webapp
下的
Web-INF
dir。因此,我创建了
WEB-INF/classes
目录,并将
persistence.xml
文件移到了那里。但这会在项目的根目录上显示错误图标,并在服务器启动时显示相同的错误。在
src/main
create
webapp
目录下。在
webapp
下,创建
WEB-INF
。只需将persistence.xml文件放到
WEB-INF'中即可。不要创建
classes`目录。maven构建项目时,
classes
目录在
target
目录中创建。尝试将
persistence.xml
文件放在
src/main/webapp/WEB-INF
目录下,但在服务器启动时出现相同错误,因为现在它在项目的根文件夹和
Java资源
文件夹上显示错误,并带有一个红色的小十字图标。似乎无法在
/src/main/java/META-INF
文件夹下找到
persistence.xml
。当我将
persistence.xml
文件放回
META-INF
文件夹下时,它不会显示错误。有没有办法告诉maven在构建期间将文件从
META-INF
目录包含到
WEB-INF/classes
目录中?我刚刚注意到一点。在注释
@PersistenceContext()
EntityManager
顶部,使用属性
unitName=TELCOAppPu
而不是
name=TELCOAppPu
。这应该能解决你的问题。