Assembling jar with dependent classes

For efficient Applet use I'd like to copy selectively into a jar my applet classes plus all classes they are dependent on from a set of libraries, thus producing the minimum jar library with which the applets can run (obviously classes which are part of the standard JRE are not to be included.
Now I can see, in outline, how to write a program to achieve this, but I have this feeling I've read about such a facility somewhere. I thought it was in ANT but I can't find it in the ANT documentation now. If someone knows of a utility (preferably free) that can do this please can you save me the trouble.

Well, I think I've found one on sourceforge: http://genjar.sourceforge.net/
I've also found out how to get dependant classes from a .class file relatively simply. Class references are listed in the Constants Table which is near the start of the .class file format. I've written a piece of code which seems to fetch them OK.
package org.igis.assjar;
* <p>Read a class file stream and return all the referenced classes from the
* class.</p>
* @author  malcolmm
public class GetClassRefs {
    private static final byte CONSTANT_Class = 7;
    private static final byte CONSTANT_FieldRef = 9;
    private static final byte CONSTANT_MethodRef = 10;
    private static final byte CONSTANT_InterfaceMethodRef = 11;
    private static final byte CONSTANT_String = 8;
    private static final byte CONSTANT_Integer = 3;
    private static final byte CONSTANT_Float = 4;
    private static final byte CONSTANT_Long = 5;
    private static final byte CONSTANT_Double = 6;
    private static final byte CONSTANT_NameAndType = 12;
    private static final byte CONSTANT_Utfs = 1;
    private static final int [] lengths = new int[13];
    static {
        lengths[CONSTANT_Class] = 3;
        lengths[CONSTANT_FieldRef] = 5;
        lengths[CONSTANT_MethodRef] = 5;
        lengths[CONSTANT_InterfaceMethodRef] = 5;
        lengths[CONSTANT_String] = 3;
        lengths[CONSTANT_Integer] = 5;
        lengths[CONSTANT_Float] = 5;
        lengths[CONSTANT_Long] = 9;
        lengths[CONSTANT_Double] = 9;
        lengths[CONSTANT_NameAndType] = 5;
        lengths[CONSTANT_Utfs] = 1;
    private final static int magic = 0xcafebabe;
    String mainClass;
    String [] refs;
    /** Creates a new instance of GetClassRefs */
    public GetClassRefs(java.io.InputStream ins) throws java.io.IOException,java.lang.ClassFormatError {
        java.io.DataInputStream in = new java.io.DataInputStream(ins);
        Object[] constTable;
        int nRefs;
        if(in.readInt() != magic)
            throw new ClassFormatError("Bad class magic");
        in.skipBytes(4);
        int cpCount = in.readUnsignedShort();
        constTable = new Object[cpCount];
        nRefs = 0;
        for(int i = 1; i < cpCount; i++) {
            int tag = in.readUnsignedByte();
            switch(tag) {
                case CONSTANT_Utfs:
                    String clsName = in.readUTF();
                    if(clsName.length() > 0) {
                        if(clsName.charAt(0) == '[') {
                            do
                                clsName = clsName.substring(1);
                            while(clsName.charAt(0) == '[');
                            if(clsName.charAt(0) == 'L' && clsName.endsWith(";"))
                                clsName = clsName.substring(1, clsName.length() - 1);
                        constTable[i] = clsName;
                    break;
                case CONSTANT_Class:
                    nRefs++;
                    constTable[i] = new Integer(in.readUnsignedShort());
                    break;
                case CONSTANT_Long:
                case CONSTANT_Double:
                    i++;
                    in.skipBytes(8);
                    break;
                default:
                    if(tag < 0 || tag >= lengths.length || lengths[tag] == 0)
                        throw new ClassFormatError("Invalid constants tag " + tag);
                    in.skipBytes(lengths[tag] - 1);
                    break;
        in.skipBytes(2);
        int thisClass = in.readUnsignedShort();
        if(!(constTable[thisClass] instanceof Integer))
            throw new ClassFormatError("Invalid main class index");
        int cpp = ((Integer)constTable[thisClass]).intValue();
        if(!(constTable[cpp] instanceof String))
            throw new ClassFormatError("Invalid main class pointer");
        mainClass = (String)constTable[cpp];
        refs = new String[nRefs - 1];
        int j = 0;
        for(int i = 1; i < constTable.length; i++) {
            Object entry = constTable;
if(entry instanceof Integer) {
int idx = ((Integer)entry).intValue();
if(idx < 1 || idx >= constTable.length)
throw new ClassFormatError("Out of range class reference");
if(constTable[idx] instanceof String) {
if(i == thisClass)
mainClass = (String)constTable[idx];
else
refs[j++] = (String)constTable[idx];
else
throw new ClassFormatError("Class reference not string");
public String getMainClass() {
return mainClass;
public String[] getRefs() throws ClassFormatError {
return refs;

Similar Messages

  • How to create a Jar with only class files?

    Dear all,
    I want to create a jar file with only classes.My class files and java files are in different folders under com .
    say
    com
    in com there are two folders
    folder 1 -- subfolder 1
    folder 2 -- subfolder 2
    like this.
    If i want to create a jar file from com directory how should i give the jar command.Again my jar should contain only .class files.
    Any help will be appreciated
    Thanks
    lekshmi

    It doesn't work.Says "No such class or directory"
    Any other way Or is it possible to do so?Read the link I posted and create the statement to make your structure. I was thinking you were inside the com directory but if you are above it you will need something like this instead:
    jar -cf test.jar com\*.class com\subfolder1\*.class com\subfoler2\*.class
    But either way don't just copy and past this. Think about what is does so that you can make it work for you.
    Also, you might want to look into using Ant if you are going to be building this a lot.

  • Loading jars with same class loader

    Hi all,
    I need to tell Weblogic to load various jars using same class loader.
    "various jars" means jars that belong to different web applications. (weblogic 10)
    Is that possible ?
    PS: I can not change jar location, e.g. put them in common directory or so.

    Hi,
    If you don't want to change the JAR Locations then you can try the following..
    Option1). Add the Jar Location with the Jar file name in the Server classpath...of your server startScript (like startWebLogic.sh)
    CLASSPATH=${CLASSPATH}:/opt/app/myJars/first.jar:/opt/app/myJars/second.jar:
    But in this case the Jars which are there in the classpath...will be loaded using System Classloaders and will be different from Application Classloaders...but the Classes belonging to these Jars will be available to your applications because final classpath will be the Summation of following:
    Final Classpath = Bootstrap classloader (+) System ClassLoader (including Extended Classpath from Domain Lib) (+) Application ClassLoader (+) AppModule ClassLoader
    Option2). If you dont want to add the Jars in the Server ClassPath then u can use "Optional Package" deployment feature provided by WebLogic...In this case you can deploy the JARs in WebLogic Server as Optional Packages from the Same Location where it is at present...(as you dont want to change the Jar locations) like following: http://jaysensharma.wordpress.com/2009/12/06/optional-packages/
    Thanks
    Jay SenSharma

  • 2 Jars with same class name. NoSuchMethod. Can't change classpath

    I have overloaded a method in a class that came with an openSource package.
    Things were fine until I implemented my components in a new version of the Server application; when I discovered that the it uses the same openSource package bundled in its classpath.
    This results into a NoSuchMethod exception since I have overloaded the method with new argument types.
    1. I cannot remove or shuffle this JAR from the Server's classpath, since that would stop something else.
    2. I cannot change my code since it is implemented in a lot of places.
    Has anyone called a specific method of a jar? like E.g. "someJar.jar".SomeClass.someMethod (arg);
    If yes how?
    The above code is not possible syntactically, but I have put it for ease in interpreting the problem.
    Any input will be appreciated.
    NOTE: I cannot disclose the names of products for company policy issues.

    Just some ideas...
    1. I cannot remove or shuffle this JAR from the
    Server's classpath, since that would stop something
    else.Some servers allow for multiple classpaths - i.e. you can separately specify the classpath that the server itself uses from the one that your hosted applications will be using.
    Also, if your changes to the openSource code are only the addition of an overloaded method, why couldn't you just substitute your jar for the one the server is using, why would that break the server?
    2. I cannot change my code since it is implemented in
    a lot of places.That sounds lame. You can't do a global replace? How about just changing the package name?
    Has anyone called a specific method of a jar? like
    E.g. "someJar.jar".SomeClass.someMethod (arg);
    If yes how?Yes, but it's not as simple as your pseudo-code...
    You can use URLClassLoader to load a specific class from a specific jar file URL, and then use reflection to get the method you want from it, and then call it.
    good luck
    j

  • Creating a JAR with main class def.

    Hello Amigos,
    I am having problems creating a jar file. My problem is that when I create the jar file and insert this line in my manifest file
    Main-Class: classnamewhere classname is what ever class you want as explain here:
    http://java.sun.com/developer/Books/javaprogramming/JAR/basics/run.html
    Then I have the jar file and double click it and get the Fail to load Main-Class error.
    This is what I am typing in the command line:
    jar cmf MANIFEST.MF myapp.jar *.class
    When I go back and extract all the files out of the jar file the manifest files looks like this:
    Manifest-Version: 1.0
    Created-By: 1.3.1 (IBM Corporation)Thanks in advance

    No ofense but... You got to be kidding me!?!?!Not kidding at all. Had you read the online tutorial, you'd have found the following line:
    Warning: The text file must end with a new line or carriage return. The last line will not be parsed properly if it does not end with a new line or carriage return.
    Have you tried it yet?

  • Classes12.jar with connection.class file

    Hi All,
    I want to download classes12.jar file which contains connection.class which is used for datasoruce.Can you please get me the download URL for the same.Please help me out as i got classes12.jar file but it doesnt contain the connection.class,if it doesnt have the connection.class it gives me a JMS:112 error which says invalid connection.
    Do please help me out in getting the classes12.jar file link for download.
    Thnaks in advance.
    Regards,
    Kalyan

    What is the Oracle database version? What is the JDK version? Various versions of classes12.jar are available.
    Please download classes12.jar from
    http://www.oracle.com/technology/software/tech/java/sqlj_jdbc/index.html

  • How to pack .class or .jar with jvm into an exe file?

    In fact, .class or .jar files are middle layer files who need JVM to explain and run them. Sometimes it's unconvenient. Why not provide some tools to pack .class or .jar with jvm into exe file?

    because java should be able to run on any OS. That is why SUN doesn't provide such tool. There are other company's who does provide such tool. Like JBuilder enterprise

  • Browser Capability of JavaFX application with dependancy jars

    Hi,
    I am working in javafx Project, i have an issue in launching the application in browser, getting error to load the dependency jars and dependency projects. Please someone help on this.

    I wonder what you expect to happen now. "Something goes wrong, please someone help". I assure you there are people who would like to help, but with no information at all they really can't do anything.
    So provide more information. What steps are you taking to deploy the application? What error do you get -exactly-; don't try to describe it, post the exact error that you get.

  • How do you compile Flex-dependent classes with ASC?

    Hi,
    I've been trying unsuccessfully for most of the evening to compile a .as file that relies on mx.collections.ListCollectionView using asc. I figured I could just import the Flex framework SWCs from the command line with asc, but asc doesn't seem to respect SWCs - it only seems to respect .abc files.
    So, I've spent most of my time trying to compile the Flex framework into a single .abc file that I can import whenever I want to compile a class that relies on Flex. I figured I could make a base .as file with include statements for all of the Flex .as files (copying the approach I saw for files like builtin.as) and compile that, but all I seem to get are compiler errors - mostly "[Compiler] Error #1181: Forward reference to base class (base class name)."
    I have a feeling I'm doing this completely the wrong way. I'd very much appreciate any assistance that anybody can offer me.
    Thanks,
    - max

    <div class=Section1><br /><br /><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";<br />color:#1F497D'>I use MXMLC to compile my .as file projects.<o:p></o:p></span></p><br /><br /><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";<br />color:#1F497D'><o:p> </o:p></span></p><br /><br /><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";<br />color:#1F497D'>Alex Harui<o:p></o:p></span></p><br /><br /><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";<br />color:#1F497D'>Flex SDK Developer<o:p></o:p></span></p><br /><br /><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";<br />color:#1F497D'><a href="http://www.adobe.com/"><span style='color:blue'>Adobe<br />Systems Inc.</span></a><o:p></o:p></span></p><br /><br /><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";<br />color:#1F497D'>Blog: <a href="http://blogs.adobe.com/aharui"><span<br />style='color:blue'>http://blogs.adobe.com/aharui</span></a><o:p></o:p></span></p><br /><br /><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";<br />color:#1F497D'><o:p> </o:p></span></p><br /><br /><div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in'><br /><br /><p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>From:</span></b><span<br />style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'> Maxim Porges<br />[mailto:[email protected]] <br><br /><b>Sent:</b> Monday, February 09, 2009 9:22 PM<br><br /><b>To:</b> [email protected]<br><br /><b>Subject:</b> How do you compile Flex-dependent classes with ASC?<o:p></o:p></span></p><br /><br /></div><br /><br /><p class=MsoNormal><o:p> </o:p></p><br /><br /><p class=MsoNormal style='margin-bottom:12.0pt'>A new discussion was started by<br />Maxim Porges in <br><br /><br><br /><b>Developers</b> --<br><br />  How do you compile Flex-dependent classes with ASC?<br><br /><br><br />Hi, <br><br /><br><br />I've been trying unsuccessfully for most of the evening to compile a .as file<br />that relies on mx.collections.ListCollectionView using asc. I figured I could<br />just import the Flex framework SWCs from the command line with asc, but asc<br />doesn't seem to respect SWCs - it only seems to respect .abc files. <br><br /><br><br />So, I've spent most of my time trying to compile the Flex framework into a<br />single .abc file that I can import whenever I want to compile a class that<br />relies on Flex. I figured I could make a base .as file with include statements<br />for all of the Flex .as files (copying the approach I saw for files like<br />builtin.as) and compile that, but all I seem to get are compiler errors -<br />mostly &quot;[Compiler] Error #1181: Forward reference to base class (base<br />class name).&quot; <br><br /><br><br />I have a feeling I'm doing this completely the wrong way. I'd very much<br />appreciate any assistance that anybody can offer me. <br><br /><br><br />Thanks, <br><br /><br><br />- max <o:p></o:p></p><br /><br /><div class=MsoNormal><br /><br /><hr size=2 width=200 style='width:150.0pt' align=left><br /><br /></div><br /><br /><p class=MsoNormal style='margin-bottom:12.0pt'>View/reply at <a<br />href="http://www.adobeforums.com/webx?13@@.59b7d5d2">How do you compile<br />Flex-dependent classes with ASC?</a><br><br />Replies by email are OK.<br><br />Use the <a<br />href="http://www.adobeforums.com/webx?280@@.59b7d5d2!folder=.3c060fa3">unsubscribe</a>< br />form to cancel your email subscription.<o:p></o:p></p><br /><br /></div>

  • Update jar file with modified class files

    hi all,
    I'm developing a jar utility for updating a jar file with modified class files as of now i have reached a point where in i can browse files and set it to required location
    i.e i have developed a swings GUI application using JfileChooser and browse the files ..now my requirement is to update the jar files with modified class file
    GUI looks like below
    ....enter the modified class file ----> d:\c.class
    ....enter the jar file path ---> d:\a.jar
                                                          update button now i have the requirement as
    1> when i click on the update button ,my jar file (a.jar) should get updated with the latest class file (c.class)
    can u help me to achieve this requirement.???
    im stuck with this,,,if u can provide me wit the code for updating jar file with latest class file...it will really be helpful
    if u can help me with the code on click on update button it will be really helpful
    Thanks and expecting a faster response from u all java experts....

    Please find my query in bolds...i have written the partial code now,i need some help now
    hope u guys can help me out...
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    import java.io.File;
    public class FileExplorer extends JDialog implements ActionListener
         JTextField txtLocation_class;
         JButton btnBrowse_class;
         JLabel label_class;
         JTextField txtLocation_jar;
         JButton btnBrowse_jar;
         JLabel label_jar;
         JButton updatebutton;
         public FileExplorer()
                   setSize(600,300);
                   //for class files
                   label_class = new JLabel("Please select Modified Class File");
                   txtLocation_class= new JTextField(20);
                   btnBrowse_class = new JButton("Browse");
                   btnBrowse_class.addActionListener(this);
                   //for jar files               
                   label_jar = new JLabel(" Please select the Jar file");
                   txtLocation_jar= new JTextField(20);
                   btnBrowse_jar = new JButton("Browse");
                   btnBrowse_jar.addActionListener(this);
                   ActionListener updateListener = new ActionListener(){
                    public void actionPerformed(ActionEvent ae){
                     if(ae.getActionCommand().equalsIgnoreCase("Update")){               
                      System.out.println("ae.getActionCommand() :: "+ae.getActionCommand());
                      System.out.println("Update Button is pressed");               
                    *//Query :how do i access FilePath and FilePath1 here which*
    *                // has been set in public void actionPerformed(ActionEvent ae)*
    *                //method below*
    *                // FilePath  ---??*
    *                // FilePath1  ---??*
    *                // how do i access the above 2 parameters*
    *                //Query :on click of update button i have to pass*
    *                //two parameters FilePath and FilePath1 to*
    *                //perform some functionality. please help me*
    *                //to achieve this..how do i access Filepath and Filepath1*
    *                //here which has been set below.*
                     } // end of if               
                   } // end of actionPerformed
                };// end of ActionListener
                  updatebutton = new JButton("Update");
                  updatebutton.addActionListener(updateListener);
                   //adding to the panel               
                   JPanel pnl = new JPanel();
                   pnl.add(label_class);
                   pnl.add(txtLocation_class);
                   pnl.add(btnBrowse_class);
                   pnl.add(label_jar);
                   pnl.add(txtLocation_jar);
                   pnl.add(btnBrowse_jar);
                  pnl.add(updatebutton);
                   getContentPane().add(pnl);                         
         public void actionPerformed(ActionEvent ae)
              Object obj=ae.getSource();
              if(obj==btnBrowse_class)
                   final JFileChooser fcstudent = new JFileChooser();
                   int rtrnval = fcstudent.showOpenDialog(this);
                   if(rtrnval==JFileChooser.APPROVE_OPTION)
                        try
                             File file=fcstudent.getSelectedFile();                         
                             String path = file.getPath();
                             System.out.println("This is Path:"+path);
                             txtLocation_class.setText(""+path);
                             String FilePath=txtLocation_class.getText();
                             System.out.println("FilePath is ::"+FilePath);                                        
                        catch(Exception ex)               
                             ex.printStackTrace();
              }else if(obj==btnBrowse_jar){
                             final JFileChooser fcstudent = new JFileChooser();
                             int rtrnval = fcstudent.showOpenDialog(this);
                             if(rtrnval==JFileChooser.APPROVE_OPTION)
                                  try
                                       File file=fcstudent.getSelectedFile();                         
                                       String path1 = file.getPath();
                                       System.out.println("This is Path:"+path1);
                                       txtLocation_jar.setText(""+path1);
                                       String FilePath1=txtLocation_jar.getText();
                                       System.out.println("FilePath is ::"+FilePath1);                                        
                                  catch(Exception ex)               
                                       ex.printStackTrace();
         public static void main(String arg[]){
                   FileExplorer Exm= new FileExplorer();
                   Exm.setVisible(true);
    }

  • Adding all dependent classes of an applet to make a jar file

    Hi everyone,
    I have this problem which I was not able to find a solution for, So I truly appreciate any feedback on this.
    I have a project on eclipse which is basically an applet.
    This applet is using some classes in some jars that I have imported as libraries for this project.
    Everything works on eclipse with no problem. However I need to make a jar file of the applet and required classes to use it in an html page.
    Now that's the part I have been facing difficulties, cuz I have to include all the classes that the applet is using from other jar
    files. And I can not come up with a way to find out all those classes.
    On the other side if I include the whole jars then my applet goes over 100 meg and would be useless.
    I am going to give an example of the problem I have in hope of making it a bit clear.
    I have a applet, which uses some classes from some jars. i.e., class A. but class A itself need class B and etc.
    Now how can I find all these dependencies since I have to include them along the applet in the jar file I am going to make.
    Once again I appreciate any feedback and sorry that is a long question.

    Fractalz wrote:
    . . . Now that's the part I have been facing difficulties, cuz I have to include all the classes that the applet is using from other jar
    files. And I can not come up with a way to find out all those classes.See the Class-Path: parameter (of a Manifest file) documentation here:
    http://java.sun.com/javase/6/docs/technotes/guides/jar/jar.html#Manifest-Overview

  • How to run JavaFX jar with JRE7 on MAC OS Lion 10.7.5 ?

    I have created a bundled JavaFX application jar with ANT on Windows 8 O.S. , 64 bit machine. I have JavaFx2.0 and Java 1.7.0_09 installed on my Window O.S.
    <target name="CreatingJars" depends="Compiling" description="generate the distribution" >
                        <taskdef resource="com/sun/javafx/tools/ant/antlib.xml"     
                                 uri="javafx:com.sun.javafx.tools.ant" classpath="${env.JAVA_HOME}/lib/ant-javafx.jar"/>
                              <mkdir dir="${WorkingFolder}/temp/libs"/>
                             <copy todir="${WorkingFolder}/temp/libs">
                             <fileset file="${WorkingFolder}/CustomJars/ProjectLib.jar">
                             </fileset>
                             </copy>
                             <copy todir="${WorkingFolder}/temp/libs">
                             <fileset dir="${WorkingFolder}/libs">
                             </fileset>
                        </copy>
                        <fx:jar destfile="${WorkingFolder}/${app.name}.jar">
                        <fx:application mainClass="${main.class}"/>
                        <fx:resources>
                             <fx:fileset dir="${WorkingFolder}/temp/"/>
                        </fx:resources>
                        <fileset dir="${WorkingFolder}/build"/>
                        <fileset dir="${WorkingFolder}/resources"/>
                        </fx:jar>
         </target> When I am trying to run that JavaFX application jar on MAC OS Lion 10.7.5 using
    java -jar application.jar
    It always shows a dialog "The application require a newer version of Java Run-time" with download link. Even I have downloaded and successfully installed it on my MAC machine but it still shows me the same window.
    java -version is always point to 1.6.
    Then I searched for Java Preferences to point the current JRE 1.7 but I could find Java Preferences at Applications -> Utilities -> Java -> Java Preferences.
    I would like to know -- how to run JavaFX jar with JRE7 on MAC OS Lion 10.7.5? Is their any other way to run the JavaFX application JAR with JRE7?

    Do I need to download the whole JAVA 1.7 on MAC to run the JAR? No
    Can not I run the Jar file with Jre7?Yes, you can.
    This may be because I have downloaded the JRE 1.7Yep, that's correct, the java_home command only works for jdk's - sorry for the confusion.
    For jre7+ versions, only a single Oracle jre version is allowed to be installed on the machine at a time - making a tool like java_home redundant for jre checking.
    Weirdly, jre7u10 does not supplant the Apple Java on the command line path by default. If you just type java -v, then the Apple java version will displayed if you have an old Java 6 from Apple and a new Oracle jre7+.
    The Oracle jre is always located under (also somewhat strangely):
    /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/javaTo test jar launching, I used the willow JavaFX browser pre-release jar available here:
    http://code.google.com/p/willow-browser/downloads/detail?name=Willow-0.1-prerelease.jar
    Then I launched the jar from the command line using:
    /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java -jar Willow-0.1-prerelease.jar The JavaFX jar ran fine on jre7 with the above machine.
    The test machine was running Mac OS X 8 with Oracle jre7u10 installed as well as the Apple Java 6 runtime, but no Oracle jdk7+ installed.

  • Dependent Class files of EJBs...

    I have few dependent class files related to all EJBs (for example common exceptione). Right now all these dependent classes are duplicated in all the EJB jars. Is there any way get rid out of this duplication (other than putting in to system class path). i.e one single jar containing all dependent class files should be deployed along with the (EJBs jars - dependent calsses) in the EAR file.
    Thanx in Adv,
    Potluri

    Hi,
    you can set a classapth in the MANIFEST.MF filewith the parameter Class-Path for relative URLs

  • Using third party jars with Oracle Business Rules

    Hi
    I am working on Oracle AS 10g release 2.
    We are using Oracle Business Rules in integration with Oracle BPEL.
    While using third party jars however, Oracle Business Rules end is facing errors.
    Error during unmarshallingProvider com.sun.xml.bind.ContextFactory_1_0_1 not found
    oracle.classloader.util.AnnotatedClassNotFoundException:
    Missing class: com.sun.xml.bind.ContextFactory_1_0_1
    Dependent class: javax.xml.bind.ContextFinder
    Loader: oracle.xml:10.1.0_2
    Code-Source: /D:/oracleasr3/lib/xml.jar
    Configuration: <code-source> (ignore manifest Class-Path) in META-INF/boot.xml in D:\oracleasr3\j2ee\home\oc4j.jar
    Can anybody help in figuring out where Jaxb jars(3rd party jars) are to be kept so that OAS access it?
    We tried using the applib folder to load the jars but we are getting class loading errors.
    When new instances are created, class loading is not happening.
    Pls help.
    Thanks
    Kavya

    Are you using Application Server Release 3 or Release 2? There are different versions listed in your mail.
    I think you probably want to add this as a shared library via EM and then import the shared library to your application with the application's xml config 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