"父母不是这个虚拟文件的祖先"添加Spring库时出错

时间:2017-11-28 07:45:17

标签: java spring spring-mvc jboss7.x

我正在实施一些使用大量库的网络应用程序(Spring,Log4j,Jackson,...)。到目前为止,一切正常,但如果我尝试添加另一个Spring库(webmvc - 我实现需要DispatcherServlet类的REST API),我在JBoss上部署时会出现以下错误AS 7.1.1:

    2017-11-28 08:31:26,678 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-1) JBAS015876: Starting deployment of "Office.war"
2017-11-28 08:31:27,973 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-5) MSC00001: Failed to start service jboss.deployment.subunit."Office.ear"."Office.war".PARSE: org.jboss.msc.service.StartException in service jboss.deployment.subunit."Office.ear"."Office.war".PARSE: Failed to process phase PARSE of subdeployment "Office.war" of deployment "Office.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$Worker.runTask(ThreadPoolExecutor.java:895) [rt.jar:1.6.0_45]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918) [rt.jar:1.6.0_45]
    at java.lang.Thread.run(Thread.java:662) [rt.jar:1.6.0_45]
Caused by: java.lang.IllegalArgumentException: Given parent is not an ancestor of this virtual file
    at org.jboss.vfs.VirtualFile.getPathNameRelativeTo(VirtualFile.java:116) [jboss-vfs-3.1.0.Final.jar:3.1.0.Final]
    at org.jboss.vfs.VirtualFile.getPathNameRelativeTo(VirtualFile.java:122) [jboss-vfs-3.1.0.Final.jar:3.1.0.Final]
    at org.jboss.vfs.VirtualFile.getPathNameRelativeTo(VirtualFile.java:122) [jboss-vfs-3.1.0.Final.jar:3.1.0.Final]
    at org.jboss.vfs.VirtualFile.getPathNameRelativeTo(VirtualFile.java:122) [jboss-vfs-3.1.0.Final.jar:3.1.0.Final]
    at org.jboss.vfs.VirtualFile.getPathNameRelativeTo(VirtualFile.java:122) [jboss-vfs-3.1.0.Final.jar:3.1.0.Final]
    at org.jboss.vfs.VirtualFile.getPathNameRelativeTo(VirtualFile.java:122) [jboss-vfs-3.1.0.Final.jar:3.1.0.Final]
    at org.jboss.vfs.VirtualFile.getPathNameRelativeTo(VirtualFile.java:122) [jboss-vfs-3.1.0.Final.jar:3.1.0.Final]
    at org.jboss.vfs.VirtualFile.getPathNameRelativeTo(VirtualFile.java:122) [jboss-vfs-3.1.0.Final.jar:3.1.0.Final]
    at org.jboss.vfs.VirtualFile.getPathNameRelativeTo(VirtualFile.java:122) [jboss-vfs-3.1.0.Final.jar:3.1.0.Final]
    at org.jboss.vfs.VirtualFile.getPathNameRelativeTo(VirtualFile.java:122) [jboss-vfs-3.1.0.Final.jar:3.1.0.Final]
    at org.jboss.vfs.VirtualFile.getPathNameRelativeTo(VirtualFile.java:122) [jboss-vfs-3.1.0.Final.jar:3.1.0.Final]
    at org.jboss.vfs.VirtualFile.getPathNameRelativeTo(VirtualFile.java:122) [jboss-vfs-3.1.0.Final.jar:3.1.0.Final]
    at org.jboss.vfs.VirtualFile.getPathNameRelativeTo(VirtualFile.java:122) [jboss-vfs-3.1.0.Final.jar:3.1.0.Final]
    at org.jboss.vfs.VirtualFile.getPathNameRelativeTo(VirtualFile.java:110) [jboss-vfs-3.1.0.Final.jar:3.1.0.Final]
    at org.jboss.as.web.deployment.TldParsingDeploymentProcessor.processTlds(TldParsingDeploymentProcessor.java:107)
    at org.jboss.as.web.deployment.TldParsingDeploymentProcessor.deploy(TldParsingDeploymentProcessor.java:83)
    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

2017-11-28 08:31:28,224 INFO  [org.jboss.as.server] (DeploymentScanner-threads - 1) JBAS015870: Deploy of deployment "Office.ear" was rolled back with failure message {"JBAS014671: Failed services" => {"jboss.deployment.subunit.\"Office.ear\".\"Office.war\".PARSE" => "org.jboss.msc.service.StartException in service jboss.deployment.subunit.\"Office.ear\".\"Office.war\".PARSE: Failed to process phase PARSE of subdeployment \"Office.war\" of deployment \"Office.ear\""}}
2017-11-28 08:31:28,336 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-8) JBAS015877: Stopped deployment Office.war in 113ms
2017-11-28 08:31:28,339 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-7) JBAS015877: Stopped deployment Office.ear in 116ms
2017-11-28 08:31:28,341 INFO  [org.jboss.as.controller] (DeploymentScanner-threads - 1) JBAS014774: Service status report
JBAS014777:   Services which failed to start:      service jboss.deployment.subunit."Office.ear"."Office.war".PARSE: org.jboss.msc.service.StartException in service jboss.deployment.subunit."Office.ear"."Office.war".PARSE: Failed to process phase PARSE of subdeployment "Office.war" of deployment "Office.ear"

2017-11-28 08:31:28,347 ERROR [org.jboss.as.server.deployment.scanner] (DeploymentScanner-threads - 2) {"JBAS014653: Composite operation failed and was rolled back. Steps that failed:" => {"Operation step-2" => {"JBAS014671: Failed services" => {"jboss.deployment.subunit.\"Office.ear\".\"Office.war\".PARSE" => "org.jboss.msc.service.StartException in service jboss.deployment.subunit.\"Office.ear\".\"Office.war\".PARSE: Failed to process phase PARSE of subdeployment \"Office.war\" of deployment \"Office.ear\""}}}}

这是我的EAR部署程序集

enter image description here

和我的网络模块组装。

enter image description here

我不知道为什么会出现这个错误,其他库不会造成麻烦。有什么建议吗?

编辑1:

我注意到了另一件奇怪的事情。在Eclipse"添加和删除"对话框,可用资源部分有三个Spring webmvc jar条目。

enter image description here

这些条目来自哪里?可能是Eclipse问题吗?

编辑2:

我已将所有广告直接转移到lib文件夹(而不是像lib/spring/spring-webmvc-4.0.6.jar这样的子文件夹),我成功部署了我的应用。任何人都可以解释为什么移动罐子后错误消失了吗?

2 个答案:

答案 0 :(得分:1)

从standalone / deployments文件夹中删除以前的部署。清理服务器并重新部署EAR。如果您使用的是Java 6,则可以尝试将Java版本更改为Java 7。

Jboss AS 7.1.1有很多这样的问题。如果可能,请将服务器更改为Jboss AS 7.2。这是JBoss 7.1.2中修复的问题之一。您可以查看此link有关此错误及其修复的版本。

答案 1 :(得分:0)

我已将所有jar直接放入lib文件夹(而不是lib/spring/spring-webmvc.4.0.6.jar等子文件夹中)并且我已成功部署。不知道为什么 - 如果有人能解释是什么原因会很棒。