Shared utility class file among servlets and Ejb

I have the following context:
XXX.war:
WEB-INF\
Jsp files
WEB-INF\classes\
WEB-INF\lib\
WEB-INF\web.xml
WEB-INF\weblogic.xml
YYY.jar
META-INF\
Class files
META-INF\ejb-jar.xml
META-INF\weblogic-ejb-jar.xml
In XXX/WEB-INF/classes/…/Util.class
In YYY/util.class
How can I share Util.class between both XXX and YYY?
Cheers,

If you are on 8.1 check out
http://e-docs.bea.com/wls/docs81/programming/classloading.html#1069420
The larger document talks about how classloading works in Weblogic
Dave
<mehdi valizadeh> wrote in message news:[email protected]..
I have the following context:
XXX.war:
WEB-INF\
Jsp files
WEB-INF\classes\
WEB-INF\lib\
WEB-INF\web.xml
WEB-INF\weblogic.xml
YYY.jar
META-INF\
Class files
META-INF\ejb-jar.xml
META-INF\weblogic-ejb-jar.xml
In XXX/WEB-INF/classes/???/Util.class
In YYY/util.class
How can I share Util.class between both XXX and YYY?
Cheers,

Similar Messages

  • Servlet and EJB on different machine: Security propagation

    Hi all,
    I have an application, where my servlets and EJBS are deployed on the same machine.So
    when in my servlet a user need to authenticate himself, security credentials are
    propagated to the EJB automatically.I'd like to know in the case where the components
    are on different machine if I need to put the credential in my InitialContext
    when my servlet calls my EJB or if it is also done automatically.
    Cheers
    romain

    Say your stub is in a jar called stub.jar.
    You need to put that stub somewhere that it can be reached through a protocol for which Java has a URL type - so you can put it on a shared file system and use a file URL or behind an http server and use an http URL.
    Let's use http - put stub.jar at the docroot of a web server.
    Then, when you start your SERVER code, include this VM parameter:
    -Djava.rmi.server.codebase="http://<serveraddress>stub.jar"
    Now your client will be able to use http to load the stub file out of stub.jar through http.
    If you do use a file URL, make sure the shared directory you put your jar in is not on the client's classpath.

  • Error while converting class file to exp and jca file

    error while converting *.class file to *.exp and *.jca file
    =====================================================================================================================
    linux-y60u:/home/admin/java_card_kit-2_2_1/samples/src # converter -exportpath "/home/admin/java_card_kit-2_2_1/lib/" com/sun/javacard/samples/HelloWorld 0x00:0x01:0x02:0x03:0x04:0x05:0x06:0x07:0x0b 1.0 -v -applet 0x00:0x01:0x02:0x03:0x04:0x05:0x06:0x07:0x0b:0x01 Identity
    Java Card 2.2.1 Class File Converter, Version 1.3
    Copyright 2003 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms.
    parsing /home/admin/java_card_kit-2_2_1/samples/src/com/sun/javacard/samples/HelloWorld/HelloWorld.class
    parsing /home/admin/java_card_kit-2_2_1/samples/src/com/sun/javacard/samples/HelloWorld/Identity.class
    error: com.sun.javacard.samples.HelloWorld.HelloWorld: unsupported class file format of version 50.0.
    error: com.sun.javacard.samples.HelloWorld.Identity: unsupported class file format of version 50.0.
    conversion completed with 2 errors and 0 warnings.
    =====================================================================================================================

    i compile a file javacard use this command:
    ===
    javac -source 1.3 -target 1.1 -g -classpath ./classes:../lib/api.jar:../lib/installer.jar src/com/sun/javacard/samples/Identity/Identity.java
    ===
    and try to convert this class use this command
    ===
    /home/xnuxerx/admin/java_card_kit-2_2_1/bin/converter -exportpath "/home/xnuxerx/admin/java_card_kit-2_2_1/lib/" com/sun/javacard/samples/Identity 0x00:0x01:0x02:0x03:0x04:0x05:0x06:0x07:0x0b 1.0 -v -applet 0x00:0x01:0x02:0x03:0x04:0x05:0x06:0x07:0x0b:0x01 Identity
    ===
    result convert:
    ===
    Java Card 2.2.1 Class File Converter, Version 1.3
    Copyright 2003 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms.
    parsing /home/xnuxerx/admin/java_card_kit-2_2_1/samples/classes/com/sun/javacard/samples/Identity/Identity.class
    converting com.sun.javacard.samples.Identity.Identity
    error: export file framework.exp of package javacard.framework not found.
    conversion completed with 1 errors and 0 warnings.
    ===
    why ??
    please your comment for this problem.
    thank 4 all.

  • How can i upload files in servlets and also using jsp

    means that uploading files(.doc) or any files by using servlets and jsps

    yawmark wrote:
    saichand wrote:
    means that uploading files(.doc) or any files by using servlets and jsps
    [http://www.google.com/search?q=How+can+i+upload+files+in+servlets+and+also+using+jsp]
    ~Good topic titles are indeed brilliant search keywords. It's sad to see that it won't even come in the mind of the topicstarters to Google it before posting the topic.

  • When to Use Servlet only, EJB only and, both Servlet And EJB???

    I have a question, If I want to build a Web application. Sometime i found that there is no need to use EJB as Servlet already provide that functionality.
    Can anyone tell me when do I use Pure Servlet? When do I use Pure EJB and, When do I use Both EJB and Servlet???
    I am very interesting in it.
    Thanks.
    Jack

    EJB and servlets are two different things. Trying to compare them doesn't really make sense. A web application is always going to need some way to process Http requests and this in Java is done accomplished through Servlets (or jsp pages which in turn also use servlets).
    EJBs are the basis of distributed cross-platform objects. They are handled through name services and stored in databases. An Entity Bean can be "brought back to life" as long as it's info is stored in a database. Regardless of a server being restarted. All this database support behind an Entity Bean (transactions, queries etc.) are very transparent to the programmer. They are provided by the EJB vendor.
    The class properties of a Servlet (or class-level member variables) are shared among all requests (running thread instances of the service method). That's why they should be used with a lot of caution. This feature can be very useful but if used improperly can also be very vulnerable to security and synchronization issues.
    I'm not an EJB expert but this explanation should give you some idea of what EJBs are all about.

  • HELP! File Upload Servlet and Internet Explorer

    Hello people. I hope this is an easy problem to solve...
    I have a servlet upload program that works using Mozilla browser (www.mozilla.org), but for some reason it doesn't work using Microsoft IE. The servlet is also using the servlet upload API from Apache (commons).
    I'm using IE version 6.0.2800.1106 in a Win98SE host computer. I get a cannot find path specified error message (see below). At work, I also get the same error message using IE, but don't know what version. The OS is XP. Unfortunately, at work, I can't install Mozilla browser (or any software-company policy) to see if Mozilla works there too. I would've like to have tested to see if the upload program worked on Mozilla on a truly remote computer.
    So I figured, it must be a IE configuration issue, but darn it!! I began by resetting IE to default settings, but still have the problem, I played around with several different combinations of settings in "Tools"-->"Internet Options...", and I still get the error message. Someone PLEASE HELP ME!!!
    Dunno, if it will help, I've also pasted the upload servlet source code below and the html file that's calling the upload servlet, but you still need the Apache commons file upload API.
    Trust me on this one folks, for some reason it works for Mozilla, but not for IE. With IE, I can at least access web server, and therefore, the html file that calls the upload servlet , so I don't think it's a Tomcat configuration issue (version 5.0). I actually got the code for the file upload servlet from a book relatively new in the market (printed in 2003), and it didn't mention any limitations as far as what browser to use or any browser configuration requirements. I have e-mailed the authors, but they probably get a ton of e-mails...
    Anyone suggestions?
    Meanwhile, I will try to install other free browsers and see if the file upload program works for them too.
    ERROR MESSAGE:
    "HTTP Status 500 -
    type Exception report
    message
    description The server encountered an internal error () that prevented it from fulfilling this request.
    exception
    javax.servlet.ServletException: C:\TOMCAT\webapps\MyWebApps\files\C:\WINDOWS\Desktop\myfile.zip (The system cannot find the path specified)
         com.jspbook.FileUploadCommons.doPost(FileUploadCommons.java:43)
         javax.servlet.http.HttpServlet.service(HttpServlet.java:763)
         javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
    root cause
    java.io.FileNotFoundException: C:\TOMCAT\webapps\MyWebApp\files\C:\WINDOWS\Desktop\myfile.zip (The system cannot find the path specified)
         java.io.FileOutputStream.open(Native Method)
         java.io.FileOutputStream.(FileOutputStream.java:176)
         java.io.FileOutputStream.(FileOutputStream.java:131)
         org.apache.commons.fileupload.DefaultFileItem.write(DefaultFileItem.java:392)
         com.jspbook.FileUploadCommons.doPost(FileUploadCommons.java:36)
         javax.servlet.http.HttpServlet.service(HttpServlet.java:763)
         javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
    note The full stack trace of the root cause is available in the Tomcat logs.
    Apache Tomcat 5.0.16"
    FILE UPLOAD SERVLET source code:
    import java.io.*;
    import javax.servlet.*;
    import javax.servlet.http.*;
    import org.apache.commons.fileupload.*;
    import java.util.*;
    public class FileUploadCommons extends HttpServlet {
    public void doPost(HttpServletRequest request,
    HttpServletResponse response)
    throws IOException, ServletException {
    response.setContentType("text/html");
    PrintWriter out = response.getWriter();
    out.println("<html>");
    out.print("File upload success. <a href=\"/MyWebApp/files/");
    out.print("\">Click here to browse through all uploaded ");
    out.println("files.</a><br>");
    ServletContext sc = getServletContext();
    String path = sc.getRealPath("/files");
    org.apache.commons.fileupload.DiskFileUpload fu = new
    org.apache.commons.fileupload.DiskFileUpload();
    fu.setSizeMax(-1);
    fu.setRepositoryPath(path);
    try {
    List l = fu.parseRequest(request);
    Iterator i = l.iterator();
    while (i.hasNext()) {
    FileItem fi = (FileItem)i.next();
    fi.write(new File(path, fi.getName()));
    catch (Exception e) {
    throw new ServletException(e);
    out.println("</html>");
    public void doGet(HttpServletRequest request,
    HttpServletResponse response)
    throws IOException, ServletException {
    doPost(request, response);
    HTML PAGE that calls the upload servlet:
    <html>
    <head>
    <title>Example HTML Form</title>
    </head>
    <body>
    <p>Select a file to upload or browse
    currently uploaded files.</p>
    <form action="http://##.##.##.####/MyWebApp/FileUploadCommons"
    method="post" enctype="multipart/form-data">
    File: <input type="file" name="file"><br>
    <input value="Upload File" type="submit">
    </form>
    </body>
    </html>
    Thanks in advance for any assistance.
    -Dan

    I'm guessing what is happening is that Mozilla tells the servlet "here comes the file myfile.zip". The servlet builds a file name for it:
        String path = sc.getRealPath("/files");
        // path is now C:\TOMCAT\webapps\MyWebApps\files\
        fi.write(new File(path, fi.getName()));
        // append myfile.zip to "path", making it C:\TOMCAT\webapps\MyWebApps\files\myfile.zipIE, however, tells "here comes the file C:\WINDOWS\Desktop\myfile.zip". Now imagine what the path+filename ends up being...
    So what you want to do is something along the lines of (assuming Windoze):
    public static String basename(String filename)
        int slash = filename.lastIndexOf("\\");
        if (slash != -1)
            filename = filename.substring(slash + 1);
        // I think Windows doesn't like /'s either
        int slash = filename.lastIndexOf("/");
        if (slash != -1)
            filename = filename.substring(slash + 1);
        // In case the name is C:foo.txt
        int slash = filename.lastIndexOf(":");
        if (slash != -1)
            filename = filename.substring(slash + 1);
        return filename;
        fi.write(new File(path, basename(fi.getName()));
        ....You can make the file name check more bomb proof if security is an issue. Long file names trying to overflow something in the OS, NUL characters, Unicode, forbidden names in Windos (con, nul, ...), missing file name, ...

  • How to include a jsp file in servlets and javabeans

    Hi to all..I have a jsp file which contains some database connections and I would like to include in that file in my servlets and javabeans.What coding can i use?Can show me sample coding.

    Hi to all..I have created a javabean storing the
    database connections. How do i include and call that
    bean in my servlet and javabeans?Can pls show me some
    sample coding?I am new to servlets and beans.The same way you do with normal Java Classes. If you are new to Java, I suggest you go to http://java.sun.com/docs/books/tutorial/index.html and look through the first couple of tutorials.
    As a note, it is best to put all your objects into packages, especially if you use JDK 1.4 or higher.

  • Placing class files for servlets in j2ee

    i am new to java servlets. i recently installed j2ee v1.4 sdk. i have gotten my first file that imports packages to compile. i now need a path to place .class files and .jar files. everyone says web-inf/classes and web/lib. due to the directory structure paths are so long. can someone give me the right path in j2ee v1.4 (C:\Sun\Appserver) to place these .class files and .jar files. if there is anything else i need to do before i can run a servlet, please inform me. i just want to run this silly helloWorld servlet. any suggestions would be greatly appreciated.

    Hi rickjamesb_tch,
    What you have heard is correct - you need to place your class files in the WEB-INF's classes directory (or jar files in the lib directory).
    To give you a little background, J2EE servers use custom ClassLoaders (a set of Java Classes that actually load the class into the JVM). The top-level class loaders has classes that are accessible through the JVM (and are usually picked up from the classpath).
    The other class loaders load classes that are only accessible within a particular web (or enterprise) application. These classloaders pick classes from the WEB-INF directory. These classloaders also have the capability of dynamically re-loading classes (eg when you change your .jsp file). Finally, the classes loaded are only visible within the web-application so that they do not pollute the global namespace.
    Hope that helps.
    Of course, the J2EE specification goes into a lot of depth about class loading, but unless you are designing an application server, you need not understand those details and specifics - just understanding where to place your classes is enough.

  • Problems deployment servlet and ejb

    Hello,
              I'm Having the following problem hopefully someone can help me.
              I'm working in a visualcafe 4.5 project and I have to external jar
              files
              one containing an EJB the other cotaining some classes.
              testservlet.war : deployed by VC
              ejb.jar
              xxx.jar
              Deploying from VC is no problem but when I want to start the
              server it can not find some classes which are in the xxx.jar file
              containing the classes. But when I open the xxx.jar I see that they
              are located in WEB-INF/classes.
              My first Idea is that it could be a classloader problem
              In the startweblogic.cmd I add the testservlet.war to the classpath
              (Project options)
              In the ejbc additional classpath entrys of the testservlet.jar I add
              the xxx.jar.
              In the server additional classpath I added both ejb.jar and the
              xxx.jar
              can someone tell me where it is going wrong???
              Thanks
              Oskar
              

    Depoly them both in an EAR file. You will have to edit the Class-Path: property in each of the MANIFEST.MF files to make the proper path to the Singleton visible to all three, as well.

  • Servlet jndi lookup to remote EJB, servlet and EJB not in the same application

    Hi,
    I think that the subject explain my problem.
    I have Oracle IAS9i 9.0.2.0.0, and JDeveloper 9.0.2.829
    I have deployed and EJB in IAS9i and i want to use from the developer machines, which have JDeveloper.
    how can i to do remote calls from JDeveloper?.
    I have modifed the orion-application.xml, and added remote=true.
    I have modifed the rmi.xml and added the hosts where the Jdeveloper placed.
    Any ideas?
    Thanks and cheers
    P.D The app server and jdeveloper are in the same net.
    if it is posible replys me to [email protected] too.

    Steps to access a remote EJB from within OC4J
    ++++++++++++++++++++++++++++++++++++++++++++++
    1) Deploy EJB application (ApplicationRemote) to remote container (REMOTE)
    "java -jar admin.jar -deploy ormi://REMOTE.hostname:REMOTE.port REMOTE.username REMOTE.password -deploy -file ApplicationRemote.ear
    -deploymentName ApplicationRemote"
    2) Ensure that local application (ApplicationLocal) has ejb-ref tags for remote EJBs accessed (in web.xml or ejb-jar.xml)
    3) Deploy to local container (LOCAL) an empty application (ApplicationEmpty) with the same name as the remote application (ApplicationRemote)
    "java -jar admin.jar -deploy ormi://LOCAL.hostname:LOCAL.port LOCAL.username LOCAL.password -deploy -file ApplicationEmpty.ear -deploymentName
    ApplicationRemote"
    5) Deploy local application (ApplicationLocal) to local container (LOCAL)
    "java -jar admin.jar -deploy ormi://LOCAL.hostname:LOCAL.port LOCAL.username LOCAL.password -deploy -file ApplicationLocal.ear -deploymentName
    ApplicationLocal"
    4)Restart local container
    ApplicationEmpty should consist of just an application.xml file - no modules. The same file can be deployed with different application names for all the remote
    applications that must be accessed.
    ApplicationLocal should access the remote EJB by using the following JNDI properties
    java.naming.factory.initial = "com.evermind.server.rmi.RMIInitialContextFactory"
    java.naming.provider.url = "ormi://REMOTE.hostname:REMOTE.port/ApplicationRemote"
    java.naming.security.principal = "REMOTE.username"
    java.naming.security.credentials = "REMOTE.password"
    regards
    Debu Panda

  • JNDI tree access for code outside servlets and EJBs and JSPs

    Can code outside EJBs, Servlets and JSPs have access to the JNDI tree?
    For example, in a web application, web.xml has a env-entry declaration which I want to access from a POJO which is called by a JSP in the web app. Is this permissible?

    Can code outside EJBs, Servlets and JSPs have access
    to the JNDI tree?
    For example, in a web application, web.xml has a
    env-entry declaration which I want to access from a
    POJO which is called by a JSP in the web app. Is
    this permissible?Yes. Read the JNDI tutorial.

  • Servlets and EJBs

    Hi,
    My question, is possible to access from servlet some EJB through EJB's local interface, even these participate two different containers?
    Regards
    Krzysztof

    I am not that good with EJB , but I donot think so
    EJB Local interfaces only work from othe EJB's AFAIK,

  • Servlets and EJBs in weblogic 5.1

              Me somebody can say like communicating servlet that this in a machine with Weblogic 5,1 with a EJB in another machine also with weblogic5.1
              When trying gives it to me Comunication Exception .
              But if I have the 2 in the same machine it works well
              

    We have the same scenario and had the same CommunicationException.
              We had the remote & home interfaces of the ejb and the helper classes
              avaliable
              to the server#1 , and still encountered the following CommunicationException
              Tue Feb 06 17:53:54 GMT+05:30 2001:<I> <ServletContext-General>
              scripInfoServletWAP25:
              ScripInfoServlet.init()javax.naming.CommunicationException [Root exception
              is weblogic.rmi.UnmarshalException: Unmarshalling return
               - with nested exception:
              [java.lang.ClassNotFoundException: class
              ITS.beans.order.ScripInfoSessionEJBHomeImpl_ServiceStub previously not
              found]]
              Tue Feb 06 17:53:54 GMT+05:30 2001:<E> <ServletContext-General> Servlet
              failed with Exception
              javax.servlet.ServletException: javax.naming.CommunicationException [Root
              exception is weblogic.rmi.UnmarshalException: Unmarshalling return
              - with nested exception:
              [java.lang.ClassNotFoundException: class
              ITS.beans.order.ScripInfoSessionEJBHomeImpl_ServiceStub previously not
              found]]
              at ITS.wap.ScripInfoServletWAP25.init(ScripInfoServletWAP25.java:83)
              at
              weblogic.servlet.internal.ServletStubImpl.createServlet(ServletStubImpl.java
              :390)
              at
              weblogic.servlet.internal.ServletStubImpl.createInstances(ServletStubImpl.ja
              va, Compiled Code)
              at
              weblogic.servlet.internal.ServletStubImpl.prepareServlet(ServletStubImpl.jav
              a:338)
              at
              weblogic.servlet.internal.ServletStubImpl.getServlet(ServletStubImpl.java:16
              4)
              at
              weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java
              :99)
              at
              weblogic.servlet.internal.ServletContextImpl.invokeServlet(ServletContextImp
              l.java:742)
              at
              weblogic.servlet.internal.ServletContextImpl.invokeServlet(ServletContextImp
              l.java:686)
              at
              weblogic.servlet.internal.ServletContextManager.invokeServlet(ServletContext
              Manager.java:247)
              at
              weblogic.socket.MuxableSocketHTTP.invokeServlet(MuxableSocketHTTP.java:361)
              at weblogic.socket.MuxableSocketHTTP.execute(MuxableSocketHTTP.java:261)
              at weblogic.kernel.ExecuteThread.run(ExecuteThread.java, Compiled Code)
              Only when the jar file was made available to the server#1(i.e. present in
              weblogicclasspath but not deployed) was the servlet on server#1 able to call
              the ejb on server#2.
              When calling the ejb through a Java Application or through a servlet
              deployed on the same server as the ejb,
              the stub classes are not required to be specified in the weblogicclasspath.
              Has anybody else encountered a similar situation?
              Thanks in advance.
              Aparna
              "Cameron Purdy" <[email protected]> wrote in message
              news:[email protected]...
              > You can have a Servlet on server #1 talk to an EJB on server #2. It is
              > accomplished by having the client classes for the EJB available to the
              > Servlet on server #1 and using JNDI on server #1 to get initial context
              for
              > server #2 and using that to look up the EJB.
              >
              > (Sorry, no habla espanol.)
              >
              > --
              > Cameron Purdy
              > Tangosol, Inc.
              > http://www.tangosol.com
              > +1.617.623.5782
              > WebLogic Consulting Available
              >
              >
              > "Javier Fdez" <[email protected]> wrote in message
              > news:[email protected]...
              > >
              > > Me somebody can say like communicating servlet that this in a machine
              with
              > Weblogic 5,1 with a EJB in another machine also with weblogic5.1
              > > When trying gives it to me Comunication Exception .
              > > But if I have the 2 in the same machine it works well
              >
              >
              

  • Co-location optimization between servlet and ejb?

    Find some similar posting in archive, but answers confused me.
    If I implement a sesion bean in WL6.1 with remote interfaces and call that session bean from the web tier (i.e. servlet) that is located in the same WL server, will co-location optimization occur.
    Some previous posting suggested optimization only occurs within the same classloader. My understanding is servlet have a different class loader than the EJB.
    So will co-location optimization still occur?
    Thanks
    Joe Wroblewski

    "Joe Wroblewski" <[email protected]> wrote in message news:32319370.1096294137900.JavaMail.root@jserv5...
    Find some similar posting in archive, but answers confused me.
    If I implement a sesion bean in WL6.1 with remote interfaces and call that session bean from the web tier (i.e.servlet) that is located in the same WL server, will co-location optimization occur.
    >
    Some previous posting suggested optimization only occurs within the same classloader. My understanding is servlethave a different class loader than the EJB.
    >
    So will co-location optimization still occur?In case of a servlet you will have co-location optimization if the ejb-jar and the war are in the same ear. Then was
    will inherit EJB classsloader. If it's not the case, pass-by-reference is not possble.
    Regards,
    Slava Imeshev

  • Calling HTML file from servlet and vice versa...

    i have got few questions..
    1- if a site is made in HTML then what should be used to put user login functionality in it, servlets or jsp or other option(specify)?
    2- im trying to do with servlets, so when im calling doPost method from HTML page and sending data, everything working fine but because of this the page refreshes and the HTML coding get lost, so how can i stop that from happening if possible, like showing the same page with messege = "Logged in".
    3- how can i call an HTML page from servlet?
    4- how can i send data from servlet to HTML page?

    that i m aware of, but when a servlet is called then the page will refresh n it will display the things that you have mentioned in the servlet file n not the things that u have mentioned in HTML file, n the page will be blank if u have not mentioned any HTML coding in servlet file.
    so i need to knw how to call back that prev HTML file so that the things i want to display can be displayed, i knw the same can be done by adding the HTML code in servlet file but i would like to know if there is any way to call back the HTML file.

Maybe you are looking for