Uploaded image for project: 'Teiid Designer'
  1. Teiid Designer
  2. TEIIDDES-3162

ModuleNotFoundException occurs with dynamic vdb including UDF Jars

    Details

    • Steps to Reproduce:
      Hide

      1. unzip reproducer_project.zip, and import to Devstudio 11.1.0 CR1.
      2. generate dynamic vdb from testvdb.vdb in the project.
      3. you can see the comma separated modules in dynamic vdb file.
      if you need to deploy to teiid, put test.jar, test2.jar and testvdb-vdb.xml to JBOSS_HOME/standalone/deployment.

      Show
      1. unzip reproducer_project.zip, and import to Devstudio 11.1.0 CR1. 2. generate dynamic vdb from testvdb.vdb in the project. 3. you can see the comma separated modules in dynamic vdb file. if you need to deploy to teiid, put test.jar, test2.jar and testvdb-vdb.xml to JBOSS_HOME/standalone/deployment.
    • Workaround:
      Workaround Exists
    • Workaround Description:
      Hide

      modify the lib property to space delimited from comma delimited.

      Show
      modify the lib property to space delimited from comma delimited.

      Description

      Teiid desinger 11.1.1 generate UDF jars with comma separated to dynamic vdb as follows.

      <property name="lib" value="deployement.test.jar, deployement.test2.jar"/>
      

      But ModuleNotFoundException occurs in teiid server when the dynamic vdb deployed.

      ERROR [org.jboss.msc.service.fail] (MSC service thread 1-6) MSC000001: Failed to start service jboss.deployment.unit."testvdb-vdb.xml".DEPENDENCIES: org.jboss.msc.service.StartException in service jboss.deployment.unit."testvdb-vdb.xml".DEPENDENCIES: JBAS018733: Failed to process phase DEPENDENCIES of deployment "testvdb-vdb.xml"
      	at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:166) [jboss-as-server-7.5.9.Final-redhat-2.jar:7.5.9.Final-redhat-2]
      	at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1980) [jboss-msc-1.1.6.Final-redhat-1.jar:1.1.6.Final-redhat-1]
      	at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1913) [jboss-msc-1.1.6.Final-redhat-1.jar:1.1.6.Final-redhat-1]
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [rt.jar:1.8.0_131]
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [rt.jar:1.8.0_131]
      	at java.lang.Thread.run(Thread.java:748) [rt.jar:1.8.0_131]
      Caused by: org.jboss.as.server.deployment.DeploymentUnitProcessingException: TEIID50088 Failed to load module deployment.test.jar, for UDF in VDB testvdb.1:org.jboss.modules.ModuleNotFoundException: deployment.test.jar,:main
      	at org.teiid.jboss.VDBDependencyDeployer.deploy(VDBDependencyDeployer.java:85)
      	at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:159) [jboss-as-server-7.5.9.Final-redhat-2.jar:7.5.9.Final-redhat-2]
      	... 5 more
      

      Teiid expects space delimited list for the module names.

      "The lib property value may contain a space delimited list of module names if more than one dependency is needed."
      https://access.redhat.com/documentation/en-us/red_hat_jboss_data_virtualization/6.3/html/development_guide_volume_4_server_development/sect-support_for_non-pushdown_user_defined_functions

      If changing vdb to use space delimited as follows, deployment was succeeded.

      <property name="lib" value="deployement.test.jar deployement.test2.jar"/>
      

        Gliffy Diagrams

          Attachments

            Activity

              People

              • Assignee:
                blafond Barry LaFond
                Reporter:
                hiroki.daicho Hiroki Daicho
              • Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: