I'm not quite sure why Intellij seems to think I need the 'Tomcat 7.0.26' but since I'm deploying to JBoss 7.1.1.FINAL I am assuming that I can simply fix the problem by changing Tomcat 7.0.26 scope to provided. Such, does not work.

I'm deploying an EAR and nothing should be deployed as exploded. Why is Intellij trying to deploy exploded artifacts all of the sudden?

19:35:36,701 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-4) MSC00001: Failed to start service jboss.deployment.subunit."Patrac.ear"."Patrac-ejb-1.0.jar".DEPENDENCIES: org.jboss.msc.service.StartException in service jboss.deployment.subunit."Patrac.ear"."Patrac-ejb-1.0.jar".DEPENDENCIES: Failed to process phase DEPENDENCIES of subdeployment "Patrac-ejb-1.0.jar" of deployment "Patrac.ear" at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:119) [jboss-as-server-7.1.1.Final.jar:7.1.1.Final] 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] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) [rt.jar:1.7.0_03] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) [rt.jar:1.7.0_03] at java.lang.Thread.run(Thread.java:722) [rt.jar:1.7.0_03]Caused by: java.lang.IllegalArgumentException: JBAS011470: Persistence unitName was not specified and there are 2 persistence unit definitions in application deployment "Patrac.ear". Either change the application to have only one persistence unit definition or specify the unitName for each reference to a persistence unit. at org.jboss.as.jpa.container.PersistenceUnitSearch.resolvePersistenceUnitSupplier(PersistenceUnitSearch.java:69) at org.jboss.as.jpa.processor.JPAAnnotationParseProcessor.getPersistenceUnit(JPAAnnotationParseProcessor.java:284) at org.jboss.as.jpa.processor.JPAAnnotationParseProcessor.getBindingSource(JPAAnnotationParseProcessor.java:220) at org.jboss.as.jpa.processor.JPAAnnotationParseProcessor.processField(JPAAnnotationParseProcessor.java:151) at org.jboss.as.jpa.processor.JPAAnnotationParseProcessor.processPersistenceAnnotations(JPAAnnotationParseProcessor.java:118) at org.jboss.as.jpa.processor.JPAAnnotationParseProcessor.deploy(JPAAnnotationParseProcessor.java:90) at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:113) [jboss-as-server-7.1.1.Final.jar:7.1.1.Final] ... 5 more

Please check that artifacts to be deployed are configured properly on the 'Deployment' tab of the configuration. It may help if you remove all artifacts selected for deployment from the list and then add them again.

"Deployment" tab? I don't know what you are referring to.. I go to Project Structure --> Project Settings --> Artifacts to check artifacts.

And, yes, I've removed all of the artifacts and add them again. And again. And again. I've tried both exploded and archive. I made sure to add my manifest to the WAR, so that it can see Patrac-ejb.jar in its classpath. Everything was fine before I upgraded to v. 11.1.2. Now, it's not working.

I've noticed that when configuring the EAR, Patrac-ear, I drag the archive 'Patrac-ejb' from "Available Elements" over to the Patrac-ear archive and an error message appears as follows:

I've never had this error message before. I'm using JBoss AS 7, and any JARs from global libraries, such as Tomcat 7.0.26, should be provided by JBoss.

When I click on the "Patrac-ejb.jar" archive, look at its "Available Elements," and drill down into the Patrac-ejb folder, I do see a subtree labeled "Tomcat 7.0.26 (Global Library)." I don't recall ever seeing this before the upgrade to v. 11.1.2. Now, trying to add the "Tomcat 7.0.26" to the artifact or clicking on "Change Tomcat 7.0.26 scope to provided" does not help matters at all.

When I attempt to run the EAR, I get the following output, which tells me to "See server log for details," but the server log is very brief and provides no warnings or errors.

12:38:11,612 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-5) MSC00001: Failed to start service jboss.deployment.subunit."Patrac.ear"."Patrac-ejb.jar".DEPENDENCIES: org.jboss.msc.service.StartException in service jboss.deployment.subunit."Patrac.ear"."Patrac-ejb.jar".DEPENDENCIES: Failed to process phase DEPENDENCIES of subdeployment "Patrac-ejb.jar" of deployment "Patrac.ear" at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:119) [jboss-as-server-7.1.1.Final.jar:7.1.1.Final] 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] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) [rt.jar:1.7.0_03] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) [rt.jar:1.7.0_03] at java.lang.Thread.run(Thread.java:722) [rt.jar:1.7.0_03]Caused by: java.lang.IllegalArgumentException: JBAS011470: Persistence unitName was not specified and there are 2 persistence unit definitions in application deployment "Patrac.ear". Either change the application to have only one persistence unit definition or specify the unitName for each reference to a persistence unit. at org.jboss.as.jpa.container.PersistenceUnitSearch.resolvePersistenceUnitSupplier(PersistenceUnitSearch.java:69) at org.jboss.as.jpa.processor.JPAAnnotationParseProcessor.getPersistenceUnit(JPAAnnotationParseProcessor.java:284) at org.jboss.as.jpa.processor.JPAAnnotationParseProcessor.getBindingSource(JPAAnnotationParseProcessor.java:220) at org.jboss.as.jpa.processor.JPAAnnotationParseProcessor.processField(JPAAnnotationParseProcessor.java:151) at org.jboss.as.jpa.processor.JPAAnnotationParseProcessor.processPersistenceAnnotations(JPAAnnotationParseProcessor.java:118) at org.jboss.as.jpa.processor.JPAAnnotationParseProcessor.deploy(JPAAnnotationParseProcessor.java:90) at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:113) [jboss-as-server-7.1.1.Final.jar:7.1.1.Final] ... 5 more

