2016-07-13 26 views
0

Ich versuche eine Anwendung von JBoss 7.1.1 nach Wildfly 9.0.2 zu migrieren, aber ich habe einige Probleme.Migration der Webanwendung von JBoss 7.1.1 + Java 6 nach Wildfly 9.0.2 + Java 8

Das erste, was ich gemacht habe, war, alle bereitgestellten Abhängigkeiten zu entfernen und sie für die spezifische Version zu überschreiben, die JBoss 7.1.1 mir zur Verfügung gestellt hat. Ansonsten würde ich alle neuen Versionen von Wildfly 9 verwenden, was zu mehr Fehlern führen würde.

In der Zwischenzeit hatte ich auch meine JDK-Version von 6 bis 8 aktualisiert, ohne irgendwelche Kompilierungsprobleme.

Nun, ich hatte Wildfly 9 gestartet und das Projekt begann normal. Ich konnte mich anmelden, meine Zugangsdaten in meiner Datenbank überprüfen und die erste Seite ohne Probleme laden. Aber beim Testen der gesamten Anwendung habe ich mit vielen Fehlern zu kämpfen, wie unten beschrieben.

Auf der Suche nach einem Update-Leitfaden hatte ich etwas über das Projekt "Wildup" gefunden, aber ich konnte den Bericht nicht fertigstellen. Die Leistung ist schrecklich und es friert bei ein [340/379] MigrationRulesPhase - ValidateXmlFilesRuleProvider - ValidateXmlFilesRuleProvider_1.

** UPDAT

  • AKTUALISIERT: ** Nach @ mjn des Hinweises hatte ich entfernt alle JBoss spezifischen Abhängigkeiten von pom.xml und es hat nicht das Projekt beeinflussen. Aber die Problem hier zitiert immer noch happ

ens. Pom.xml ohne diese Bibliotheken aktualisiert.

Kann mir bitte jemand helfen? Danke für die Aufmerksamkeit!

Cheers, Pimenta

Libs, die als VORGESEHEN gesetzt wurde:

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

Fehler:

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) 

POM:

<?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

Verwenden Sie JBoss-spezifische Klassen in Ihrem Code? Oder könnten Sie die einfache Java EE 6 API im POM verwenden? – mjn

+0

@mjn Guter Punkt. Ich hatte gerade alle JBoss Bibliotheken entfernt und das POM ohne sie aktualisiert. Das Projekt funktioniert, aber das Problem tritt immer noch auf. Die Antwort auf Ihre Frage lautet also: Ich kann nur Java EE 6 API verwenden. Danke für den Hinweis. – Pmt

Antwort

0

Ich habe die Lösung gefunden.

Basierend auf @mjn Hinweis, putzte ich ein wenig meine pom.xml. Ich denke nicht, dass dies ein Teil der Lösung ist, aber es hilft mögliche Probleme zu verringern. Also zuerst habe ich alle spezifischen Bibliotheken von JBoss entfernt. Die in der Frage angezeigte pom.xml wurde bereits aktualisiert.

Danach haben wir herausgefunden, dass das Problem mit der neuen Implementierung von Weld verbunden war, vorausgesetzt, kaufen Sie die Wildfly. Basierend darauf haben wir einige Abhängigkeiten aktualisiert und dann hat alles perfekt funktioniert.

- Update cdi-api:

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

- Update codi.version:

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

einen Blick auf meine pom.xml als Referenz nehmen.

Danke für die Aufmerksamkeit. Prost.