2015-12-16 2 views
2

Я пытаюсь развернуть проект Apache Isis на сервере WildFly.Развертывание Apache Isis на WildFly

Проект только simpleapp-архетип-1.10.0 и он начинает и хорошо работает с МВНАМИ antrun: запустить -P собственного хозяина и МВНОВ причала: бежать войны.

Для молы части, я добавил конфигурацию в org.eclipse.jetty плагин родительского pom.xml

<plugin> 
    <groupId>org.eclipse.jetty</groupId> 
    <artifactId>jetty-maven-plugin</artifactId> 
    <version>9.3.2.v20150730</version> 
    <configuration> 
     <war>${project.basedir}/webapp/target/simpleapp.war</war> 
    </configuration> 
</plugin> 

Теперь я хотел развернуть это на WildFly сервере, но я получаю следующее сообщение об ошибке :

Cannot upload deployment: {"WFLYCTL0080: Failed services" => {"jboss.deployment.unit.\"simpleapp.war\".WeldStartService" => "org.jboss.msc.service.StartException in service jboss.deployment.unit.\"simpleapp.war\".WeldStartService: Failed to start service Caused by: org.jboss.weld.exceptions.DeploymentException: WELD-001408: Unsatisfied dependencies for type IsisJdoSupport with qualifiers @Default at injection point [BackedAnnotatedField] @Inject org.apache.isis.objectstore.jdo.datanucleus.service.support.TimestampService.isisJdoSupport at org.apache.isis.objectstore.jdo.datanucleus.service.support.TimestampService.isisJdoSupport(TimestampService.java:0) "}}

Как исправить эту ошибку, и почему jetty обходит эту ошибку?

ответ

2

Я получил ответ через список рассылки Apache Isis.

The error says that WildFly tries to do CDI work. Jetty is just a web server and doesn't support Java EE stuff like CDI. Try to disable CDI support for this application (I have no idea how exactly).

http://isis.markmail.org/message/d3coq6qus3rca7kx

Чтобы исправить эту ошибку:

Добавить файл JBoss-all.xml в Простого App WebAPP/Web Pages/WEB-INF со следующим кодом :

<jboss xmlns="urn:jboss:1.0"> 
    <weld xmlns="urn:jboss:weld:1.0" require-bean-descriptor="true"/> 
</jboss> 

https://docs.jboss.org/author/display/WFLY8/CDI+Reference

Кредиты Мартину Григорову.

+0

CDI/Weld можно использовать на Jetty, но в настоящее время только в том случае, если он включен в 'WEB-INF/lib' вашей войны (у вас также будет определенная конфигурация WebAppContext для настройки на распределение причала, чтобы позволить Weld пройти через WebApp Classloader изоляция) –

+0

Да. В моем ответе в списках рассылки Apache Isis я подразумевал, что Jetty не будет пытаться сканировать компоненты CDI по умолчанию. Если вы добавите Weld и настройте его, он будет работать. Примеры Apache Wicket показывают, как это сделать. –

Смежные вопросы