我正在将一个EAR部署到JBoss AS 7.1.1,其结构如下:
GrahamsProj.EAR
GrahamsProjClient.WAR
app/GrahamsProjClient.jar
GrahamsProjServer.EAR
GrahamsProjServer.jar
每次部署EAR并启动JBoss时,我都会收到此错误:
JBAS014775: New missing/unsatisfied dependencies:service jboss.deployment.unit."GrahamsProjServer.ear".PARSE (missing) dependents: [service jboss.deployment.subunit."GrahamsProjServer.ear"."GrahamsProjServer.jar".PARSE]
17:19:10,129 ERROR [org.jboss.as.server.deployment.scanner] (DeploymentScanner-threads - 1) {"JBAS014653: Composite operation failed and was rolled back. Steps that failed:" => {"Operation step-2" => {"JBAS014771: Services with missing/unavailable dependencies" => ["jboss.deployment.subunit.\"GrahamsProjServer.ear\".\"GrahamsProjServer.jar\".PARSEjboss.deployment.unit.\"GrahamsProjServer.ear\".PARSEMissing[jboss.deployment.subunit.\"GrahamsProjServer.ear\".\"GrahamsProjServer.jar\".PARSEjboss.deployment.unit.\"GrahamsProjServer.ear\".PARSE]"]}}}
正如您所看到的,错误是说我的服务器(GrahamsProjServer.ear)无法找到依赖项。
我通过谷歌搜索“新的缺失/不满意的依赖jboss为7”查找错误,我得到了广泛的答案。这两个常见的似乎是standalone.xml中的数据源问题,以及jboss-deployment-structure.xml的问题。
这是来自standalone.xml的数据源:
<datasources>
<datasource jta="true" jndi-name="java:jboss/datasources/WorkCenterDS" pool-name="OracleDS" enabled="true" use-java-context="true" use-ccm="true">
<connection-url>jdbc:oracle:thin:@MCOSRVORCL001:1521:support</connection-url>
<driver>oracle</driver>
<transaction-isolation>TRANSACTION_READ_COMMITTED</transaction-isolation>
<pool>
<prefill>true</prefill>
<use-strict-min>false</use-strict-min>
<flush-strategy>FailingConnectionOnly</flush-strategy>
</pool>
<security>
<user-name>grahamsproj</user-name>
<password>airit</password>
</security>
</datasource>
<drivers>
<driver name="oracle" module="com.oracle.ojdbc14">
<xa-datasource-class>oracle.jdbc.OracleDriver</xa-datasource-class>
</driver>
</drivers>
</datasources>
以下是我的WAR文件的WEB-INF文件夹中的jboss-deployment-structure.xml
。
<jboss-deployment-structure>
<ear-subdeployments-isolated>false</ear-subdeployments-isolated>
<deployment>
<dependencies>
<module name="GrahamsProjServer.GrahamsProjServer.jar"/>
</dependencies>
</deployment>
</jboss-deployment-structure>
如果我摆脱jboss-deployment-structure.xml
,则会出现同样的错误。所以它似乎并没有什么不同。我的问题可能与这些事情中的任何一个都无关。有谁看到发生了什么?
这是服务器上的application.xml
:
<application>
<display-name>GrahamsProj</display-name>
<description>GrahamsProj</description>
<application-name>GrahamsProjServer</application-name>
<module>
<ejb>GrahamsProjServer.jar</ejb>
</module>
</application>
答案 0 :(得分:2)
这种依赖看起来很虚伪。将其修复为
<jboss-deployment-structure>
<ear-subdeployments-isolated>false</ear-subdeployments-isolated>
</jboss-deployment-structure>
您要将依赖项添加到您自己的依赖项的子模块中。可能你想要实现那些模块看到彼此分别使用了ear-subdeployments-isolated标志。
这会导致一些不同的错误。在这里发布一个,所以我们可以找出其他可能是错误的。
有关AS7中的类加载以及jboss-deployment-structure.xml提供的所有选项的更多信息,请参阅https://docs.jboss.org/author/display/AS71/Class+Loading+in+AS7
鉴于您提供的application.xml,您缺少Web模块。只有jar模块。 但例外情况应该是不同的。 你也可以发布
的输出jar tf <name-of-ear>
它会让我们看看您的应用结构。 如果您尝试使用最新的每晚构建,异常会发生什么变化? https://community.jboss.org/thread/167590