Some background first: Our main objective is to have a reduced development environment in SmartGWT integrated with Maven, to be able to test some of the components and validate if we can use them in our software.

I set the environment, and update the Maven dependencies, but when I deploy the aplication into the Glassfish server, an exception is thrown.

TL;DR: In order to deploy the application, I ran this goal clean compile gwt:compile war:war, after that, I tried to deploy the project in Glassfish (using "Add/Remove") but it failed and threw the exception below

[2021-03-16T17:07:59.614-0500] [glassfish 4.1] [SEVERE] [AS-WEB-CORE-00108] [javax.enterprise.web.core] [tid: _ThreadID=221 _ThreadName=admin-listener(6)] [timeMillis: 1615932479614] [levelValue: 1000] [[
    ContainerBase.addChild: start:
    org.apache.catalina.LifecycleException: java.lang.IllegalArgumentException: java.lang.ClassNotFoundException: com.isomorphic.base.InitListener
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:5898)
    at com.sun.enterprise.web.WebModule.start(WebModule.java:691)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:1041)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:1024)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:747)
    at com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:2286)
    at com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:1932)
    at com.sun.enterprise.web.WebApplication.start(WebApplication.java:139)
    at org.glassfish.internal.data.EngineRef.start(EngineRef.java:122)
    at org.glassfish.internal.data.ModuleInfo.start(ModuleInfo.java:291)
    at org.glassfish.internal.data.ApplicationInfo.start(ApplicationInfo.java:352)
    at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:500)
    at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:219)
    at org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:491)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$2$1.run(CommandRunnerImpl.java:539)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$2$1.run(CommandRunnerImpl.java:535)
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.security.auth.Subject.doAs(Subject.java:360)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$2.execute(CommandRunnerImpl.java:534)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$3.run(CommandRunnerImpl.java:565)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$3.run(CommandRunnerImpl.java:557)
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.security.auth.Subject.doAs(Subject.java:360)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:556)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1464)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl.access$1300(CommandRunnerImpl.java:109)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1846)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1722)
    at com.sun.enterprise.v3.admin.AdminAdapter.doCommand(AdminAdapter.java:534)
    at com.sun.enterprise.v3.admin.AdminAdapter.onMissingResource(AdminAdapter.java:224)
    at org.glassfish.grizzly.http.server.StaticHttpHandlerBase.service(StaticHttpHandlerBase.java:189)
    at com.sun.enterprise.v3.services.impl.ContainerMapper$HttpHandlerCallable.call(ContainerMapper.java:459)
    at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:167)
    at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:201)
    at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:175)
    at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:235)
    at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:283)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:200)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:132)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:111)
    at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77)
    at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:561)
    at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:112)
    at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:117)
    at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:56)
    at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:137)
    at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:565)
    at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:545)
    at java.lang.Thread.run(Thread.java:748)
    Caused by: java.lang.IllegalArgumentException: java.lang.ClassNotFoundException: com.isomorphic.base.InitListener
    at org.apache.catalina.core.StandardContext.addListener(StandardContext.java:3302)
    at org.apache.catalina.core.StandardContext.addApplicationListener(StandardContext.java:2508)
    at com.sun.enterprise.web.TomcatDeploymentConfig.configureApplicationListener(TomcatDeploymentConfig.java:251)
    at com.sun.enterprise.web.TomcatDeploymentConfig.configureWebModule(TomcatDeploymentConfig.java:110)
    at com.sun.enterprise.web.WebModuleContextConfig.start(WebModuleContextConfig.java:264)
    at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:486)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:163)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:5895)
    ... 49 more
Caused by: java.lang.ClassNotFoundException: com.isomorphic.base.InitListener
    at org.glassfish.web.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1783)
    at org.glassfish.web.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1633)
    at org.apache.catalina.core.StandardContext.loadListener(StandardContext.java:5446)
    at com.sun.enterprise.web.WebModule.loadListener(WebModule.java:1788)
    at org.apache.catalina.core.StandardContext.addListener(StandardContext.java:3300)
    ... 56 more
]] 

