Как запустить Jhipster 5.4.0 war на JBOSS EAP 6.4 - PullRequest
0 голосов
/ 19 октября 2018

Мы пытаемся развернуть приложение jhipster на JBOSS EAP 6.4, у меня проблема fiew с JPA 2.1 и VALIDATION 2. Проблема в том, что JBOSS - это JAVA EE 6, но jhipster использует функцию fiew JAVA EE 7.мы добавили файл jboss-deploy-structure.xml, чтобы попытаться исключить некоторые модули.

Теперь я решаю проблему с JPA 2.1 и проверку, но все еще остается проблема.

этоjboss-deploy-structure.xml

  <?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure>
    <deployment>

        <exclude-subsystems>
            <subsystem name="jpa" />


                <subsystem name="jaxrs"/>


        </exclude-subsystems>
        <exclusions>
            <!-- WFCORE-209 workaround -->
            <module name="javaee.api" />

            <module name="javax.persistence.api" />
            <module name="org.hibernate" />
            <module name="org.apache.log4j" />
            <module name="org.slf4j"/>
            <module name="org.apache.commons.logging"/>

            <module name="com.fasterxml.jackson.core.databind"/>
            <module name="com.fasterxml.jackson.module.afterburner"></module>

            <module name="com.fasterxml.jackson.databind.Module" />
            <module name="com.fasterxml.jackson.core.jackson-core" />
            <module name="com.fasterxml.jackson.core.jackson-annotations" />
            <module name="com.fasterxml.jackson.core.jackson-databind" />
            <module name="com.fasterxml.jackson.jaxrs.jackson-jaxrs-json-provider" />
            <module name="org.jboss.resteasy.resteasy-jackson2-provider" />
            <module name="org.jboss.resteasy.resteasy-jackson-provider" />
            <module name="com.fasterxml.jackson.datatype.jackson-datatype-jdk8" />
            <module name="com.fasterxml.jackson.datatype.jackson-datatype-jsr310" />


            <module name="javax.persistence.api" />
            <module name="org.hibernate" />
            <module name="org.hibernate.javax.persistence" />
            <module name="org.hibernate.validator" />
            <module name="javax.validation.api" />
            <module name="javax.el"/>
            <module name="javax.faces.api"/>
            <module name="org.hibernate.validator"/>

        </exclusions>


        <dependencies>
            <!-- WFCORE-209 workaround -->

          <!--  <module name="javax.validation.api" export="true"/>
          -->
            <!-- This one always goes last. -->
           <!-- <module name="javax.api" >
            <imports>
                <exclude-set>
                    <path name="javax/ws/rs"/>
                    <path name="javax/ws/rs/core"/>
                    <path name="javax/ws/rs/ext"/>
                    <path name="javax/validation"/>
                    <path name="javax/validation/bootstrap"/>
                    <path name="javax/validation/constraints"/>
                    <path name="javax/validation/groups"/>
                    <path name="javax/validation/metadata"/>
                    <path name="javax/validation/spi"/>
                </exclude-set>

            </imports>
            </module>-->
        </dependencies>

    </deployment>
</jboss-deployment-structure>

и это последняя ошибка

Причина: java.lang.IllegalAccessError: javax / el / ELUtil at javax.el.ELManager.getExpressionFactory (ELManager.java:61) [javax.el-3.0.0.jar: 3.0.0] в org.hibernate.validator.messageinterpolation.ResourceBundleMessageInterpolator.buildExpressionFactory (ResourceBundleMessageIn88plator) jj.6.0.12.Final.jar: 6.0.12.Final] в org.hibernate.validator.messageinterpolation.ResourceBundleMessageInterpolator. (ResourceBundleMessageInterpolator.java:47) [hibernate-validator-6.0.12.Final.jar: 6.0.12.Final] в org.hibernate.validator.internal.engine.ConfigurationImpl.getDefaultMessageInterpolator (ConfigurationImpl.java:474) [hibernate-validator-6.0.12.Final.jar: 6.0.12.Final] в org.hibernate.validator.internal.engine.ConfigurationImpl.getDefaultMessageInterpolatorConfiguredWithClassLoader (ConfigurationImpl.java:650) [hibernate-validator-6.0.12.Final.jar: 6.0.12.Final] в org.hibernate.validator.internal.mpl.getMessageInterpolator (ConfigurationImpl.java:397) [hibernate-validator-6.0.12.Final.jar: 6.0.12.Final] в org.hibernate.validator.internal.engine.ValidatorFactoryImpl. (ValidatorFactoryImpl.java:183) [hibernate-validator-6.0.12.Final.jar: 6.0.12.Final] в org.hibernate.validator.HibernateValidator.buildValidatorFactory (HibernateValidator.java:38) [hibernate-validator-6.0.12.Final.jar: 6.0.12.Окончательный] в org.hibernate.validator.internal.engine.ConfigurationImpl.buildValidatorFactory (ConfigurationImpl.java:364) [hibernate-validator-6.0.12.Final.jar: 6.0.12.Final] в javax.validation.Validation.buildDeforyValidator(Validation.java:103) [validation-api-2.0.1.Final.jar:] at org.hibernate.cfg.beanvalidation.TypeSafeActivator.getValidatorFactory (TypeSafeActivator.java:501) [hibernate-core-5.2.17.Final.jar: 5.2.17.Final] в org.hibernate.cfg.beanvalidation.TypeSafeActivator.activate (TypeSafeActivator.java:84) [hibernate-core-5.2.17.Final.jar: 5.2.17.Final] в sun.reflect.NativeMethodAccessorImpl.invoke0 (собственный метод) [rt.jar: 1.8.0_31] в sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:)rt.jar: 1.8.0_31] at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) [rt.jar: 1.8.0_31] в java.lang.reflect.Method.invoke (Method.java:483) [rt.jar: 1.8.0_31] at org.hibernate.cfg.beanvalidation.BeanValidationIntegrator.integrate (BeanValidationIntegrator.java:132) [hibernate-core-5.2.17.Final.jar: 5.2.17.Final]

1 Ответ

0 голосов
/ 13 ноября 2018

Попробуйте изменить валидатор hibernate с версии 6 на версию 5.

1) исключить валидатор hibernate из spring-boot-starter-web:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <exclusions>
        <exclusion>
            <groupId>org.hibernate.validator</groupId>
            <artifactId>hibernate-validator</artifactId>
        </exclusion>
    </exclusions>
</dependency>

2) добавить версию валидатора hibernate5:

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-validator</artifactId>
    <version>5.4.2.Final</version>
</dependency>

Мои приложения с jhipster 5.6.1 работают с этим методом.Я прочитал совместимость из Spring-Boot Doc, относительно LocalValidatorFactoryBean.Я использую EAP 6.4.8

...