Chaturvedi Dewashish
Chaturvedi Dewashish

Reputation: 1469

class def not found in jboss as 7.X

I have a project structure as

eardirectory.Ear
  lib/
    my-custom-classes.jar
    .....
    .....
  my-custom-ejb.jar
  META-INF/
    ....


//Now I tried to load classes from classloader as
ClassLoader cl = Thread.currentThread().getContextClassLoader();
clazz = Class.forName(my-custom-classes.class1.class.getName(), true, cl);

but this will not work as current thread is of jboss and jboss has not any identification of my-custom-classes.jar.

So my question is how this can be done with jboss? I have to have to load class definition at runtime. Is there any way in "jboss-deployment-structure" I can define how to load classes before deploying EAR?

Upvotes: 0

Views: 767

Answers (2)

gYanI
gYanI

Reputation: 511

Follow the steps to create module it should work

Step-1 In jboss-as-7.1.1.Final/modules/com/company/gyani/main/

                      -module.xml
                      -my-custom-classes.jar


  Content of  module.xml


 <?xml version="1.0" encoding="UTF-8"?>
      <module xmlns="urn:jboss:module:1.0" name="com.company.gyani">
    <resources>
      <resource-root path="my-custom-classes.jar"/>
    </resources>
    <dependencies>
      <module name="javax.api"/>
         </dependencies>
      </module>

Step-2 Now IN my.ear/META-INF/

      -jboss-deployment-structure.xml
      -MANIFEST.MF

Content of MANIFEST.MF

    Manifest-Version: 1.0
    Dependencies: com.company.gyani

Upvotes: 1

Mukul Goel
Mukul Goel

Reputation: 8467

You need to use concept of module(s) provided by JBoss AS7.

Here you configure your classes/jars/property files as modules and these are loaded while starting JBoss at server scope and are accessible to any deployed application that carries a dependency on this module.

Read through How to configure module

Upvotes: 0

Related Questions