I have tried some of the solutions related to this exception, but none of them have worked at my end.

  1. I'm working with:

    • SmartGWT 6.0 Pro (6.0-p20170526)
    • Project based on built-in-ds sample (from SGWT)
    • JDK 1.8.0_241
    • GWT Libraries 2.8.1
    • Eclipse 2020-03 (4.15.0) Build id: 20200313-1211
    • Glassfish 4.1
    • Apache Maven 3.6.3
  2. Here is the pom.xml configuration I used:

     <?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/maven-v4_0_0.xsd">
    
     <modelVersion>4.0.0</modelVersion>
     <groupId>co.focuss</groupId>
     <artifactId>SamplesSGWT</artifactId>
     <packaging>war</packaging>
     <version>0.0.1-SNAPSHOT</version>
     <name>SamplesSGWT</name>
    
     <properties>
    
         <!-- Explictly specify a default encoding to avoid relying on the OS locale. -->
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    
         <!-- Artifact versions -->
         <gwt.version>2.8.0</gwt.version>
         <smartgwt.version>6.0-p20170526</smartgwt.version>
         <asm.version>5.0.3</asm.version>
         <dbcp.version>1.4</dbcp.version>
         <sqlserver.version>4.2</sqlserver.version>
         <servlet.api.version>3.0.1</servlet.api.version>
         <jstl.version>1.2</jstl.version>
         <junit.version>4.11</junit.version>
         <slf4j-log4j.version>1.7.12</slf4j-log4j.version>
    
         <!-- Maven GWT compiler version and parameters -->
         <maven.compiler.version>3.3</maven.compiler.version>
         <maven.compiler.source>1.8</maven.compiler.source>
         <maven.compiler.target>1.8</maven.compiler.target>
         <compiler.style>OBF</compiler.style>
         <compiler.log.level>INFO</compiler.log.level>
         <glassfish.port>8188</glassfish.port>
    
         <!-- Maven War plugin version and parameters -->
         <war.plugin.version>2.6</war.plugin.version>
    
     </properties>
    
     <dependencies>
    
         <!-- Core: GWT -->
         <dependency>
             <groupId>com.google.gwt</groupId>
             <artifactId>gwt-servlet</artifactId>
             <version>${gwt.version}</version>
             <scope>runtime</scope>
         </dependency>
    
         <dependency>
             <groupId>com.google.gwt</groupId>
             <artifactId>gwt-user</artifactId>
             <version>${gwt.version}</version>
             <scope>provided</scope>
         </dependency>
    
         <!-- Core: SmartGWT -->
         <dependency>
             <groupId>com.isomorphic.smartgwt.pro</groupId>
             <artifactId>smartgwt-pro</artifactId>
             <version>${smartgwt.version}</version>
         </dependency>
    
         <!-- Core: SmartGWT Sql Tools -->
         <dependency>
             <groupId>com.isomorphic.smartgwt.pro</groupId>
             <artifactId>isomorphic-sql</artifactId>
             <version>${smartgwt.version}</version>
         </dependency>
    
         <!-- Additional Dependency: required for proper SmartGWT dev tools compilation -->      
         <dependency>
             <groupId>org.ow2.asm</groupId>
             <artifactId>asm</artifactId>
             <version>${asm.version}</version>
             <scope>compile</scope>
         </dependency>
    
         <!-- Core: SmartGWT Developer Tools -->
         <dependency>
             <groupId>com.isomorphic.smartgwt.pro</groupId>
             <artifactId>isomorphic-tools</artifactId>
             <version>${smartgwt.version}</version>
         </dependency>       
    
         <!-- Additional SmartGWT Dependencies: DBCP2-->
         <dependency>
             <groupId>commons-dbcp</groupId>
             <artifactId>commons-dbcp</artifactId>
             <version>${dbcp.version}</version>
         </dependency>
    
         <!-- SQL Server JDBC Driver -->
         <dependency>
             <groupId>com.microsoft.sqlserver</groupId>
             <artifactId>sqljdbc</artifactId>
             <version>${sqlserver.version}</version>
         </dependency>
    
         <!-- Servlets -->
         <dependency>
             <groupId>javax.servlet</groupId>
             <artifactId>javax.servlet-api</artifactId>
             <version>${servlet.api.version}</version>
         </dependency>
    
         <!-- JSTL for JSP page -->
         <dependency>
             <groupId>javax.servlet</groupId>
             <artifactId>jstl</artifactId>
             <version>${jstl.version}</version>
         </dependency>
    
         <!-- Unit Tests: JUnit -->
         <dependency>
             <groupId>junit</groupId>
             <artifactId>junit</artifactId>
             <version>${junit.version}</version>
         </dependency>
    
         <!-- Logging: Slf4j -->
         <dependency>
             <groupId>org.slf4j</groupId>
             <artifactId>slf4j-log4j12</artifactId>
             <version>${slf4j-log4j.version}</version>
         </dependency>
    
         <dependency>
             <groupId>org.slf4j</groupId>
             <artifactId>slf4j-api</artifactId>
             <version>${slf4j-log4j.version}</version>
         </dependency>
    
     </dependencies>
    
     <build>
    
         <!-- This will produce a war file named SamplesSGWT.war, rather than
             SamplesSGWT-${project.version}.war. -->
         <finalName>SamplesSGWT</finalName>
    
         <!-- Make sure classes output dir matches hosted webapp WEB-INF/classes 
             folder, so GWT Hosted browser can see the classes. -->
         <directory>target</directory>
         <outputDirectory>${project.build.directory}/${project.build.finalName}/WEB-INF/classes</outputDirectory>
    
         <plugins>
    
             <!-- Plugin to compile Java code to JavaScript -->
             <plugin>
                 <groupId>org.codehaus.mojo</groupId>
                 <artifactId>gwt-maven-plugin</artifactId>
                 <version>${gwt.version}</version>
    
                 <executions>
                         <execution>
                             <goals>
                                 <goal>compile</goal>
                                 <goal>generateAsync</goal>
                                 <goal>test</goal>
                             </goals>
                         </execution>
                 </executions>
    
                 <configuration>
    
                         <!-- Compiler parameters -->
                         <extraJvmArgs>-Xss1024K -Xmx1024M</extraJvmArgs>    
                         <draftCompile>true</draftCompile>
                         <debugSuspend>false</debugSuspend>
                         <logLevel>${compiler.log.level}</logLevel>
                         <style>${compiler.style}</style>
    
                         <!-- Launch parameters with external server -->
                         <!-- Add the app to Glassfish embedded server and set the server to
                              publsh automatically after each compile -->
                         <noServer>true</noServer>
                         <runTarget>http://localhost:${glassfish.port}/${project.build.finalName}/${project.build.finalName}.html</runTarget>
    
                         <!-- Build parameters -->
                         <buildOutputDirectory>${project.build.outputDirectory}</buildOutputDirectory>
                         <hostedWebapp>${project.build.directory}/${project.build.finalName}</hostedWebapp>
                         <copyWebapp>true</copyWebapp>
    
                 </configuration>
    
             </plugin>
    
             <!-- Plugin to compile the project. Included here only to specifically
                  define the source and target versions of the project -->
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-compiler-plugin</artifactId>
                 <version>${maven.compiler.version}</version>
                 <configuration>
                         <source>${maven.compiler.source}</source>
                         <target>${maven.compiler.target}</target>
                 </configuration>
             </plugin>
    
             <!-- Plugin to package in war file -->
             <plugin>            
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-war-plugin</artifactId>
                 <version>${war.plugin.version}</version>
                 <configuration>
                     <webXml>src/main/webapp/WEB-INF/web.xml</webXml> 
                     <!-- Exclude what you want from the final artifact here -->
                     <!-- <warSourceExcludes>.gwt-tmp/**</warSourceExcludes> -->
                 </configuration>
             </plugin>
    
         </plugins>
     </build>
    

Would you please help me with to find out what is causing this error and how could I solve it.

If you need anything else to review this case, just let me know.

I thank you in advance for all the help you can provide!

0

There are 0 answers