2016-07-13 13 views
0

Я пытаюсь перенести приложение из JBoss 7.1.1 на Wildfly 9.0.2, но у меня возникли некоторые проблемы.Перенос веб-приложения из JBoss 7.1.1 + Java 6 в Wildfly 9.0.2 + Java 8

Первое, что я сделал, - это удалить все предустановленные зависимости, перезаписав их для конкретной версии, которую JBoss 7.1.1 предоставлял мне. В противном случае я бы использовал все новые версии Wildfly 9, в результате чего появилось больше ошибок.

Между тем, я также обновил версию JDK от 6 до 8 без каких-либо проблем с компиляцией.

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

Поиск руководства по обновлению, я нашел что-то о проекте Wildup, но я не смог завершить отчет. Производительность ужасная, и она замерзает на [340/379] MigrationRulesPhase - ValidateXmlFilesRuleProvider - ValidateXmlFilesRuleProvider_1.

** Обновит

  • ОБНОВЛЕНО: ** После намека @ MJN, я бы убрал все JBoss конкретные зависимости от pom.xml, и это не повлияет на проект. Но проблема , процитированная здесь, еще не состоялась

ens. Pom.xml обновлен без этих библиотек.

Может кто-нибудь мне помочь, пожалуйста? Спасибо за внимание!

Приветствия, Pimenta

Libs, который был установлен, как это предусмотрено:

<groupId>org.jboss.spec.javax.el</groupId> 
<artifactId>jboss-el-api_2.2_spec</artifactId> 

<groupId>org.jboss.spec.javax.faces</groupId> 
<artifactId>jboss-jsf-api_2.1_spec</artifactId> 

<groupId>org.jboss.spec.javax.ejb</groupId> 
<artifactId>jboss-ejb-api_3.1_spec</artifactId> 

<groupId>org.hibernate.javax.persistence</groupId> 
<artifactId>hibernate-jpa-2.0-api</artifactId> 

<groupId>org.jboss.spec.javax.annotation</groupId> 
<artifactId>jboss-annotations-api_1.1_spec</artifactId> 

<groupId>javax.mail</groupId> 
<artifactId>mail</artifactId> 

<groupId>javax.enterprise</groupId> 
<artifactId>cdi-api</artifactId> 

Ошибка:

2016-07-13 10:36:29 DEBUG component:402 - /pages/layout/rodape.xhtml @20,69 <h:outputLabel> Component[-494748661_63d08f28] Created: javax.faces.component.html.HtmlOutputLabel 
2016-07-13 10:36:29 ERROR cad:81 - 
2016-07-13 10:36:29 ERROR context:218 - java.lang.StackOverflowError 
    at org.apache.myfaces.extensions.cdi.jsf.impl.bv.resolver.SerializableValidatorFactory.getValidatorFactory(SerializableValidatorFactory.java:104) 
    at org.apache.myfaces.extensions.cdi.jsf.impl.bv.resolver.InvalidValueAwareValidatorFactory.usingContext(InvalidValueAwareValidatorFactory.java:41) 
    at org.jboss.as.ee.beanvalidation.LazyValidatorFactory.usingContext(LazyValidatorFactory.java:93) 
    at org.apache.myfaces.extensions.cdi.jsf.impl.bv.resolver.InvalidValueAwareValidatorFactory.usingContext(InvalidValueAwareValidatorFactory.java:41) 
    at org.jboss.as.ee.beanvalidation.LazyValidatorFactory.usingContext(LazyValidatorFactory.java:93) 
    at org.apache.myfaces.extensions.cdi.jsf.impl.bv.resolver.InvalidValueAwareValidatorFactory.usingContext(InvalidValueAwareValidatorFactory.java:41) 
    at org.jboss.as.ee.beanvalidation.LazyValidatorFactory.usingContext(LazyValidatorFactory.java:93) 
    at org.apache.myfaces.extensions.cdi.jsf.impl.bv.resolver.InvalidValueAwareValidatorFactory.usingContext(InvalidValueAwareValidatorFactory.java:41) 
    at org.jboss.as.ee.beanvalidation.LazyValidatorFactory.usingContext(LazyValidatorFactory.java:93) 
    at org.apache.myfaces.extensions.cdi.jsf.impl.bv.resolver.InvalidValueAwareValidatorFactory.usingContext(InvalidValueAwareValidatorFactory.java:41) 
    at org.jboss.as.ee.beanvalidation.LazyValidatorFactory.usingContext(LazyValidatorFactory.java:93) 
    at org.apache.myfaces.extensions.cdi.jsf.impl.bv.resolver.InvalidValueAwareValidatorFactory.usingContext(InvalidValueAwareValidatorFactory.java:41) 
    at org.jboss.as.ee.beanvalidation.LazyValidatorFactory.usingContext(LazyValidatorFactory.java:93) 

РОМ:

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>br.pmt</groupId> 
    <artifactId>cad</artifactId> 
    <version>1.0</version> 
    <packaging>war</packaging> 
    <name>Cad</name> 

    <properties> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
     <jboss.as.plugin.version>7.3.Final</jboss.as.plugin.version> 
     <jboss.bom.version>1.0.4.Final</jboss.bom.version> 
     <compiler.plugin.version>2.3.2</compiler.plugin.version> 
     <surefire.plugin.version>2.4.3</surefire.plugin.version> 
     <war.plugin.version>2.1.1</war.plugin.version> 
     <maven.compiler.target>1.6</maven.compiler.target> 
     <maven.compiler.source>1.6</maven.compiler.source> 
     <codi.version>1.0.3</codi.version> 
     <pmt.context.root>/cad</pmt.context.root> 
    </properties> 

    <dependencies> 
     <dependency> 
      <groupId>org.picketlink</groupId> 
      <artifactId>picketlink</artifactId> 
      <version>2.7.0.Final</version> 
     </dependency> 

     <dependency> 
      <groupId>ch.ethz.ganymed</groupId> 
      <artifactId>ganymed-ssh2</artifactId> 
      <version>262</version> 
     </dependency> 

     <dependency> 
      <groupId>javax.xml.bind</groupId> 
      <artifactId>jaxb-api</artifactId> 
      <version>2.2.12</version> 
     </dependency> 

     <dependency> 
      <groupId>javax.xml.ws</groupId> 
      <artifactId>jaxws-api</artifactId> 
      <version>2.2.11</version> 
     </dependency> 

     <dependency> 
      <groupId>javax.enterprise</groupId> 
      <artifactId>cdi-api</artifactId> 
      <version>1.0-SP4</version> 
     </dependency> 

     <dependency> 
      <groupId>javax.mail</groupId> 
      <artifactId>mail</artifactId> 
      <version>1.4.4</version> 
     </dependency> 

     <dependency> 
      <groupId>javax.servlet</groupId> 
      <artifactId>servlet-api</artifactId> 
      <version>2.5</version> 
     </dependency> 

     <dependency> 
      <groupId>commons-fileupload</groupId> 
      <artifactId>commons-fileupload</artifactId> 
      <version>1.2.1</version> 
     </dependency> 

     <dependency> 
      <groupId>commons-io</groupId> 
      <artifactId>commons-io</artifactId> 
      <version>1.4</version> 
     </dependency> 

     <dependency> 
      <groupId>portlet-api</groupId> 
      <artifactId>portlet-api</artifactId> 
      <version>1.0</version> 
     </dependency> 

     <dependency> 
      <groupId>org.hibernate.javax.persistence</groupId> 
      <artifactId>hibernate-jpa-2.0-api</artifactId> 
      <version>1.0.1.Final</version> 
     </dependency> 

     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-core</artifactId> 
      <version>4.3.5.Final</version><!--$NO-MVN-MAN-VER$ --> 
      <exclusions> 
       <exclusion> 
        <groupId>antlr</groupId> 
        <artifactId>antlr</artifactId> 
       </exclusion> 
      </exclusions> 
     </dependency> 

     <dependency> 
      <groupId>org.primefaces</groupId> 
      <artifactId>primefaces</artifactId> 
      <version>5.2</version> 
     </dependency> 

     <dependency> 
      <groupId>org.primefaces.extensions</groupId> 
      <artifactId>primefaces-extensions</artifactId> 
      <version>3.1.0</version> 
     </dependency> 

     <dependency> 
      <groupId>org.primefaces.themes</groupId> 
      <artifactId>all-themes</artifactId> 
      <version>1.0.10</version> 
     </dependency> 

     <dependency> 
      <groupId>joda-time</groupId> 
      <artifactId>joda-time</artifactId> 
      <version>2.2</version> 
      <type>jar</type> 
     </dependency> 

     <dependency> 
      <groupId>org.jadira.usertype</groupId> 
      <artifactId>usertype.core</artifactId> 
      <version>3.1.0.CR1</version> 
     </dependency> 

     <dependency> 
      <groupId>org.apache.myfaces.extensions.cdi.core</groupId> 
      <artifactId>myfaces-extcdi-core-api</artifactId> 
      <version>${codi.version}</version> 
      <scope>compile</scope> 
     </dependency> 

     <dependency> 
      <groupId>org.apache.myfaces.extensions.cdi.core</groupId> 
      <artifactId>myfaces-extcdi-core-impl</artifactId> 
      <version>${codi.version}</version> 
      <scope>runtime</scope> 
     </dependency> 

     <dependency> 
      <groupId>org.apache.myfaces.extensions.cdi.modules</groupId> 
      <artifactId>myfaces-extcdi-jsf20-module-api</artifactId> 
      <version>${codi.version}</version> 
      <scope>compile</scope> 
     </dependency> 

     <dependency> 
      <groupId>org.apache.myfaces.extensions.cdi.modules</groupId> 
      <artifactId>myfaces-extcdi-jsf20-module-impl</artifactId> 
      <version>${codi.version}</version> 
      <scope>runtime</scope> 
     </dependency> 

    </dependencies> 

    <build> 
     <resources> 
      <resource> 
       <directory>src/main/resources</directory> 
       <filtering>true</filtering> 
      </resource> 
     </resources> 

     <finalName>${pmt.context.root}</finalName> 

     <plugins> 
      <plugin> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <version>${compiler.plugin.version}</version> 
       <configuration> 
        <source>${maven.compiler.source}</source> 
        <target>${maven.compiler.target}</target> 
       </configuration> 
      </plugin> 
      <plugin> 
       <artifactId>maven-war-plugin</artifactId> 
       <version>${war.plugin.version}</version> 
       <configuration> 
        <warName>${pmt.context.root}</warName> 
        <failOnMissingWebXml>false</failOnMissingWebXml> 

        <webResources> 
         <resource> 
          <filtering>true</filtering> 
          <directory>src/main/webapp</directory> 
          <includes> 
           <include>**/*.xml</include> 
          </includes> 
         </resource> 
        </webResources> 
       </configuration> 
      </plugin> 
      <plugin> 
       <groupId>org.jboss.as.plugins</groupId> 
       <artifactId>jboss-as-maven-plugin</artifactId> 
       <version>${jboss.as.plugin.version}</version> 
      </plugin> 
      <plugin> 
       <groupId>org.codehaus.mojo</groupId> 
       <artifactId>sonar-maven-plugin</artifactId> 
       <version>2.3</version> 
      </plugin> 

     </plugins> 
    </build> 


    <profiles> 

     <profile> 
      <id>sonar</id> 
      <activation> 
       <activeByDefault>true</activeByDefault> 
      </activation> 
      <properties> 
       <sonar.jdbc.url>xxxxxx</sonar.jdbc.url> 
       <sonar.jdbc.username>xxxxx</sonar.jdbc.username> 
       <sonar.jdbc.password>xxxxxxx</sonar.jdbc.password> 
       <sonar.host.url>xxxxxxxx</sonar.host.url> 
      </properties> 
     </profile> 
    </profiles> 

</project> 
+0

Используете ли вы классы JBoss в своем коде? Или вы могли бы использовать простой API Java EE 6 в POM? – mjn

+0

@mjn Хорошая точка. Я просто удалил все библиотеки JBoss и обновил POM без них. Проект работает, но проблема все еще происходит. Итак, ответ на ваш вопрос: я могу использовать только API Java EE 6. Спасибо за подсказку. – Pmt

ответ

0

Я нашел решение.

Основываясь на подсказке @mjn, я немного очистил свой pom.xml. Я не думаю, что это часть решения, но это помогает уменьшить возможные проблемы. Итак, прежде всего, я удалил все конкретные библиотеки из JBoss. Обновленный pom.xml в вопросе уже обновлен.

После этого мы выяснили, что проблема связана с новой реализацией Weld, при условии покупки Wildfly. Исходя из этого, мы обновили некоторые зависимости, а затем все сработало отлично.

- Обновление КДИ-апи:

<dependency> 
    <groupId>javax.enterprise</groupId> 
    <artifactId>cdi-api</artifactId> 
    <version>2.0-EDR1</version> 
</dependency> 

- Обновление codi.version:

<codi.version>1.0.6</codi.version> 

Посмотрите на мою pom.xml в качестве эталона.

Спасибо за внимание. Cheers.