Gradle Wildfly Swarm部署问题-未能解决工件';xalan:serializer:2.7.1.jbossorg-2';

Gradle Wildfly Swarm部署问题-未能解决工件';xalan:serializer:2.7.1.jbossorg-2';,gradle,wildfly,swarm,Gradle,Wildfly,Swarm,使用渐变脚本: buildscript { version = System.getProperty('swarmVersion') ?: '2017.1.1' repositories { mavenLocal() mavenCentral() } dependencies { classpath "io.spring.gradle:dependency-management-plugin:1.0.0.RC2"

使用渐变脚本:

buildscript {
    version = System.getProperty('swarmVersion') ?: '2017.1.1'

    repositories {
        mavenLocal()
        mavenCentral()
    }

    dependencies {
        classpath "io.spring.gradle:dependency-management-plugin:1.0.0.RC2"
        classpath "org.wildfly.swarm:wildfly-swarm-plugin:$version"
    }
}

apply plugin: "io.spring.dependency-management"
apply plugin: 'wildfly-swarm'
apply plugin: 'java'
apply plugin: 'application'

mainClassName = 'test.Main'

swarm {
    properties {
        swarm.http.port = 8080
    }
}

repositories {
    mavenLocal()
    mavenCentral()
    maven {
        url 'https://maven.repository.redhat.com/nexus/content/repositories/releases/'
    }
    maven {
        url 'https://maven.repository.redhat.com/nexus/content/repositories/thirdparty-releases/'
    }
}

dependencyManagement {
    imports {
        mavenBom "org.wildfly.swarm:bom-all:$version"
    }
}

dependencies {
    compile "org.wildfly.swarm:jaxrs"
}
主测试

  package test;

import test.resources.TestResource;
import org.jboss.shrinkwrap.api.ShrinkWrap;
import org.wildfly.swarm.Swarm;
import org.wildfly.swarm.jaxrs.JAXRSArchive;

public class Main {

  public static void main(String... args) throws Exception {

    Swarm swarm = new Swarm();
    JAXRSArchive deployment = ShrinkWrap.create(JAXRSArchive.class);
    deployment.addClass(TestResource.class);
    deployment.addAllDependencies();
    swarm.start();
    swarm.deploy(deployment);
  }
}
我在启动jar时遇到此错误:

2017-01-24 12:00:35,363 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-8) MSC000001: Failed to start service jboss.deployment.unit."8cf83a03-d940-4e8b-b223-f9a9e00976ce.war".INSTALL: org.jboss.msc.service.StartException in service jboss.deployment.unit."8cf83a03-d940-4e8b-b223-f9a9e00976ce.war".INSTALL: WFLYSRV0153: Failed to process phase INSTALL of deployment "8cf83a03-d940-4e8b-b223-f9a9e00976ce.war"
        at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:154)
        at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1948)
        at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1881)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)
Caused by: org.jboss.as.server.deployment.DeploymentUnitProcessingException: WFLYUT0049: Error loading SCI from module: javax.servlet.jstl.api:main
        at org.wildfly.extension.undertow.deployment.ServletContainerInitializerDeploymentProcessor.deploy(ServletContainerInitializerDeploymentProcessor.java:118)
        at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:147)
        ... 5 more
Caused by: org.jboss.modules.ModuleLoadException: Error loading module from modules/org/apache/xalan/main/module.xml
        at org.jboss.modules.xml.ModuleXmlParser.parseModuleXml(ModuleXmlParser.java:228)
        at org.wildfly.swarm.bootstrap.modules.ClasspathModuleFinder.findModule(ClasspathModuleFinder.java:80)
        at org.jboss.modules.ModuleLoader.findModule(ModuleLoader.java:439)
        at org.jboss.modules.ModuleLoader.loadModuleLocal(ModuleLoader.java:342)
        at org.jboss.modules.ModuleLoader.preloadModule(ModuleLoader.java:289)
        at org.jboss.modules.Module.addPaths(Module.java:1079)
        at org.jboss.modules.Module.link(Module.java:1449)
        at org.jboss.modules.Module.relinkIfNecessary(Module.java:1477)
        at org.jboss.modules.ModuleLoader.loadModule(ModuleLoader.java:225)
        at org.wildfly.extension.undertow.deployment.ServletContainerInitializerDeploymentProcessor.deploy(ServletContainerInitializerDeploymentProcessor.java:109)
        ... 6 more
Caused by: org.jboss.modules.xml.XmlPullParserException: Failed to resolve artifact 'xalan:serializer:2.7.1.jbossorg-2' (position: END_TAG seen ...esources>\n    <artifact name="xalan:serializer:2.7.1.jbossorg-2"/>... @5:57) 
        at org.jboss.modules.xml.ModuleXmlParser.parseArtifact(ModuleXmlParser.java:838)
        at org.jboss.modules.xml.ModuleXmlParser.parseResources(ModuleXmlParser.java:739)
        at org.jboss.modules.xml.ModuleXmlParser.parseModuleContents(ModuleXmlParser.java:535)
        at org.jboss.modules.xml.ModuleXmlParser.parseDocument(ModuleXmlParser.java:340)
        at org.jboss.modules.xml.ModuleXmlParser.parseModuleXml(ModuleXmlParser.java:226)
        ... 15 more

2017-01-24 12:00:35,371 ERROR [org.jboss.as.controller.management-operation] (main) WFLYCTL0013: Operation ("add") failed - address: (("deployment" => "8cf83a03-d940-4e8b-b223-f9a9e00976ce.war")) - failure description: {
    "WFLYCTL0080: Failed services" => {"jboss.deployment.unit.\"8cf83a03-d940-4e8b-b223-f9a9e00976ce.war\".INSTALL" => "org.jboss.msc.service.StartException in service jboss.deployment.unit.\"8cf83a03-d940-4e8b-b223-f9a9e00976ce.war\".INSTALL: WFLYSRV0153: Failed to process phase INSTALL of deployment \"8cf83a03-d940-4e8b-b223-f9a9e00976ce.war\"
    Caused by: org.jboss.as.server.deployment.DeploymentUnitProcessingException: WFLYUT0049: Error loading SCI from module: javax.servlet.jstl.api:main
    Caused by: org.jboss.modules.ModuleLoadException: Error loading module from modules/org/apache/xalan/main/module.xml
    Caused by: org.jboss.modules.xml.XmlPullParserException: Failed to resolve artifact 'xalan:serializer:2.7.1.jbossorg-2' (position: END_TAG seen ...esources>\\n    <artifact name=\"xalan:serializer:2.7.1.jbossorg-2\"/>... @5:57) "},
    "WFLYCTL0412: Required services that are not installed:" => ["jboss.deployment.unit.\"8cf83a03-d940-4e8b-b223-f9a9e00976ce.war\".INSTALL"],
    "WFLYCTL0180: Services with missing/unavailable dependencies" => undefined
}
2017-01-24 12:00:35,374 ERROR [org.jboss.as.server] (main) WFLYSRV0021: Deploy of deployment "8cf83a03-d940-4e8b-b223-f9a9e00976ce.war" was rolled back with the following failure message: 
{
    "WFLYCTL0080: Failed services" => {"jboss.deployment.unit.\"8cf83a03-d940-4e8b-b223-f9a9e00976ce.war\".INSTALL" => "org.jboss.msc.service.StartException in service jboss.deployment.unit.\"8cf83a03-d940-4e8b-b223-f9a9e00976ce.war\".INSTALL: WFLYSRV0153: Failed to process phase INSTALL of deployment \"8cf83a03-d940-4e8b-b223-f9a9e00976ce.war\"
    Caused by: org.jboss.as.server.deployment.DeploymentUnitProcessingException: WFLYUT0049: Error loading SCI from module: javax.servlet.jstl.api:main
    Caused by: org.jboss.modules.ModuleLoadException: Error loading module from modules/org/apache/xalan/main/module.xml
    Caused by: org.jboss.modules.xml.XmlPullParserException: Failed to resolve artifact 'xalan:serializer:2.7.1.jbossorg-2' (position: END_TAG seen ...esources>\\n    <artifact name=\"xalan:serializer:2.7.1.jbossorg-2\"/>... @5:57) "},
    "WFLYCTL0412: Required services that are not installed:" => ["jboss.deployment.unit.\"8cf83a03-d940-4e8b-b223-f9a9e00976ce.war\".INSTALL"],
    "WFLYCTL0180: Services with missing/unavailable dependencies" => undefined
}
2017-01-24 12:00:35363错误[org.jboss.msc.service.fail](msc服务线程1-8)MSC000001:无法启动服务jboss.deployment.unit。“8cf83a03-d940-4e8b-b223-f9a9e00976ce.war”。安装:org.jboss.msc.service.StartException在服务jboss.deployment.unit。“8cf83a03-d940-4e8b-b223-F9E00976CE.war”.安装:WFLYSRV0153:无法处理部署“8cf83a03-d940-4e8b-b223-f9a9e00976ce.war”的阶段安装
位于org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:154)
位于org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1948)
位于org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1881)
位于java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
运行(Thread.java:745)
原因:org.jboss.as.server.deployment.DeploymentUnitProcessingException:WFLYUT0049:从模块中加载SCI时出错:javax.servlet.jstl.api:main
位于org.wildfly.extension.undertow.deployment.ServletContainerInitializedDeploymentProcessor.deploy(ServletContainerInitializedDeploymentProcessor.java:118)
位于org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:147)
... 还有5个
原因:org.jboss.modules.ModuleLoadException:从modules/org/apache/xalan/main/module.xml加载模块时出错
在org.jboss.modules.xml.ModuleXmlParser.parseModuleXml(ModuleXmlParser.java:228)上
位于org.wildfly.swarm.bootstrap.modules.ClasspathModuleFinder.findModule(ClasspathModuleFinder.java:80)
位于org.jboss.modules.ModuleLoader.findModule(ModuleLoader.java:439)
位于org.jboss.modules.ModuleLoader.loadModuleLocal(ModuleLoader.java:342)
在org.jboss.modules.ModuleLoader.prelomodule上(ModuleLoader.java:289)
位于org.jboss.modules.Module.addpath(Module.java:1079)
位于org.jboss.modules.Module.link(Module.java:1449)
如有必要,请访问org.jboss.modules.Module.relinkif(Module.java:1477)
位于org.jboss.modules.ModuleLoader.loadModule(ModuleLoader.java:225)
位于org.wildfly.extension.undertow.deployment.ServletContainerInitializedDeploymentProcessor.deploy(ServletContainerInitializedDeploymentProcessor.java:109)
... 还有6个
由以下原因引起:org.jboss.modules.xml.XmlPullParserException:未能解析工件“xalan:serializer:2.7.1.jbossorg-2”(位置:已看到END_标记…esources>\n…@5:57)
位于org.jboss.modules.xml.ModuleXmlParser.parseArtifact(ModuleXmlParser.java:838)
位于org.jboss.modules.xml.ModuleXmlParser.parseResources(ModuleXmlParser.java:739)
位于org.jboss.modules.xml.ModuleXmlParser.parseModuleContents(ModuleXmlParser.java:535)
位于org.jboss.modules.xml.ModuleXmlParser.parseDocument(ModuleXmlParser.java:340)
在org.jboss.modules.xml.ModuleXmlParser.parseModuleXml(ModuleXmlParser.java:226)上
... 还有15个
2017-01-24 12:00:35371错误[org.jboss.as.controller.management operation](主)WFLYCTL0013:操作(“添加”)失败-地址:((“部署”=>“8cf83a03-d940-4e8b-b223-f9a9e00976ce.war”)-故障描述:{
“WFLYCTL0080:Failed services”=>{“jboss.deployment.unit.\“8cf83a03-d940-4e8b-b223-F9ARV0153-F9A00976CE.war\”。在服务jboss.deployment.unit中安装“=>”org.jboss.msc.service.StartException.\“8cf83a03-d940-4e8b-b223-F9A00976CE.war\”。安装:WFLYSERV0153:未能处理部署的阶段安装\“8cf83a03-d940-4E8E8E8E940-B20923-F9E076CE\”
原因:org.jboss.as.server.deployment.DeploymentUnitProcessingException:WFLYUT0049:从模块中加载SCI时出错:javax.servlet.jstl.api:main
原因:org.jboss.modules.ModuleLoadException:从modules/org/apache/xalan/main/module.xml加载模块时出错
原因:org.jboss.modules.xml.XmlPullParserException:未能解析工件“xalan:serializer:2.7.1.jbossorg-2”(位置:END_标记已看到…esources>\\n…@5:57)”,
“WFLYCTL0412:未安装的必需服务:”=>[“jboss.deployment.unit.\“8cf83a03-d940-4e8b-b223-f9a9e00976ce.war\”。安装“],
“WFLYCTL0180:缺少/不可用依赖项的服务”=>未定义
}
2017-01-24 12:00:35374错误[org.jboss.as.server](main)WFLYSRV0021:部署“8cf83a03-d940-4e8b-b223-f9a9e00976ce.war”已回滚,并显示以下失败消息:
{
“WFLYCTL0080:Failed services”=>{“jboss.deployment.unit.\“8cf83a03-d940-4e8b-b223-F9ARV0153-F9A00976CE.war\”。在服务jboss.deployment.unit中安装“=>”org.jboss.msc.service.StartException.\“8cf83a03-d940-4e8b-b223-F9A00976CE.war\”。安装:WFLYSERV0153:未能处理部署的阶段安装\“8cf83a03-d940-4E8E8E8E940-B20923-F9E076CE\”
原因:org.jboss.as.server.deployment.DeploymentUnitProcessingException:WFLYUT0049:从模块中加载SCI时出错:javax.servlet.jstl.api:main
原因:org.jboss.modules.ModuleLoadException:从modules/org/apache/xalan/main/module.xml加载模块时出错
原因:org.jboss.modules.xml.XmlPullParserException:未能解析工件“xalan:serializer:2.7.1.jbossorg-2”(位置:END_标记已看到…esources>\\n…@5:57)”,
“WFLYCTL0412:未安装的必需服务:”=>[“jboss.deployment.unit.\“8cf83a03-d940-4e8b-b223-f9a9e00976ce.war\”。安装“],
“WFLYCTL0180:缺少/不可用依赖项的服务”=>未定义
}

我找到了解决办法,如果我将包添加到部署中,swarm就能正常部署它。下面是对我有效的解决方案

Swarm swarm = new Swarm();
JAXRSArchive deployment = ShrinkWrap.create(JAXRSArchive.class);
deployment.addPackage("test");
deployment.addAllDependencies();
swarm.start();
swarm.deploy(deployment);

Wildfly Swarm的gradle插件存在许多问题,例如

java -jar my-hollow-swarm.jar my-application.war
java -jar my-hollow-swarm.jar my-application.war -c /etc/config.xml
java -jar my-hollow-swarm.jar my-application.war --help