Okay, I finally figured out what configuration you were referring to. I found a Deployment tab in Run/Debug Configurations of the server. I removed the old entry, Patrac-ear, which seemed to have it's icon removed, and added Patrac-ear back again, and this time it had a colorful icon next to it. After attempting to rebuild and redeploy, the server output changed to the following:

12:53:11,761 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-4) MSC00001: Failed to start service jboss.deployment.subunit."Patrac-ear.ear"."Patrac-ejb.jar".DEPENDENCIES: org.jboss.msc.service.StartException in service jboss.deployment.subunit."Patrac-ear.ear"."Patrac-ejb.jar".DEPENDENCIES: Failed to process phase DEPENDENCIES of subdeployment "Patrac-ejb.jar" of deployment "Patrac-ear.ear" at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:119) [jboss-as-server-7.1.1.Final.jar:7.1.1.Final] 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] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) [rt.jar:1.7.0_03] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) [rt.jar:1.7.0_03] at java.lang.Thread.run(Thread.java:722) [rt.jar:1.7.0_03]Caused by: java.lang.IllegalArgumentException: JBAS011470: Persistence unitName was not specified and there are 2 persistence unit definitions in application deployment "Patrac-ear.ear". Either change the application to have only one persistence unit definition or specify the unitName for each reference to a persistence unit. at org.jboss.as.jpa.container.PersistenceUnitSearch.resolvePersistenceUnitSupplier(PersistenceUnitSearch.java:69) at org.jboss.as.jpa.processor.JPAAnnotationParseProcessor.getPersistenceUnit(JPAAnnotationParseProcessor.java:284) at org.jboss.as.jpa.processor.JPAAnnotationParseProcessor.getBindingSource(JPAAnnotationParseProcessor.java:220) at org.jboss.as.jpa.processor.JPAAnnotationParseProcessor.processField(JPAAnnotationParseProcessor.java:151) at org.jboss.as.jpa.processor.JPAAnnotationParseProcessor.processPersistenceAnnotations(JPAAnnotationParseProcessor.java:118) at org.jboss.as.jpa.processor.JPAAnnotationParseProcessor.deploy(JPAAnnotationParseProcessor.java:90) at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:113) [jboss-as-server-7.1.1.Final.jar:7.1.1.Final] ... 5 more

12:53:11,761 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-4) MSC00001: Failed to start service jboss.deployment.subunit."Patrac-ear.ear"."Patrac-ejb.jar".DEPENDENCIES: org.jboss.msc.service.StartException in service jboss.deployment.subunit."Patrac-ear.ear"."Patrac-ejb.jar".DEPENDENCIES: Failed to process phase DEPENDENCIES of subdeployment "Patrac-ejb.jar" of deployment "Patrac-ear.ear" at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:119) [jboss-as-server-7.1.1.Final.jar:7.1.1.Final] 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] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) [rt.jar:1.7.0_03] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) [rt.jar:1.7.0_03] at java.lang.Thread.run(Thread.java:722) [rt.jar:1.7.0_03]Caused by: java.lang.IllegalArgumentException: JBAS011470: Persistence unitName was not specified and there are 2 persistence unit definitions in application deployment "Patrac-ear.ear". Either change the application to have only one persistence unit definition or specify the unitName for each reference to a persistence unit. at org.jboss.as.jpa.container.PersistenceUnitSearch.resolvePersistenceUnitSupplier(PersistenceUnitSearch.java:69) at org.jboss.as.jpa.processor.JPAAnnotationParseProcessor.getPersistenceUnit(JPAAnnotationParseProcessor.java:284) at org.jboss.as.jpa.processor.JPAAnnotationParseProcessor.getBindingSource(JPAAnnotationParseProcessor.java:220) at org.jboss.as.jpa.processor.JPAAnnotationParseProcessor.processField(JPAAnnotationParseProcessor.java:151) at org.jboss.as.jpa.processor.JPAAnnotationParseProcessor.processPersistenceAnnotations(JPAAnnotationParseProcessor.java:118) at org.jboss.as.jpa.processor.JPAAnnotationParseProcessor.deploy(JPAAnnotationParseProcessor.java:90) at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:113) [jboss-as-server-7.1.1.Final.jar:7.1.1.Final] ... 5 more