Packaging Utility JARs in EAR

Hi,
At present, we create a single enterprise archive (.ear) containing all utility packages (3rd party, framework) (jars) and EJB deployments. Our current .ear file is approximately 14MB.
During a recent investigation to resolve a JNI DLL reloading issue, we discovered that when loading new classes for an application, the runtime environment looks for classes in the following locations (in the following order): the bootstrap classpath, installed extensions (lib/ext directory of the JRE) and the classpath.
It has been suggested that the utility and 3rd party jars are not packaged within the EAR, but are copied to the lib/ext directory of the JRE.
The new .ear file is approximately 2MB. The advantages of this approach is that the EAR deployment is more lightweight and is thus more manageable by the application server.
A further advantage is that the jars are in a single location. That is, if a jar is required by more than more EAR, it resides in a single location.
Are there any negatives or performance impacts of this approach?
Any information or suggestions would be highly appreciated.
Regards,
Rennay Dorasamy

The only real negatives are:
1) You can't change the libraries without restarting the java process (WLS in this case)
2) Your extensions must be isolated and not refer to any classes in the classpath or application.
FWIW, WLS 9 includes a new feature application libraries:
http://e-docs.bea.com/wls/docs90/programming/libraries.html
-- Rob

Similar Messages

  • Ejb jar - packaging utility jars or classes?

    Currently I have an ejb jar that contains 1 bean (say ejb1.jar). This bean uses some utility classes (say util.jar). If I add the actuall .class files from util.jar to ejb1.jar everything works great. If I add util.jar to ejb1.jar I get errors like:
    Unable to deploy EJB: SomeBean from ejb1.jar.jar:
    java.lang.NoClassDefFoundError: com/xxxx/xxxx/SomeClass
    Shouldn't adding the util.jar file directly to the ejb1.jar file work? Do I have to do anything extra to get it to work?
    thanks,
    ryan

    http://edocs.bea.com/wls/docs70/programming/classloading.html#1069420
    "Ryan Van Luttikhuisen" <[email protected]> wrote in message
    news:[email protected]..
    Currently I have an ejb jar that contains 1 bean (say ejb1.jar). Thisbean uses some utility classes (say util.jar). If I add the actuall .class
    files from util.jar to ejb1.jar everything works great. If I add util.jar
    to ejb1.jar I get errors like:
    >
    Unable to deploy EJB: SomeBean from ejb1.jar.jar:
    java.lang.NoClassDefFoundError: com/xxxx/xxxx/SomeClass
    Shouldn't adding the util.jar file directly to the ejb1.jar file work? DoI have to do anything extra to get it to work?
    >
    thanks,
    ryan--
    Dimitri

  • Web page breaks when adding utility JARs to my EAR

    Hi All,
    I am creating a Web Application (.war) that runs some java code and has some JSP web pages to control the code/display results (as a dashboard sort of thing). I have then put this .war file in an enterprise app (.ear file - I have done this as there is other functionality that I want to roll in to the application).
    I have been building this in Rational Software Architect and imported the required utility .jar files into the .war project, however when this is built the utility .jars are not included in the exported .ear file (the jsp dashboard pages still display correctly - it just means that the java code cant be run).
    To ensure that the utility jar files are included in the exported .ear file I the added the utility jars in to the main .ear project and referenced them from the web app project - this compiles fine - however, when i then view the jsp pages they are now showing blank!
    Any ideas as to what might be the problem or why my jsp pages are not showing up once I have added the dependent utility jars in to the ear file?
    Thanks in advance guys!

    Don't use layers, use tables. Outlook doesn't render with the
    Internet Explorer engine (since Outlook 2007 at least). You also
    can't use padding, background images, external CSS styles, and
    dozens of other things. You also need to provide a full path to the
    images in the newsletter.
    In short, it's NOTHING like designing for a browser.
    Here's a giant PDF that will make you cringe:
    http://www.campaignmonitor.com/css/reports/Guide_to_CSS_Support_in_Email_2008.pdf
    Here's a rough guide to HTML email:
    http://www.webmonkey.com/tutorial/Send_HTML-Formatted_E-mail
    Lastly, use a third party email service. If you send to more
    than fifty people at once you stand a really good chance of getting
    your domain blacklisted. Also, did you know that if you don't
    provide a way for people to unsubscribe you're breaking the law? Or
    if you don't show a physical street address you're in violation of
    the law as well? Again, use a third party service so you're
    protected against this crap. Also, they're cheap!
    http://www.streamsend.com/
    http://www.mailchimp.com/

  • Coder needed to wrap my .jar using the JavaFX Packager Utility

    Hello-I am not a coder. I am looking for a programmer who is able to wrap my .jar using the JavaFX Packager Utility. I would like to upload my app to the Mac App Store also and need assistance doing that.
    Please contact me for more details if you are able to do one or both of the above.
    Thank you,
    Jeff
    Edited by: 929408 on Sep 9, 2012 9:16 PM

    Ok. Please let me know when you are able to upload the .jar I have (packaged) to the Macintosh App Store if you would. Do you need a way to contact me? I don't know if I am able to place my email or main website here, and I don't check here often. We can work out a payment arrangement. Thank you.

  • Modifying JAR file using java.util.jar package  over the network

    Hello,
    I am modifying a JAR file programmatically using java.util.jar package. The time taken to save the contents to a local disk is very less (around 1 sec) . When I tried modifying the JAR from a remote machine over the network (from mapped drive or shared folder of WIN NT), the time taken to save is 15-20 times more.
    I am recreating the whole JAR while modifying. Is there any way to improve the performance. Or is it possible to write only the changed files?
    Thanks,
    Prasad Y S.

    When you "update" a jar file, you must always recreate it from scratch.

  • WL tries to deploy utility jar file in .ear as an EJB

    I have an ear containing two ejb jars, one webapp war and a utility jar
    (common.jar). Deploying to
    WebLogic 6.1 sp2 results in deployment errors because WebLogic thinks
    the common.jar in a
    lib directory in the ear is an ejb jar:
    ==================================================================
    ><Apr 22, 2002 4:42:36 PM MDT> <Error> <J2EE> <Error deploying
    >application lib/common:
    >
    >Unable to deploy EJB: lib/common.jar from lib/common.jar:
    >
    >An error occurred while reading the deployment descriptor. The error was:
    > java.io.FileNotFoundException: META-INF/ejb-jar.xml not found in jar file
    > at weblogic.ejb20.dd.xml.DDUtils.getEntry(DDUtils.java:332)
    > at weblogic.ejb20.dd.xml.DDUtils.getEjbJarXml(DDUtils.java:236)
    >.........
    >===================================================================
    Why does it think common.jar contains an EJB? My application.xml is:
    >
    ><application>
    > <display-name>TestUnit</display-name>
    > <module>
    > <ejb>TestUnit1.jar</ejb>
    > </module>
    > <module>
    > <ejb>TestUnit2.jar</ejb>
    > </module>
    > <module>
    > <web>
    > <web-uri>WebApp1.war</web-uri>
    > <context-root>WebApp1</context-root>
    > </web>
    > </module>
    ></application>

    Hi.
    Please open a case with support.
    Regards,
    Michael
    Rick Holland wrote:
    I have an ear containing two ejb jars, one webapp war and a utility jar
    (common.jar). Deploying to
    WebLogic 6.1 sp2 results in deployment errors because WebLogic thinks
    the common.jar in a
    lib directory in the ear is an ejb jar:
    ==================================================================
    <Apr 22, 2002 4:42:36 PM MDT> <Error> <J2EE> <Error deploying
    application lib/common:
    Unable to deploy EJB: lib/common.jar from lib/common.jar:
    An error occurred while reading the deployment descriptor. The error was:
    java.io.FileNotFoundException: META-INF/ejb-jar.xml not found in jar file
    at weblogic.ejb20.dd.xml.DDUtils.getEntry(DDUtils.java:332)
    at weblogic.ejb20.dd.xml.DDUtils.getEjbJarXml(DDUtils.java:236)
    ===================================================================Why does it think common.jar contains an EJB? My application.xml is:
    <application>
    <display-name>TestUnit</display-name>
    <module>
    <ejb>TestUnit1.jar</ejb>
    </module>
    <module>
    <ejb>TestUnit2.jar</ejb>
    </module>
    <module>
    <web>
    <web-uri>WebApp1.war</web-uri>
    <context-root>WebApp1</context-root>
    </web>
    </module>
    </application>
    Michael Young
    Developer Relations Engineer
    BEA Support

  • WLS 7.0 - util jars being accessed from the war file

    Some of classes in the warfile (servlets) need access to some of the util jars in my ear file. I really don't want to put them in the war file/WEB-INF/lib directory and in the ear file. Is there any way to do this without putting them in the classpath.
    Any info would be appreciated.
    Thanks,
    Ian

    Ian,
    Examine the following link on packaging utility classes and the Weblogic classloader
    architecture
    This link should provide (hopefully :-) ) the answer to your question
    http://e-docs.bea.com/wls/docs70/programming/classloading.html
    Chuck Nelson
    DRE
    BEA Technical Support

  • Where to put utility jar (used by EJB's and war)

    Hello all,
    In many cases when you create a web application including EJB's and a WAR file packaged together in an EAR file, you need some utility classes that are used in the EJB's as wel as in the servlets in the WAR. The utility classes might for example be value object classes that servlets use to exchange data with te EJB's.
    My question is: What is the best place to put the utility class files?
    There is a new article on JDC: http://developer.java.sun.com/developer/technicalArticles/J2EE/build/ that gives some tips. For example, it proposes to put the utility JAR in the EAR file and then add a "Class-Path:" entry to the MANIFEST.MF of the EJB's that use the utility classes.
    However, this approach does not work on BEA Weblogic 6.0. Weblogic's classloader just seems to ignore the "Class-Path:" in the EJB JAR's manifest.
    Any thoughts?
    regards
    Jesper

    The "CLASS-PATH" mechanism in that article is a new
    requirement in J2EE 1.3 (final draft 4). Therefore
    right now Weblogic does not support it yet. Now you
    need to put those utility classes in both the WAR (in
    WEB-INF/lib) and EJB JAR files. If you really want
    only 1 copy of the jar file deployed, you can manually
    add that jar file to weblogic server classpath in the
    start script under config/yourdomain.HI all,
    I have some Utility jar file for EJB and Web Application,
    In the second solution about one copy in weblogic,
    I tried it in the WLS60 it's ok
    But it didn't work in WLS61
    Anyone could give me any good suggestion?
    Moen

  • Using external util JAR from Session EJB

    I have a Stateless Session EJB that uses some classes packaged in a utility jar. How do I package the EJB jar with this util jar, and get the app server to recognize this utility jar? including a /lib dir with the utils jar in it, like you would with a WAR, doesn't work.
    I've temporarily got this to work by modifying the startup scripts for my app server to ensure my jar is included in the -classpath arg, but this cannot be the intended way. (cannot find details on this in the tutorial).
    Thanks in advance!

    Well, the answer depends a lot on which appserver you're using, because it obviously depends on how the vendor implemented the containers' ClassLoaders. What usually works is dependent upon a portion of the JVM spec regarding the MANIFEST.MF file. If you package your ejb.jar and library.jar in an .ear file, you can put the following in the ejb.jar MANIFEST.MF:
    ClassPath: library.jarNote that there must be at least one blank line at the end of the MANIFEST.MF file.
    This works on WebLogic, but, as an example, JBoss uses a single ClassLoader, so I'm not entirely sure how you'd go about the same thing there.
    And you're quite right - putting it in the JVM ClassPath is not a good idea...

  • J2EE / JMS Controlling transaction in util.jar

    Hi all experts!
    I've a delicate problem where I want to handle transactions transparently for EJBs in my util jar. I�m familiar with the other alternatives (MDBs etc) and using them in other parts of the solution but they can�t be used here (need a synchronous request-reply).
    The description is a bit long but please bare with me, hopefully it is clear and understandable.
    Summary:
    Why can't I use a UserTransaction in a utility.jar when called from a EJB using container managed transaction.
    Senario:
    transport_util.jar:
    Transport utility package contains no EJBs, just simple java classes (to make usage / deployment more simple for the users of the util.jar).
    The EJBs use an ApplicationFacade in the transport_util.jar (not a EJB just a java class) providing a high level communication API for JMS transport, encapsuling JMS specific code, and providing the simple transport primitives:
    - void send(Object data) : writing fire and forget messages to JMS Queue
    - Object requestReply(Object data) : sending a request message and waiting
    synchronously for a reply message. Not pretty when using messaging but
    necessary in this solution.
    AnyEJB.jar:
    The �client� using the transport primitives in transport_util.jar. The transport_util.jar is included in the EAR application as a utility.jar. The EJBs can use either Container (CMT) or Bean Managed Transactions (BMT). The transport_util.jar shouldn�t set any limitations.
    Problem:
    The problem arise when a �client� EJB under CMT calls the requestReply function in the API. The message is written to the JMS Queue by the transport_util before it starts to listen for a reply, on a in Queue, which will be returned to the caller. The request message is nerver delivered to the recipient who there for won�t produce a reply.
    Why? Because it is written to the JMS Queue inside a transaction (implicit from the calling EJB) which has not been committed (and shouldn�t from the clients perspective) before the API starts to listen for the reply. No delivery until commit! The transactional parameter isn�t valid when inside a application server
    My idea of a solution:
    Start a new UserTransaction, putTx, inside the requestReply function to halt the callers transaction (J2EE doesn�t support nested trans) and use it around the put operation. After a successful put the putTx could be committed, without affecting the callers transaction, which would lead to the message being sent to the recipient and finally a reply could arrive. Only one big problem.:
    I get a naming exception when trying to lookup the UserTransaction through JNDI if the calling EJB use CMT but not if it uses BMT. Why? Is there a workaround?
    InitialContext ctxt = new InitialContext();
    UserTransaction putTx = ctxt.lookup(�java:comp/UserTransaction�)
    putTx.begin();
    // Put message on queue
    putTx.commit();
    // Try read reply from queue
    Infrastructure:
    - IBM WebSpehere Application Server 5
    - IBM WebSpehere MQ 5.3
    - Java 1.3
    Exception excerpt:
    Error occurred while handling transaction
    [2003-09-04 17:06:47:479 CEST] 7f8389dc SystemOut O javax.naming.NameNotFoundException: Name "comp/UserTransaction" not found in context "java:".
    [2003-09-04 17:06:47:479 CEST] 7f8389dc SystemOut O      at com.ibm.ws.naming.ipbase.NameSpace.lookup(NameSpace.java:1003)
    [2003-09-04 17:06:47:479 CEST] 7f8389dc SystemOut O      at com.ibm.ws.naming.urlbase.UrlContext.lookup(UrlContext.java:1211)
    [2003-09-04 17:06:47:479 CEST] 7f8389dc SystemOut O      at com.ibm.ws.naming.urlbase.UrlContext.lookup(UrlContext.java:1203)
    [2003-09-04 17:06:47:479 CEST] 7f8389dc SystemOut O      at com.ibm.ws.naming.urlbase.UrlContext.lookup(UrlContext.java:1257)
    [2003-09-04 17:06:47:479 CEST] 7f8389dc SystemOut O      at javax.naming.InitialContext.lookup(InitialContext.java:359)
    /Best regards
    Jesper

    If anyone else have the same problem....
    After a great tip from a colleague a good solution if found!
    By getting hold of the TransactionManger from the ApplicationServer it is possible to suspend an ongoing transaction, start a new one and commit it and restart the suspended transaction again.
    Looking up the TransactionManger differs a lot from AppServer to AppServer. To find out how it is done on yours take a peak in the code of any of bigger persistence frameworks (I looked at Hibernate).
    So in pseudo code:
    // Error checks not in code to keep it short
    // Look up the TransactionManager
    TransactionManager mgrTx = //
    // Suspend callers Tx
    Transaction callerTx = mgrTx.suspend();
    // Start new transaction for the work to be performed
    // outside the callers transaction
    mgrTx.begin();
    // Perform transacted work .....
    // Commit
    mgrTx.commit();
    // Reassign the callers transaction to the thread and activate if
    mgrTx.resume(callerTx);/J

  • Problem in Creating a jar file using java.util.jar and deploying in jboss 4

    Dear Techies,
    I am facing this peculiar problem. I am creating a jar file programmatically using java.util.jar api. The jar file is created but Jboss AS is unable to deploy this jar file. I have also tested that my created jar file contains the same files. When I create a jar file from the command using jar -cvf command, Jboss is able to deploy. I am sending the code , please review it and let me know the problem. I badly require your help. I am unable to proceeed in this regard. Please help me.
    package com.rrs.corona.solutionsacceleratorstudio.solutionadapter;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.util.jar.JarEntry;
    import java.util.jar.JarOutputStream;
    import java.util.jar.Manifest;
    import com.rrs.corona.solutionsacceleratorstudio.SASConstants;
    * @author Piku Mishra
    public class JarCreation
         * File object
         File file;
         * JarOutputStream object to create a jar file
         JarOutputStream jarOutput ;
         * File of the generated jar file
         String jarFileName = "rrs.jar";
         *To create a Manifest.mf file
         Manifest manifest = null;
         //Attributes atr = null;
         * Default Constructor to specify the path and
         * name of the jar file
         * @param destnPath of type String denoting the path of the generated jar file
         public JarCreation(String destnPath)
         {//This constructor initializes the destination path and file name of the jar file
              try
                   manifest = new Manifest();
                   jarOutput = new JarOutputStream(new FileOutputStream(destnPath+"/"+jarFileName),manifest);
              catch(Exception e)
                   e.printStackTrace();
         public JarCreation()
         * This method is used to obtain the list of files present in a
         * directory
         * @param path of type String specifying the path of directory containing the files
         * @return the list of files from a particular directory
         public File[] getFiles(String path)
         {//This method is used to obtain the list of files in a directory
              try
                   file = new File(path);
              catch(Exception e)
                   e.printStackTrace();
              return file.listFiles();
         * This method is used to create a jar file from a directory
         * @param path of type String specifying the directory to make jar
         public void createJar(String path)
         {//This method is used to create a jar file from
              // a directory. If the directory contains several nested directory
              //it will work.
              try
                   byte[] buff = new byte[2048];
                   File[] fileList = getFiles(path);
                   for(int i=0;i<fileList.length;i++)
                        if(fileList.isDirectory())
                             createJar(fileList[i].getAbsolutePath());//Recusive method to get the files
                        else
                             FileInputStream fin = new FileInputStream(fileList[i]);
                             String temp = fileList[i].getAbsolutePath();
                             String subTemp = temp.substring(temp.indexOf("bin")+4,temp.length());
    //                         System.out.println( subTemp+":"+fin.getChannel().size());
                             jarOutput.putNextEntry(new JarEntry(subTemp));
                             int len ;
                             while((len=fin.read(buff))>0)
                                  jarOutput.write(buff,0,len);
                             fin.close();
              catch( Exception e )
                   e.printStackTrace();
         * Method used to close the object for JarOutputStream
         public void close()
         {//This method is used to close the
              //JarOutputStream
              try
                   jarOutput.flush();
                   jarOutput.close();
              catch(Exception e)
                   e.printStackTrace();
         public static void main( String[] args )
              JarCreation jarCreate = new JarCreation("destnation path where jar file will be created /");
              jarCreate.createJar("put your source directory");
              jarCreate.close();

    Hi,
    I have gone through your code and the problem is that when you create jar it takes a complete path address (which is called using getAbsolutePath ) (when you extract you see the path; C:\..\...\..\ )
    You need to truncate this complete path and take only the path address where your files are stored and the problem must be solved.

  • Help to solve problem with packaging log4j in a EAR file

    Hi All
    i struggle hard to create a EAR composed of EJB JARs and WARs and the programs
    in these JARs and WARs use log4j to log msg. Because i want all J2EE apps to have
    their own version of log4j library, i package log4j.jar in the EAR file. Below
    is my EAR package structure
    EJB1.jar
    EJB2.jar
    SharedUtilities.jar
    log4j.jar
    log4j.properties
    WEBAPP1.war
    WEBAPP2.war
    META-INF/manifest.mf
    For both EJB1.jar and EJB2.jar's META-INF/manifest.mf, there is a below entries
    Manifest-Version: 1.0
    Class-Path: SharedUtilities.jar log4j.jar
    However, my program always hit below runtime error.
    [java] Caused by: javax.ejb.TransactionRolledbackLocalException: EJB Exception:
    : java.lang.NoClassDefFoundError: org/apache/log4j/PropertyConfigurator
    But the program in EJB1.jar and EJB2.jar seem to have no such problem in loading
    classes in SharedUtilities.jar. The problem can be eliminated if i put log4j.jar
    at system classpath. Can anybody provide me with info on how to package a log4j
    library within a EAR package ?
    In addition, where should i put the log4j.properties so that it will be at search
    path of log4j and automatically loaded by log4j lib
    regards
    Danny

    Hi Slava Imeshev
    I am a bit confused about your reply. As said, the log4j.jar was packaged in my
    ear file. If the log4j.jar was not packaged in ear file, how come the ejb classloader
    can locate it.
    Secondly, if log4j.jar is included in system classpath, the ejb also can load
    log4j classes by system classloader. No "NoClassDeffound" exception is thrown.
    regards
    dso
    "Slava Imeshev" <[email protected]> wrote:
    "dso" <[email protected]> wrote in message
    news:[email protected]...
    Hi Slava Imeshev
    thanks for your response. I am a bit confused about your answer.
    i can't understand why u said the classloader COULD loadorg/apache/log4j/PropertyConfigurator.
    According to the error msg, it said
    " java.lang.NoClassDefFoundError: org/apache/log4j/PropertyConfigurator".
    Seemingly,
    this class in log4j.jar could not be located. But as i said in lastquestion,
    i seemed to have properly
    edit the "META-INF/manifest.mf" in EJB1.jar and EJB2.jar to includelog4j.jar
    in "Class-path" attribute. And my EJB classes have no problem in loadingclasses
    in SharedUtilities.jar. Would u please elaborate on it in more details?
    Sure. NoClassDefFoundError means that a DEPENDING class
    can not be loaded. If the classloader were not able to load the class
    itself, it would give you ClassNotFoundException.
    Just make sure that you don't have the same packages in
    the ear and in the class path so that you don't have classes
    loaded by system classloader trying to load classes loaded
    by ejb classloaders.
    regards
    dso
    "Slava Imeshev" <[email protected]> wrote:
    First, this error means that classloader was able to load
    org/apache/log4j/PropertyConfigurator, but cold not load
    one of depending classes. I'd inspect the CLASSPATH
    to see if there are any log4 classes there.
    Second, you can package your log4.properties into
    log4.jar itself.
    Regards,
    Slava Imeshev
    "dso" <[email protected]> wrote in message
    news:[email protected]...
    Hi All
    i struggle hard to create a EAR composed of EJB JARs and WARs and
    the
    programs
    in these JARs and WARs use log4j to log msg. Because i want all
    J2EE
    apps
    to have
    their own version of log4j library, i package log4j.jar in the EARfile.
    Below
    is my EAR package structure
    EJB1.jar
    EJB2.jar
    SharedUtilities.jar
    log4j.jar
    log4j.properties
    WEBAPP1.war
    WEBAPP2.war
    META-INF/manifest.mf
    For both EJB1.jar and EJB2.jar's META-INF/manifest.mf, there is
    a below
    entries
    Manifest-Version: 1.0
    Class-Path: SharedUtilities.jar log4j.jar
    However, my program always hit below runtime error.
    [java] Caused by: javax.ejb.TransactionRolledbackLocalException:EJB
    Exception:
    : java.lang.NoClassDefFoundError: org/apache/log4j/PropertyConfigurator
    But the program in EJB1.jar and EJB2.jar seem to have no such problemin
    loading
    classes in SharedUtilities.jar. The problem can be eliminated if
    i
    put
    log4j.jar
    at system classpath. Can anybody provide me with info on how to
    package
    a
    log4j
    library within a EAR package ?
    In addition, where should i put the log4j.properties so that it
    will
    be at
    search
    path of log4j and automatically loaded by log4j lib
    regards
    Danny

  • Including utility jar when packing ejb in weblogic

    Hi,
    I am new to j2ee programming. I have an ejb which uses some utility jars. I followed the bea documents to structure the directory. The directory structure is, like,
    EjbProject
    - classes
    --com
    ---mine
    ----projectTracking --> has the class files of the ejb and supporting java files
    - src
    --com
    ---mine
    ----projectTracking --> contains the source files of the ejb and the supporting java files
    META-INF > contains ejb-jar.xml and weblogic-ejb-jar.xml
    The source java files are dependent on an utility jar file.
    so when I try the java weblogic.appc src, it throws me exception saying the utility file is missing. My question , is where should I put this utility jar file. Please send me your thoughts.
    Thanks in advance

    Hi,
    you can put your utility jar in the ear file along with the EJBs and make a classpath entry to these files in the EJB jar's META-INF\Manifest.mf file. As you said if you are working with weblogic you can put these files any where in the directory structure and place the entry in the startWeblogic.cmd file. But i recomend first option.
    Ashok.

  • JAR,WAR,EAR...

    HI,
    EJB modules are packaged as JAR files with a .jar extension.
    Web modules, are packaged as WAR file (though it can be .jar )
    Why we need to make it as .war file ?We can do it as .jar ?
    But anyway why at time of delivry we create a EAR file ?what are the significance of making file differently ? Is it not posssible to make everything .jar and deliver it.

    EJB modules are packaged as JAR files with a .jar
    extension.
    Web modules, are packaged as WAR file (though it can
    be .jar )
    Why we need to make it as .war file ?We can do it as
    .jar ?To tell the servlet container what to do with it. It has to extract the WARs after all. I don't think it'd extract a JAR file if it were in te deployment directory.
    Also keep in mind that WAR have additional content, like the Web.xml.
    But anyway why at time of delivry we create a EAR
    file ?Because it can contain more than just WARs. It also contains deployment modules for application servers.
    what are the significance of making file
    differently ? Is it not posssible to make everything
    .jar and deliver it.Why do you care whether it's called .jar or .ear? Especially since there's a clear semantic difference, even if they all are just ZIP files.

  • Unable to find ejb-jar with uri X.jar in ear at c:/Y/split_src

    Stack trace is below, but the ejb does exist at the location that the FileNotFoundException states. I've checked that application.xml, org.eclipse.wst.common.component both have the correct name for this dependency.
    java.lang.Exception: Exception received from deployment driver. See Error Log view for more detail.
      at oracle.eclipse.tools.weblogic.server.internal.DeploymentProgressListener.watch(DeploymentProgressListener.java:190)
      at oracle.eclipse.tools.weblogic.server.internal.WlsJ2EEDeploymentHelper.deploy(WlsJ2EEDeploymentHelper.java:506)
      at oracle.eclipse.tools.weblogic.server.internal.WeblogicServerBehaviour.publishWeblogicModules(WeblogicServerBehaviour.java:1466)
      at oracle.eclipse.tools.weblogic.server.internal.WeblogicServerBehaviour.publishToServer(WeblogicServerBehaviour.java:898)
      at oracle.eclipse.tools.weblogic.server.internal.WeblogicServerBehaviour.publishOnce(WeblogicServerBehaviour.java:686)
      at oracle.eclipse.tools.weblogic.server.internal.WeblogicServerBehaviour.publish(WeblogicServerBehaviour.java:539)
      at org.eclipse.wst.server.core.model.ServerBehaviourDelegate.publish(ServerBehaviourDelegate.java:774)
      at org.eclipse.wst.server.core.internal.Server.publishImpl(Server.java:3153)
      at org.eclipse.wst.server.core.internal.Server$PublishJob.run(Server.java:345)
      at org.eclipse.core.internal.jobs.Worker.run(Worker.java:53)
    Caused by: weblogic.application.ModuleException:
      at weblogic.ejb.container.deployer.EJBModule.init(EJBModule.java:334)
      at weblogic.application.internal.flow.ModuleListenerInvoker.init(ModuleListenerInvoker.java:167)
      at weblogic.application.internal.flow.InitModulesFlow.initModule(InitModulesFlow.java:312)
      at weblogic.application.internal.flow.InitModulesFlow.initModules(InitModulesFlow.java:325)
      at weblogic.application.internal.flow.InitModulesFlow.prepare(InitModulesFlow.java:378)
      at weblogic.application.internal.BaseDeployment$1.next(BaseDeployment.java:648)
      at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:52)
      at weblogic.application.internal.BaseDeployment.prepare(BaseDeployment.java:191)
      at weblogic.application.internal.EarDeployment.prepare(EarDeployment.java:59)
      at weblogic.application.internal.DeploymentStateChecker.prepare(DeploymentStateChecker.java:154)
      at weblogic.deploy.internal.targetserver.AppContainerInvoker.prepare(AppContainerInvoker.java:60)
      at weblogic.deploy.internal.targetserver.operations.ActivateOperation.createAndPrepareContainer(ActivateOperation.java:208)
      at weblogic.deploy.internal.targetserver.operations.ActivateOperation.doPrepare(ActivateOperation.java:98)
      at weblogic.deploy.internal.targetserver.operations.AbstractOperation.prepare(AbstractOperation.java:217)
      at weblogic.deploy.internal.targetserver.DeploymentManager.handleDeploymentPrepare(DeploymentManager.java:747)
      at weblogic.deploy.internal.targetserver.DeploymentManager.prepareDeploymentList(DeploymentManager.java:1216)
      at weblogic.deploy.internal.targetserver.DeploymentManager.handlePrepare(DeploymentManager.java:250)
      at weblogic.deploy.internal.targetserver.DeploymentServiceDispatcher.prepare(DeploymentServiceDispatcher.java:159)
      at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.doPrepareCallback(DeploymentReceiverCallbackDeliverer.java:171)
      at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.access$000(DeploymentReceiverCallbackDeliverer.java:13)
      at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer$1.run(DeploymentReceiverCallbackDeliverer.java:46)
      at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:545)
      at weblogic.work.ExecuteThread.execute(ExecuteThread.java:256)
      at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)
    Caused by: java.io.FileNotFoundException: Unable to find ejb-jar with uri ***.jar in ear at C:\***\split_src
      at weblogic.ejb.spi.EJBJar.<init>(EJBJar.java:81)
      at weblogic.ejb.container.deployer.EJBModule.buildClassFinder(EJBModule.java:201)
      at weblogic.ejb.container.deployer.EJBModule.init(EJBModule.java:313)

    Hi Ten,
    FYI, just by placing the ejb jar inside EAR project it will not be picked up for deployment. The EJB module has to be defined on EAR Module Assembly, and the steps are:
    > EAR Project | Properties, Deployment Assembly - Add EJB module
    NOTE: To verify the dependency you could try to export the EAR project to an .ear file. If the exported .ear file bundles ejb jar then deployment should work fine.
    As far as the deployment mode, OEPE supports WebLogic Split-source (default) and Exploded archive. In the default split-source mode, the .beabuild.txt contains the mapping to the actual files whereas in exploded archive the files are copied over to deployment staging location.
    Steps to modify deployment mode:
    > In the server view, right click on server configuration | Properties, select WebLogic | Publishing
    Please make sure the ejb module is defined appropriately and let me know if this resolves the issue.
    Thanks,
    Ram

Maybe you are looking for

  • Sound no longer works-Audi​o driver not plugged in

    I can't get sound from my computer, (Satellite 115D-S1120) even with a headset. I opened the control panel/ sound and under the playback tab it says: Digital Output Coexant Audio driver for AMD HDMI codec not plugged in I've looked on the net and thi

  • Please help the Police......

    I am a Sergeant with a police dept. in upstate NY. I am working on making all our paperwork PDF, the problem I am having is when I create a new  form I want to be able to save it "AS IS" in all of the patrol cars. We have one computer in the office t

  • Still sequence setup for max resolution

    Hi All, I am creating a still sequence with audio but no video using CS4 PrePro.  I would like to provide the end-product to someone to use on their computer at the highest possible resolution.  The sequence contains pan and zoom effects. Since there

  • XI call web service

    Is it possible for XI to call web service (ie, input and output parameter) with complex Java data type, eg, JavaBean( getter and setter method) AND ArrayList/Collection etc ? Is it required coding? Appreciate if can provide any related links. Thanks.

  • Suggestions for express card/cingular

    I'm looking for the best options for an express card/34 for macbook pro that will work with Cingular service (only available service option for offshore in the Gulf of Mexico region). I see that Cingular will soon be offering a GT Max 3.6 express car