2017-01-24 9 views
1

Использование Gradle сценария:Wildfly Swarm вопрос развертывания - не удалось устранить артефакт 'Xalan: Serializer: 2.7.1.jbossorg-2'

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" 
} 

test.Main

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); 
    } 
} 

Im получаю эту ошибку в то время как, начиная кувшин:

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 
} 

ответ

0

выясню обходной путь, если я добавить пакет развертывания затем роя в состоянии развернуть его в обычном режиме. Ниже приводится решение, которое сработало для меня.

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

Есть целый ряд проблем, связанных с Gradle плагин для Wildfly Swarm, такие как

https://issues.jboss.org/browse/SWARM-542 и

https://issues.jboss.org/browse/SWARM-826

И this comment не делает меня уверенным, что они собираются будет исправлено в ближайшее время.

С этой целью в настоящее время мой подход состоит в том, чтобы предположить, что единственный способ надежно построить приложение Swarm с Gradle - начать с создания полого рой-uberjar с использованием Maven и затем интегрировать полученную кубику Wildfly, используя Gradle или (как я сделал), в Docker.

Вы пропустите автоматическое обнаружение фракций (в любом случае это не работает для меня в градле), но, с другой стороны, вы получаете более быстрое время сборки, если вы не строите весь uberjar для каждой сборки. И, конечно же, поскольку Maven, по-видимому, является первоклассным гражданином Red Hat, вы развязываете себя в зависимости от инструмента сборки, который не поддерживается поставщиком.

Более подробную информацию о полых uberjars:

https://wildfly-swarm.gitbooks.io/wildfly-swarm-users-guide/content/getting-started/tooling/maven-plugin.html

Для развертывания приложения с uberjar вы можете просто добавить WAR в командной строке:

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 
+0

После того, как у меня возникло так много проблем и просто игнорировались разработчиками ядра, я наткнулся на ваш ответ, и я думаю, что это отличное решение. однако я не могу решить, какой лучший способ использовать пользовательскую основную часть с этим решением. может ли он быть помещен в пустотелый генератор убержара или он будет находиться в отдельном (возможно, Gradle) модуле? – mohamnag

+0

также было бы неплохо узнать, как вы упаковываете зависимости выходного сигнала Gradle, чтобы его можно было запускать полым uberjar с минимальными проблемами. – mohamnag

0

Вам необходимо активировать репозиторий JBoss Nexus в настройках Maven.

Смотрите также:

Пример:

Причина заключается в том, что в то время как WildFly Swarm и инструмент инициализации WildFly загрузить артефакты правильно, некоторые из них доступны только на JBoss Nexus и Maven будет отслеживать это в метаданных вашего локального кеша.

Когда вы запускаете другой процесс - например, ваше собственное приложение - без включения этого репозитория, используемая библиотека Eclipse Aether будет (как и ожидалось) уважать эти метаданные и игнорировать любые артефакты, которые не были получены ни одним из существующих в настоящее время репозиторий.