2 Replies Latest reply on Nov 26, 2013 2:07 AM by alex122

    Problem with errai tutorial

    alex122

      Hi,

       

      I am new to erra however with some GWT experience. I decided that I will start my adventure by configuring development environment and installing tutorial. So this is what I have on board:

       

      • errai tutorial 2.4.2.Final
      • jboss as 7.1.1.Final
      • maven 3
      • jdk 1.7
      • IntelliJ Idea
      • Windows

       

      This is my pom content. Basically the standard one with only <errai.jboss.home variable set (also JBOSS_HOME environment variable):

       

      <?xml version="1.0" encoding="UTF-8"?>
      <project
              xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
              xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
          <modelVersion>4.0.0</modelVersion>
      
      
          <groupId>org.jboss.errai.demo</groupId>
          <artifactId>errai-tutorial</artifactId>
          <version>1.0.0-SNAPSHOT</version>
          <packaging>war</packaging>
          <name>Errai::Tutorial</name>
      
      
          <properties>
              <errai.version>2.4.2.Final</errai.version>
              <errai.devmode.version>3.0.0.20131101-M2</errai.devmode.version>
              <gwt.version>2.5.1</gwt.version>
              <slf4j.version>1.5.11</slf4j.version>
              <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
              <javaee.version>3.0.2.Final</javaee.version>
              <errai.dev.context>${project.artifactId}</errai.dev.context>
              <errai.jboss.home>C:\Users\alex\Programy\jboss</errai.jboss.home>
          </properties>
      
      
          <dependencyManagement>
              <dependencies>
      
      
                  <dependency>
                      <groupId>org.jboss.errai.bom</groupId>
                      <artifactId>errai-version-master</artifactId>
                      <version>${errai.version}</version>
                      <type>pom</type>
                      <scope>import</scope>
                  </dependency>
      
      
                  <dependency>
                      <groupId>org.jboss.errai</groupId>
                      <artifactId>errai-parent</artifactId>
                      <version>${errai.version}</version>
                      <type>pom</type>
                      <scope>import</scope>
                  </dependency>
      
      
                  <dependency>
                      <groupId>org.jboss.spec</groupId>
                      <artifactId>jboss-javaee-6.0</artifactId>
                      <version>${javaee.version}</version>
                      <type>pom</type>
                      <scope>import</scope>
                  </dependency>
      
      
                  <dependency>
                      <groupId>org.jboss.weld</groupId>
                      <artifactId>weld-core</artifactId>
                      <version>1.1.5.Final</version>
                  </dependency>
                  <dependency>
                      <groupId>org.jboss.weld.servlet</groupId>
                      <artifactId>weld-servlet-core</artifactId>
                      <version>1.1.5.Final</version>
                  </dependency>
      
      
                  <dependency>
                      <groupId>org.jboss.errai</groupId>
                      <artifactId>errai-cdi-jboss</artifactId>
                      <version>${errai.devmode.version}</version>
                  </dependency>
      
      
                  <dependency>
                      <groupId>org.jboss.errai</groupId>
                      <artifactId>errai-client-local-class-hider</artifactId>
                      <version>${errai.devmode.version}</version>
                  </dependency>
              </dependencies>
          </dependencyManagement>
      
      
          <dependencies>
              <dependency>
                  <groupId>com.google.gwt</groupId>
                  <artifactId>gwt-user</artifactId>
                  <scope>provided</scope>
              </dependency>
              <dependency>
                  <groupId>org.jboss.errai</groupId>
                  <artifactId>errai-javaee-all</artifactId>
              </dependency>
              <dependency>
                  <groupId>org.jboss.errai</groupId>
                  <artifactId>errai-cordova</artifactId>
              </dependency>
              <dependency>
                  <groupId>org.jboss.spec</groupId>
                  <artifactId>jboss-javaee-6.0</artifactId>
                  <version>${javaee.version}</version>
                  <type>pom</type>
                  <scope>provided</scope>
              </dependency>
      
      
              <dependency>
                  <groupId>org.slf4j</groupId>
                  <artifactId>slf4j-log4j12</artifactId>
              </dependency>
      
      
              <dependency>
                  <groupId>junit</groupId>
                  <artifactId>junit</artifactId>
                  <scope>test</scope>
              </dependency>
      
      
              <dependency>
                  <groupId>org.jboss.errai</groupId>
                  <artifactId>errai-cdi-jboss</artifactId>
              </dependency>
      
      
              <dependency>
                  <groupId>org.jboss.errai</groupId>
                  <artifactId>errai-client-local-class-hider</artifactId>
              </dependency>
          </dependencies>
      
      
          <repositories>
              <repository>
                  <id>JBOSS_NEXUS</id>
                  <url>http://repository.jboss.org/nexus/content/groups/public</url>
              </repository>
          </repositories>
      
      
          <build>
              <finalName>${project.artifactId}</finalName>
              <outputDirectory>src/main/webapp/WEB-INF/classes</outputDirectory>
      
      
              <resources>
                  <resource>
                      <directory>src/main/java</directory>
                  </resource>
                  <resource>
                      <directory>src/main/resources</directory>
                  </resource>
              </resources>
      
      
              <pluginManagement>
                  <plugins>
                      <plugin>
                          <groupId>org.eclipse.m2e</groupId>
                          <artifactId>lifecycle-mapping</artifactId>
                          <version>1.0.0</version>
                          <configuration>
                              <lifecycleMappingMetadata>
                                  <pluginExecutions>
                                      <pluginExecution>
                                          <pluginExecutionFilter>
                                              <groupId>org.codehaus.mojo</groupId>
                                              <artifactId>gwt-maven-plugin</artifactId>
                                              <versionRange>[2.4.0,)</versionRange>
                                              <goals>
                                                  <goal>resources</goal>
                                              </goals>
                                          </pluginExecutionFilter>
                                          <action>
                                              <execute />
                                          </action>
                                      </pluginExecution>
                                  </pluginExecutions>
                              </lifecycleMappingMetadata>
                          </configuration>
                      </plugin>
                  </plugins>
              </pluginManagement>
      
      
              <plugins>
                  <plugin>
                      <groupId>org.codehaus.mojo</groupId>
                      <artifactId>gwt-maven-plugin</artifactId>
                      <version>${gwt.version}</version>
                      <executions>
                          <execution>
                              <goals>
                                  <goal>resources</goal>
                                  <goal>compile</goal>
                              </goals>
                          </execution>
                      </executions>
                      <configuration>
                          <extraJvmArgs>-Xmx712m -XX:CompileThreshold=7000 -XX:MaxPermSize=128M -Derrai.jboss.home=${errai.jboss.home} -Derrai.dev.context=${errai.dev.context} -Derrai.jboss.javaagent.path=${settings.localRepository}/org/jboss/errai/errai-client-local-class-hider/${errai.devmode.version}/errai-client-local-class-hider-${errai.devmode.version}.jar</extraJvmArgs>
                          <logLevel>INFO</logLevel>
                          <noServer>false</noServer>
                          <server>org.jboss.errai.cdi.server.gwt.JBossLauncher</server>
                          <disableCastChecking>true</disableCastChecking>
                          <runTarget>${errai.dev.context}/index.html</runTarget>
                          <hostedWebapp>src/main/webapp</hostedWebapp>
                      </configuration>
                  </plugin>
                  <plugin>
                      <artifactId>maven-clean-plugin</artifactId>
                      <version>2.4.1</version>
                      <configuration>
                          <filesets>
                              <fileset>
                                  <directory>${basedir}</directory>
                                  <includes>
                                      <include>src/main/webapp/app/</include>
                                      <include>src/main/webapp/WEB-INF/deploy/</include>
                                      <include>src/main/webapp/WEB-INF/lib/</include>
                                      <include>**/gwt-unitCache/**</include>
                                      <include>.errai/</include>
                                  </includes>
                              </fileset>
                          </filesets>
                      </configuration>
                  </plugin>
                  <plugin>
                      <artifactId>maven-compiler-plugin</artifactId>
                      <version>2.3.2</version>
                      <configuration>
                          <source>1.6</source>
                          <target>1.6</target>
                      </configuration>
                  </plugin>
              </plugins>
          </build>
      
      
          <profiles>
              <profile>
                  <id>jboss7</id>
                  <activation>
                      <activeByDefault>true</activeByDefault>
                  </activation>
                  <build>
                      <plugins>
                          <plugin>
                              <artifactId>maven-war-plugin</artifactId>
                              <version>2.2</version>
                              <configuration>
                                  <packagingExcludes>**/javax/**/*.*,**/client/local/**/*.class</packagingExcludes>
                                  <outputFileNameMapping>@{artifactId}@-@{baseVersion}@@{dashClassifier?}@.@{extension}@</outputFileNameMapping>
                              </configuration>
                          </plugin>
                          <plugin>
                              <groupId>org.jboss.as.plugins</groupId>
                              <artifactId>jboss-as-maven-plugin</artifactId>
                              <version>7.1.1.Final</version>
                              <extensions>false</extensions>
                          </plugin>
                      </plugins>
                  </build>
                  <dependencies>
                      <dependency>
                          <groupId>org.jboss.errai</groupId>
                          <artifactId>errai-jboss-as-support</artifactId>
                      </dependency>
      
      
                      <!-- TODO figure out how to force all these things to provided scope without doing it explicitly in EVERY SINGLE ERRAI PROJECT!!!!111!!!!1 -->
                      <!-- Don't deploy any of this -->
                      <dependency><groupId>com.google.guava</groupId><artifactId>guava-gwt</artifactId><scope>provided</scope></dependency>
                      <dependency><groupId>hsqldb</groupId><artifactId>hsqldb</artifactId><scope>provided</scope></dependency>
                      <dependency><groupId>javax.annotation</groupId><artifactId>jsr250-api</artifactId><scope>provided</scope></dependency>
                      <dependency><groupId>javax.enterprise</groupId><artifactId>cdi-api</artifactId><scope>provided</scope></dependency>
                      <dependency><groupId>javax.inject</groupId><artifactId>javax.inject</artifactId><scope>provided</scope></dependency>
                      <dependency><groupId>javax.validation</groupId><artifactId>validation-api</artifactId><classifier>sources</classifier><scope>provided</scope></dependency>
                      <dependency><groupId>javax.validation</groupId><artifactId>validation-api</artifactId><scope>provided</scope></dependency>
                      <dependency><groupId>junit</groupId><artifactId>junit</artifactId><scope>provided</scope></dependency>
                      <dependency><groupId>org.hibernate.common</groupId><artifactId>hibernate-commons-annotations</artifactId><scope>provided</scope></dependency>
                      <dependency><groupId>org.hibernate.javax.persistence</groupId><artifactId>hibernate-jpa-2.0-api</artifactId><scope>provided</scope></dependency>
                      <dependency><groupId>org.hibernate</groupId><artifactId>hibernate-core</artifactId><scope>provided</scope></dependency>
                      <dependency><groupId>org.hibernate</groupId><artifactId>hibernate-entitymanager</artifactId><scope>provided</scope></dependency>
                      <dependency><groupId>org.hibernate</groupId><artifactId>hibernate-validator</artifactId><scope>provided</scope></dependency>
                      <dependency><groupId>org.hibernate</groupId><artifactId>hibernate-validator</artifactId><classifier>sources</classifier><scope>provided</scope></dependency>
                      <dependency><groupId>org.jboss.errai</groupId><artifactId>errai-cdi-jetty</artifactId><scope>provided</scope></dependency>
                      <dependency><groupId>org.jboss.errai</groupId><artifactId>errai-cdi-jboss</artifactId><scope>provided</scope></dependency>
                      <dependency><groupId>org.jboss.errai</groupId><artifactId>errai-client-local-class-hider</artifactId><scope>provided</scope></dependency>
                      <dependency><groupId>org.jboss.errai</groupId><artifactId>errai-codegen-gwt</artifactId><scope>provided</scope></dependency>
                      <dependency><groupId>org.jboss.errai</groupId><artifactId>errai-data-binding</artifactId><scope>provided</scope></dependency>
                      <dependency><groupId>org.jboss.errai</groupId><artifactId>errai-javax-enterprise</artifactId><scope>provided</scope></dependency>
                      <dependency><groupId>org.jboss.errai</groupId><artifactId>errai-jaxrs-client</artifactId><scope>provided</scope></dependency>
                      <dependency><groupId>org.jboss.errai</groupId><artifactId>errai-jpa-client</artifactId><scope>provided</scope></dependency>
                      <dependency><groupId>org.jboss.errai</groupId><artifactId>errai-navigation</artifactId><scope>provided</scope></dependency>
                      <dependency><groupId>org.jboss.errai</groupId><artifactId>errai-tools</artifactId><scope>provided</scope></dependency>
                      <dependency><groupId>org.jboss.logging</groupId><artifactId>jboss-logging</artifactId><scope>provided</scope></dependency>
                      <dependency><groupId>org.jboss.resteasy</groupId><artifactId>jaxrs-api</artifactId><scope>provided</scope></dependency>
                      <dependency><groupId>org.jboss.spec.javax.interceptor</groupId><artifactId>jboss-interceptors-api_1.1_spec</artifactId><scope>provided</scope></dependency>
                      <dependency><groupId>org.jboss.spec.javax.transaction</groupId><artifactId>jboss-transaction-api_1.1_spec</artifactId><scope>provided</scope></dependency>
                      <dependency><groupId>org.jboss.weld.servlet</groupId><artifactId>weld-servlet-core</artifactId><scope>provided</scope></dependency>
                      <dependency><groupId>org.jboss.weld</groupId><artifactId>weld-core</artifactId><scope>provided</scope></dependency>
                      <dependency><groupId>org.jboss.weld</groupId><artifactId>weld-api</artifactId><scope>provided</scope></dependency>
                      <dependency><groupId>org.jboss.weld</groupId><artifactId>weld-spi</artifactId><scope>provided</scope></dependency>
                      <dependency><groupId>xml-apis</groupId><artifactId>xml-apis</artifactId><scope>provided</scope></dependency>
                      <dependency><groupId>org.jboss.errai.io.netty</groupId><artifactId>netty</artifactId><scope>provided</scope></dependency>
                      <dependency><groupId>org.mortbay.jetty</groupId><artifactId>jetty-naming</artifactId><scope>provided</scope></dependency>
                  </dependencies>
              </profile>
      
      
              <profile>
                  <id>mobile</id>
                  <build>
                      <plugins>
                          <plugin>
                              <groupId>org.jboss.errai</groupId>
                              <artifactId>cordova-maven-plugin</artifactId>
                              <version>2.4.1.Final</version>
                              <executions>
                                  <execution>
                                      <id>build</id>
                                      <phase>package</phase>
                                      <goals>
                                          <goal>build-project</goal>
                                      </goals>
                                  </execution>
                              </executions>
                          </plugin>
                      </plugins>
                  </build>
                  <pluginRepositories>
                      <pluginRepository>
                          <id>snapshots.jboss.org</id>
                          <name>JBoss Snapshot Repository</name>
                          <url>http://snapshots.jboss.org/maven2</url>
                          <layout>default</layout>
                          <snapshots>
                              <enabled>true</enabled>
                          </snapshots>
                      </pluginRepository>
                  </pluginRepositories>
              </profile>
          </profiles>
      </project>
      
      

       

      Unfortunately this standard setting does not work. I have spent some time now with no success. I have pinned point the problem to hostedWebapp setting. Somehow path delimiters are removed and of course JBoss can not deploy application if it can not find it. I have tried many combinations to fix this:

      • /src/main/webapp
      • \src\main\webapp
      • \\src\\main\webapp
      • c:/Users/alex/workspace_priv/nn_new/errai-tutorial-master/src/main/webapp
      • c:\\Users\\alex\\workspace_priv\\nn_new\\errai-tutorial-master\\src\\main\\webapp
      • C:\Users\alex\workspace_priv\nn_new\errai-tutorial-master\src\main\webapp
      • /Users/alex/workspace_priv/nn_new/errai-tutorial-master/src/main/webapp

       

      I thought that the problem is that I develop on Windows, however I am stuck and can not move forward. It is probably not related with IntelliJ as I get exactly the same error running mvn clean gwt:run from command line

       

      The JBoss error:

      
      
      [INFO] 14:14:53,680 INFO  [org.jboss.as] (Controller Boot Thread) JBAS015874: JBoss AS 7.1.1.Final "Brontes" started in 633ms - Started 169 of 248 services (78 services are passive or on-demand)
      [INFO] {"outcome" => "success"}
      [INFO] 14:14:54,353 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-14) JBAS015876: Starting deployment of "errai-tutorial.war"
      [INFO] 14:14:54,368 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-10) MSC00001: Failed to start service jboss.deployment.unit."errai-tutorial.war".STRUCTURE: org.jboss.msc.service.StartException in service jboss.deployment.unit."errai-tutorial.war".STRUCTURE: Failed to process phase STRUCTURE of deployment "errai-tutorial.war"
      [INFO] at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:119) [jboss-as-server-7.1.1.Final.jar:7.1.1.Final]
      [INFO] at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811) [jboss-msc-1.0.2.GA.jar:1.0.2.GA]
      [INFO] at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746) [jboss-msc-1.0.2.GA.jar:1.0.2.GA]
      [INFO] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_17]
      [INFO] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_17]
      [INFO] at java.lang.Thread.run(Thread.java:722) [rt.jar:1.7.0_17]
      [INFO] Caused by: org.jboss.as.server.deployment.DeploymentUnitProcessingException: Failed to mount deployment content
      [INFO] at org.jboss.as.server.deployment.module.DeploymentRootMountProcessor.deploy(DeploymentRootMountProcessor.java:91) [jboss-as-server-7.1.1.Final.jar:7.1.1.Final]
      [INFO] at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:113) [jboss-as-server-7.1.1.Final.jar:7.1.1.Final]
      [INFO] ... 5 more
      [INFO] Caused by: java.io.FileNotFoundException: C:\Users\alex\workspace_priv\nn_new\errai-tutorial-master\Usersalexworkspace_privnn_newerrai-tutorial-mastersrcmainwebapp (Nie mo�na odnale�� okre�lonego pliku)
      [INFO] at java.io.FileInputStream.open(Native Method) [rt.jar:1.7.0_17]
      [INFO] at java.io.FileInputStream.<init>(FileInputStream.java:138) [rt.jar:1.7.0_17]
      [INFO] at org.jboss.vfs.spi.RootFileSystem.openInputStream(RootFileSystem.java:57) [jboss-vfs-3.1.0.Final.jar:3.1.0.Final]
      [INFO] at org.jboss.vfs.VirtualFile.openStream(VirtualFile.java:238) [jboss-vfs-3.1.0.Final.jar:3.1.0.Final]
      [INFO] at org.jboss.vfs.VFS.mountZipExpanded(VFS.java:567) [jboss-vfs-3.1.0.Final.jar:3.1.0.Final]
      [INFO] at org.jboss.as.server.deployment.DeploymentMountProvider$Factory$ServerDeploymentRepositoryImpl.mountDeploymentContent(DeploymentMountProvider.java:97) [jboss-as-server-7.1.1.Final.jar:7.1.1.Final]
      [INFO] at org.jboss.as.server.deployment.module.DeploymentRootMountProcessor.deploy(DeploymentRootMountProcessor.java:87) [jboss-as-server-7.1.1.Final.jar:7.1.1.Final]
      [INFO] ... 6 more
      [INFO]
      [INFO] 14:14:54,383 INFO  [org.jboss.as.server] (management-handler-thread - 3) JBAS015870: Deploy of deployment "errai-tutorial.war" was rolled back with failure message {"JBAS014671: Failed services" => {"jboss.deployment.unit.\"errai-tutorial.war\".STRUCTURE" => "org.jboss.msc.service.StartException in service jboss.deployment.unit.\"errai-tutorial.war\".STRUCTURE: Failed to process phase STRUCTURE of deployment \"errai-tutorial.war\""}}
      [INFO] 14:14:54,383 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-8) JBAS015877: Stopped deployment errai-tutorial.war in 0ms
      [INFO] 14:14:54,386 INFO  [org.jboss.as.controller] (management-handler-thread - 3) JBAS014774: Service status report
      [INFO] JBAS014777:   Services which failed to start:      service jboss.deployment.unit."errai-tutorial.war".STRUCTURE: org.jboss.msc.service.StartException in service jboss.deployment.unit."errai-tutorial.war".STRUCTURE: Failed to process phase STRUCTURE of deployment "errai-tutorial.war"
      [INFO]
      [INFO] {"outcome" => "success"}
      [ERROR] Unable to start embedded HTTP server
      [ERROR] com.google.gwt.core.ext.UnableToCompleteException: (see previous log entries)
      [ERROR] at org.jboss.errai.cdi.server.gwt.JBossLauncher.start(JBossLauncher.java:120)
      [ERROR] at com.google.gwt.dev.DevMode.doStartUpServer(DevMode.java:509)
      
      

       

      Has anyone an idea what is wrong?

        • 1. Re: Problem with errai tutorial
          mbarkley

          Hi Aleksander,

           

          So it seems that the windows path separator is being escaped by the jboss-cli.

           

          However, our newest 3.0-SNAPSHOT uses a better API for accessing the jboss-cli which does not seem to have this problem. If you set the value of the property "errai.devmode.version" to 3.0-SNAPSHOT it should work.

           

          Cheers.

          • 2. Re: Problem with errai tutorial
            alex122

            Hi Max,

             

            thank you. It fixed my problem. Now it is time to start learning.

             

            Br