Finding location of WEB-INF on Weblogic (unix) via backing bean

Hi all,
In 11g on the embedded WLS 10.3, running in XP, I'm able to get the path of the WEB-INF directory using:
    public String getPath(){
        ExternalContext ectx = FacesContext.getCurrentInstance().getExternalContext();
        String requestPage = ((HttpServletRequest)ectx.getRequest()).getPathInfo();
        String requestPageOsTranslated = requestPage.replace('/',File.separatorChar);
        String requestPathTranslated = ((HttpServletRequest)ectx.getRequest()).getPathTranslated();
        int end  =  requestPathTranslated.indexOf(requestPageOsTranslated);
        String public_html_location = requestPathTranslated.substring(0,end);
        return public_html_location + File.separatorChar +  "WEB-INF" + File.separatorChar;
    }However once deployed on the production server (unix based), this no longer works and bombs out with NPE at:
int end  =  requestPathTranslated.indexOf(requestPageOsTranslated);I believe it could be a library issue..
Does anyone have any ideas?
cheers,
-chris

Hi,
what about trying the ResourceLoader to find a file contained in this directory ? Would this be an option?
Frank

Similar Messages

  • Wl6.1sp2 can't find classes in WEB-INF/lib

              Hi,
              I meet a very strange problem.
              I use struts in my application.so I put struts.jar in web-inf/lib.
              In the .war file, the struts.jar can be found under web-inf/lib.
              my servlet configuration in web.xml is:
              <servlet>
              <servlet-name>action</servlet-name>
              <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
              <init-param>
              <param-name>application</param-name>
              <param-value>StrutsProperties</param-value>
              </init-param>
              <init-param>
              <param-name>config</param-name>
              <param-value>/WEB-INF/struts-config.xml</param-value>
              </init-param>
              <load-on-startup>1</load-on-startup>
              </servlet>
              when this .war file is deploy, the console not show any error message.
              then,when i visit a jsp page that has a <html:form> tag, the console will show
              the error below:
              <Error> <HTTP> <[WebAppServletContext(5418530,struts,/
              struts)] Servlet failed with Exception
              java.lang.NoClassDefFoundError: org/apache/struts/action/ActionForm
              at java.lang.ClassLoader.defineClass0(Native Method)
              at java.lang.ClassLoader.defineClass(ClassLoader.java:486)
              at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:11
              1)
              at java.net.URLClassLoader.defineClass(URLClassLoader.java:248)
              at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
              at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
              at java.security.AccessController.doPrivileged(Native Method)
              at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
              at java.lang.ClassLoader.loadClass(ClassLoader.java:297)
              at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:286)
              at java.lang.ClassLoader.loadClass(ClassLoader.java:290)
              at java.lang.ClassLoader.loadClass(ClassLoader.java:290)
              at java.lang.ClassLoader.loadClass(ClassLoader.java:253)
              at weblogic.utils.classloaders.ChangeAwareClassLoader.loadClass(ChangeAw
              areClassLoader.java:43)
              at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:313)
              at java.lang.Class.forName0(Native Method)
              at java.lang.Class.forName(Class.java:120)
              at org.apache.struts.taglib.html.FormTag.doStartTag(FormTag.java:563)
              at jsp_servlet.__logon._jspService(__logon.java:137)
              at weblogic.servlet.jsp.JspBase.service(JspBase.java:27)
              at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm
              pl.java:265)
              at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm
              pl.java:304)
              at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm
              pl.java:200)
              at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppSe
              rvletContext.java:2495)
              at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestIm
              pl.java:2204)
              at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
              at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
              >
              note "org/apache/struts/action/ActionForm" can be found when i open struts.jar
              in web-inf/lib
              why weblogic can't find this class but can find the "org.apache.struts.action.ActionServlet",
              these 2 classes should all be located in struts.jar
              i used it in win2k,so i think it may not be connect with case sensitive.
              Any one can give me some help or a link I did not found in this group.
              Thanks
              

              1.the struts-html.tld is in web-inf directory
              2.this is part of the web.xml
              ===========
              <taglib>
              <taglib-uri>/WEB-INF/struts-html.tld</taglib-uri>
              <taglib-location>/WEB-INF/struts-html.tld</taglib-location>
              </taglib>
              <taglib>
              <taglib-uri>/WEB-INF/struts-bean.tld</taglib-uri>
              <taglib-location>/WEB-INF/struts-bean.tld</taglib-location>
              </taglib>
              <taglib>
              <taglib-uri>/WEB-INF/struts-logic.tld</taglib-uri>
              <taglib-location>/WEB-INF/struts-logic.tld</taglib-location>
              </taglib>
              <taglib>
              <taglib-uri>/WEB-INF/struts-template.tld</taglib-uri>
              <taglib-location>/WEB-INF/struts-template.tld</taglib-location>
              </taglib>
              ================
              "Deepak Vohra" <[email protected]> wrote:
              >
              >Are the tld files including the struts-html.tld in the web-inf directory
              >& specified in the web.xml deployment descriptor?
              >
              >thanks,
              >
              >Deepak
              >
              >
              >"erric_sarra" <[email protected]> wrote:
              >>
              >>Hi,
              >>I meet a very strange problem.
              >>
              >>I use struts in my application.so I put struts.jar in web-inf/lib.
              >>In the .war file, the struts.jar can be found under web-inf/lib.
              >>
              >>my servlet configuration in web.xml is:
              >> <servlet>
              >> <servlet-name>action</servlet-name>
              >> <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
              >> <init-param>
              >> <param-name>application</param-name>
              >> <param-value>StrutsProperties</param-value>
              >> </init-param>
              >> <init-param>
              >> <param-name>config</param-name>
              >> <param-value>/WEB-INF/struts-config.xml</param-value>
              >> </init-param>
              >> <load-on-startup>1</load-on-startup>
              >> </servlet>
              >>
              >>when this .war file is deploy, the console not show any error message.
              >>then,when i visit a jsp page that has a <html:form> tag, the console
              >>will show
              >>the error below:
              >><Error> <HTTP> <[WebAppServletContext(5418530,struts,/
              >>struts)] Servlet failed with Exception
              >>java.lang.NoClassDefFoundError: org/apache/struts/action/ActionForm
              >> at java.lang.ClassLoader.defineClass0(Native Method)
              >> at java.lang.ClassLoader.defineClass(ClassLoader.java:486)
              >> at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:11
              >>1)
              >> at java.net.URLClassLoader.defineClass(URLClassLoader.java:248)
              >> at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
              >> at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
              >> at java.security.AccessController.doPrivileged(Native Method)
              >> at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
              >> at java.lang.ClassLoader.loadClass(ClassLoader.java:297)
              >> at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:286)
              >> at java.lang.ClassLoader.loadClass(ClassLoader.java:290)
              >> at java.lang.ClassLoader.loadClass(ClassLoader.java:290)
              >> at java.lang.ClassLoader.loadClass(ClassLoader.java:253)
              >> at weblogic.utils.classloaders.ChangeAwareClassLoader.loadClass(ChangeAw
              >>areClassLoader.java:43)
              >> at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:313)
              >> at java.lang.Class.forName0(Native Method)
              >> at java.lang.Class.forName(Class.java:120)
              >> at org.apache.struts.taglib.html.FormTag.doStartTag(FormTag.java:563)
              >> at jsp_servlet.__logon._jspService(__logon.java:137)
              >> at weblogic.servlet.jsp.JspBase.service(JspBase.java:27)
              >> at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm
              >>pl.java:265)
              >> at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm
              >>pl.java:304)
              >> at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm
              >>pl.java:200)
              >> at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppSe
              >>rvletContext.java:2495)
              >> at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestIm
              >>pl.java:2204)
              >> at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
              >> at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
              >>>
              >>
              >>note "org/apache/struts/action/ActionForm" can be found when i open
              >struts.jar
              >>in web-inf/lib
              >>why weblogic can't find this class but can find the "org.apache.struts.action.ActionServlet",
              >>these 2 classes should all be located in struts.jar
              >>
              >>i used it in win2k,so i think it may not be connect with case sensitive.
              >>
              >>Any one can give me some help or a link I did not found in this group.
              >>
              >>Thanks
              >>
              >>
              >
              

  • Support for JSP's located in WEB-INF directory

    Several application servers support the use of placing JSP pages underneath the WEB-INF directory, to insure that only server side workflow forwards requests to those pages and not direct URL access. IN addition the JSTL specification supports the use of
    <c:import url="/WEBINF/published/campaign_Arts.jsp" />
    Does OC4J 9.0.3 support this syntax? I cannot get it to work. Is there an application configuration file I need to update to support this?
    Thanks

              thank you for your reply...
              but...
              My problem is that i want to serve jsp pages that include various other jsp pages.
              But i don't want those other pages to be served directly. The approach of putting
              the jsp files in the WEB-INF, or in a sub directory of it, worked fine on Tomcat.
              The way i look at it is that the server has direct access to them when putting
              togetter the main jsp, but they can't be accessed from the outside. But this seems
              not to be the case.
              Any ideas?
              "ilya Devers" <[email protected]> wrote:
              >The WEB-INF is not perceived as a directory to the engine. Resources
              >in it
              >are not exposed and should not. It can hold sensitive resources such
              >as
              >application deployment descriptors that can contain database log in
              >information to name something. The engine should never serve resources
              >located here.
              >
              >This directory should only contain the normal directories: lib and classes,
              >and the web.xml files (and weblogic.xml).
              >
              >Hope this helps.
              >
              >ilya
              >
              

  • Find path to Web-inf directory from root

    Hi All,
    I have a application for which the "config.txt" file is placed in "Web-inf" directory. I want to get the complete path to this file so that I can access it and read config info.
    I am able to acheive this if I write the following piece of code and it gives me the complete path.
    String configPath = getServletContext().getRealPath("config.txt");
    My problem is that this code works only if the class extends from HttpServlet. I want to get the complete path to this file from a normal java bean, where I don't have the servlet context.
    If there is any alternative way to achieve this or if somehow I can get the servlet context in the java bean then please let me know. We use iPlanet 6.0 server.
    Thanks for your help.
    RM

    Thanks for your reply. Do you mean, I should use
    getResourceasStream() method which return inputstream.
    But even that would require servletcontext object ?No it doesn't require the servlet context; if it did, you'd still be able to get the servlet context from the servlet itself.
    Maybe I have not understood, your approach. Can you
    please give me some example.
    class SomeServlet extends HttpServlet {
        // servlet stuff
        private void handleConfiguration() {
            InputStream configStream = getClass().getResourceAsStream("config.txt"); // may return null
            YourBean bean = getYourBeanInstance();
            bean.someMethod(configStream);
            // close configStream
    public class YourBean {
        public void someMethod(InputStream configStream) {
            // handle configStream
    }

  • How to display an image located in the WEB-INF directory?

    Basically, When a user registers, they a directory is created with their username that holds images that they can upload. How do I display those images. All I am holding in the database is the location of the images.
    ive tried
    <img src="/WEB-INF/users/testuser/picture.jpg" />
    but this doesnt work and for obvious security reasons shouldnt.. but is there another way of doing what i want to do? perhaps a custom tag? thanks
    Jazz

    You would have to write a generic servlet that would return an image
    <img src="/getImage?user=testuser&pic=picture.jpg" />Your servlet would basically fetch the file from under web-inf, and then stream it back to the user.
    Methods to use:
    servletContext.getRealPath() (to help find the file on disk), relative to your web app
    getOutputStream (as opposed to getWriter)
    It is only in this way that you can access files on the server outside of the public web directories.
    Hope this helps
    Cheers,
    evnafets

  • prefer-web-inf-classes in weblogic.xml doesn't work

    When I try to use <prefer-web-inf-classes>true</prefer-web-inf-classes> it works fine with default classloaders structure. But after I changed classloaders hierarhy by means of <classloader-structure> in weblogic-application.xml classes from web app are ignored and classes from outside web app are loaded.
    Here is classloaders structure I use
    <weblogic-application>
    <classloader-structure>
    <module-ref>
    <module-uri>mywar.war</module-uri>
    </module-ref>
    <classloader-structure>
    <module-ref>
    <module-uri>myejb.jar</module-uri>
    </module-ref>
    </classloader-structure>
    </classloader-structure>
    </weblogic-application>
    Has anybody encountered this before?

    Hi, Rob
    Does it work in WL9.2?
    It seems I do it exactly as the explained at http://edocs.bea.com/wls/docs81/programming/classloading.html - and it fails :o(.
    I try to run my app.ear with WL9.2 There are 2 components in it: webapp and mdb. The webapp/WEB-INF contains weblogic.xml:
    <weblogic-web-app>
    <container-descriptor>     
    <prefer-web-inf-classes>true</prefer-web-inf-classes>
    </container-descriptor>
    </weblogic-web-app>
    Mdb is expected to run in the same mode, i.e. to prefer the webapp/WEB-INF/*.jar over the parent Weblogic classloader. To do so I add the weblogic-application.xml to the app.ear!/META-INF:
    <weblogic-application>
    <classloader-structure>
    <module-ref>
    <!-- reminder: this webapp contains
    prefer-web-inf-classes -->
    <module-uri>webapp</module-uri>
    </module-ref>
    <classloader-structure>
    <module-ref>
    <module-uri>mdb.jar</module-uri>
    </module-ref>
    </classloader-structure>
    </classloader-structure>
    </weblogic-application>
    Now, when classloader-structure specified, both webabb and mdb prefer the weblogic root loader as if prefer-web-inf-classes not defined at all.

  • Jsp-file="/WEB-INF/index.jsp" cannot load

              Hi,
              I am defining a servlet in the web.xml file using the following syntax.
              <servlet>
              <servlet-name>TestServlet</servlet-name>
              <jsp-file>/WEB-INF/index.jsp</jsp-file>
              </servlet>
              Then when I tried to access this servlet, I get a 404 not found error. The weblogic.log
              file complains with the following message:
              java.io.FileNotFoundException: no resource '/WEB-INF/index.jsp' in servlet context
              root '/home/dev/web/apps/MyApp'
              at weblogic.servlet.jsp.JspStub.compilePage(JspStub.java:293)
              at weblogic.servlet.jsp.JspStub.prepareServlet(JspStub.java:227)
              at weblogic.servlet.internal.ServletStubImpl.getServlet(ServletStubImpl.java:200)
              at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:115)
              at weblogic.servlet.internal.ServletContextImpl.invokeServlet(ServletContextImpl.java:922)
              at weblogic.servlet.internal.ServletContextImpl.invokeServlet(ServletContextImpl.java:886)
              at weblogic.servlet.internal.ServletContextManager.invokeServlet(ServletContextManager.java:269)
              at weblogic.socket.MuxableSocketHTTP.invokeServlet(MuxableSocketHTTP.java:380)
              at weblogic.socket.MuxableSocketHTTP.execute(MuxableSocketHTTP.java:268)
              at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:129)
              My jsp file in located in /home/dev/web/apps/MyApp/WEB-INF/index.jsp, I know weblogic
              doesn't support jsp under WEB-INF, however, according to Sun's Servlet specification,
              anything under web-inf should be accessible to getResource and getResourceAsStream
              method, and it looks like that's what weblogic implementation is using (from the
              error message). So I am not sure whether this is weblogic issue or I am doing
              something wrong. By the way, the above config in web.xml is supported in Tomcat.
              

              What version of WebLogic will incorporate Servlet spec 2.4 and allow jsp under
              web-inf?
              Chris
              "Narayan Anand" <[email protected]> wrote:
              >Regarding S-12864 - It will not work as stated in the solution in any
              >of
              >the available releases of WLS.
              >Please ignore that. I already informed the concerned person to correct
              >the
              >solution.
              >
              >The story behind this is:
              >Our engineering team is already aware of the fact that the request
              >dispatcher calls (include/forward) for a jsp under the web-inf directory
              >works in other app server - Tomcat.
              >Our engineering team had a discussion with the servlet/jsp spec experts
              >group for clarifying the spec and the tomcat implementation.
              >So the servlet expert group has decided to explicitly state in the spec
              >that
              >RD.forward() and RD.include() should be allowed access to resources in
              >/WEB-INF and it will be included in servlet spec 2.4. For now, WLS works
              >as
              >per the current specification.
              >
              >So far the story is - WLS will implement this in our next major release
              >which will be compliance with servlet spec 2.4.
              >In all the currently available WLS releases, accessed to a jsp under
              >the
              >WEB-INF directory is prohibited.
              >
              >--
              >Best Regards,
              >Narayan Anand
              >Developer Relations Engineer
              >BEA Systems, Inc.
              >
              >
              >
              >
              >
              >
              >"Ming Fan" <[email protected]> wrote in message
              >news:[email protected]...
              >>
              >> Thanks for the explanation. So this means weblogic treats such mapped
              >servlet request
              >> as a direct request to the jsp under WEB-INF, instead of forwarding
              >it to
              >some
              >> JspCompiler servlet and let that compiler servlet use some resource
              >loader
              >to
              >> load the jsp and then compile. I believe that latter implementation
              >approach also
              >> conforms the Servlet spec (it's a different way of treating the request,
              >I
              >guess).
              >>
              >> Now here's another question. According to Web logic Customer Support
              >Solution
              >> ID S-12864 (WLS 6.x - Cannot access JSP under the WEB-INF directory),
              >the
              >servlet
              >> should be able to get a request dispatcher, and then forward the request
              >to the
              >> jsp under WEB-INF. I am still using WLS 5.1, so does the above solution
              >apply
              >> to 5.1 also? It doesn't seem to work with 5.1. So is this a 5.1 problem
              >and I
              >> should upgrade to 6.1?
              >>
              >> Thanks.
              >>
              >> "Narayan Anand" <[email protected]> wrote:
              >> >Hi Ming,
              >> >
              >> >It is legal to put files under WEB-INF directory. But as mentioned
              >in
              >> >the
              >> >spec, it will be available only to servlet code and not directly to
              >client
              >> >request.
              >> >Read the last statement of the same paragraph in section9.5.
              >> >"Since requests are matched to resource mappings case-sensitively,
              >client
              >> >requests for '/WEB-INF/foo', '/WEb-iNf/foo', for example, should not
              >> >result
              >> >in contents of the web application located under /WEB-INF being returned,
              >> >nor any form of directory listing thereof.".
              >> >
              >> >So in your case, when you access the servlet which gets mapped to
              >> >/WEB-INF/your-jspfile, under no condition it should result in display
              >> >of jsp
              >> >contents.
              >> >It is working as per the specification.
              >> >
              >> >I hope this helps.
              >> >
              >> >Regards,
              >> >Narayan Anand
              >> >Developer Relations Engineer
              >> >BEA WebLogic Support
              >> >
              >> >
              >> >
              >> >"Ming Fan" <[email protected]> wrote in message
              >> >news:[email protected]...
              >> >>
              >> >> Actaully there are other ways to solve my problem. But what I am
              >> >interested to
              >> >> know is under the Servlet specification 2.3, is it legal to put
              >jsp
              >> >under
              >> >WEB-INF,
              >> >> define it in <jsp-file> xml tag, and should the JSP compiler be
              >able
              >> >to
              >> >see this
              >> >> as a resource. Apparently, Tomcat allows this behavior, so does
              >this
              >> >mean
              >> >Tomcat
              >> >> conforms better to the Servlet spec, or Tomcat is wrong but Weblogic
              >> >conforms
              >> >> better? Can anyone let me know what's the correct interpretation
              >of
              >> >section 9.5
              >> >> in servlet spec 2.3?
              >> >>
              >> >>
              >> >> "Jerrie Pineda" <[email protected]> wrote:
              >> >> >Try moving it to a different dir. You normally don't place jsp
              >file
              >> >> >in the
              >> >> >WEB-INF dir.
              >> >> >
              >> >> >
              >> >> >"Ming Fan" <[email protected]> wrote in message
              >> >> >news:[email protected]...
              >> >> >>
              >> >> >> Hi,
              >> >> >>
              >> >> >> I am defining a servlet in the web.xml file using the following
              >> >syntax.
              >> >> >> <servlet>
              >> >> >> <servlet-name>TestServlet</servlet-name>
              >> >> >> <jsp-file>/WEB-INF/index.jsp</jsp-file>
              >> >> >> </servlet>
              >> >> >>
              >> >> >> Then when I tried to access this servlet, I get a 404 not found
              >> >error.
              >> >> >The
              >> >> >weblogic.log
              >> >> >> file complains with the following message:
              >> >> >> java.io.FileNotFoundException: no resource '/WEB-INF/index.jsp'
              >> >in
              >> >> >servlet
              >> >> >context
              >> >> >> root '/home/dev/web/apps/MyApp'
              >> >> >> at
              >weblogic.servlet.jsp.JspStub.compilePage(JspStub.java:293)
              >> >> >> at
              >> >weblogic.servlet.jsp.JspStub.prepareServlet(JspStub.java:227)
              >> >> >> at
              >> >>
              >>
              >>>weblogic.servlet.internal.ServletStubImpl.getServlet(ServletStubImpl.java:
              >2
              >> >0
              >> >> >0)
              >> >> >> at
              >> >>
              >>
              >>>weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.ja
              >v
              >> >a
              >> >> >:115)
              >> >> >> at
              >> >>
              >>
              >>>weblogic.servlet.internal.ServletContextImpl.invokeServlet(ServletContextI
              >m
              >> >p
              >> >> >l.java:922)
              >> >> >> at
              >> >>
              >>
              >>>weblogic.servlet.internal.ServletContextImpl.invokeServlet(ServletContextI
              >m
              >> >p
              >> >> >l.java:886)
              >> >> >> at
              >> >>
              >>
              >>>weblogic.servlet.internal.ServletContextManager.invokeServlet(ServletConte
              >x
              >> >t
              >> >> >Manager.java:269)
              >> >> >> at
              >> >>
              >>
              >>>weblogic.socket.MuxableSocketHTTP.invokeServlet(MuxableSocketHTTP.java:380
              >)
              >> >> >> at
              >> >> >weblogic.socket.MuxableSocketHTTP.execute(MuxableSocketHTTP.java:268)
              >> >> >> at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:129)
              >> >> >>
              >> >> >> My jsp file in located in
              >/home/dev/web/apps/MyApp/WEB-INF/index.jsp,
              >> >> >I
              >> >> >know weblogic
              >> >> >> doesn't support jsp under WEB-INF, however, according to Sun's
              >Servlet
              >> >> >specification,
              >> >> >> anything under web-inf should be accessible to getResource and
              >> >> >getResourceAsStream
              >> >> >> method, and it looks like that's what weblogic implementation
              >is
              >> >using
              >> >> >(from the
              >> >> >> error message). So I am not sure whether this is weblogic issue
              >> >or
              >> >> >I am
              >> >> >doing
              >> >> >> something wrong. By the way, the above config in web.xml is
              >supported
              >> >> >in
              >> >> >Tomcat.
              >> >> >
              >> >> >
              >> >>
              >> >
              >> >
              >>
              >
              >
              

  • Should I be able to browse to /WEB-INF/whatever?

    All the documentation I can find says that files and folders underneath the /WEB-INF directory should, by default, be inaccesible to someone browsing my site. Any attempts to access these files or folders should return a "404 - File Not Found".
    However, when I try to browse to, say, /WEB-INF/classes/someresourcebundle.properties my browser happily loads it. The same with /WEB-INF/struts-config.xml, or any other file under this directory.
    It is my understanding the servlet specification states that any attempts to access the /WEB-INF hierarchy should be met with a "404 - File Not Found". I can restrict access to WEB-INF by adding some lines to my httpd.conf, like so:
    <Location "/WEB-INF/*">
            AllowOverride None
            deny from all
    </Location>
    <Directory "C:/siteroot/WEB-INF/">
            AllowOverride None
            deny from all
    </Directory>...but this returns a "403 - Forbidden" rather than a 404.
    Am I supposed to explicitly map WEB-INF to be served by Tomcat? If so, how do I do this? If not, what's going on here? What do I need to do to make this behave as it's supposed to?
    Thanks,
    millz

    Are you using Tomcat with Apache? AFAIK, under these conditions, WEB-INF will be accessible since it is Apache that is serving the files and not Tomcat.
    [edit]
    The final step in our Apache/Tomcat integration is a step that restricts all requests to the /example application's WEB-INF directory. This is done by telling Apache that it should deny all requests to the /examples/WEB-INF directory. The following <Location> element enforces this constraint:
    <location "/examples/web-inf/">
    AllowOverride None
    deny from all
    </location>
    This is what it says in the ONJava tutorial for running Tomcat with Apache http://www.onjava.com/pub/a/onjava/2002/11/20/tomcat.html?page=2, one of the last steps.
    [edit]
    Message was edited by:
    nogoodatcoding

  • WorkShop 3.2.0 - WEB-INF/classes not included in war file

    I've created the "Faces Example" project in Workshop Studio 3.2.0 and it's running fine. However, when I export the war file to run it on another server the class files located at "WEB-INF/classes" are not included with the war.
    Any suggestions on what I may be doing wrong would be greatly appreciated.
    thks!

    Unfortunately no, the issue with output folder being ignored occurs only with example apps bundled with Workshop product.
    You can try the following workaround:
    - In Workshop, Project > Properties - Java Build Path, switch to Source tab - "Remove the source folder listing" - Click OK and dismiss Properties window.
    - Project > Properties - Java Build Path > Source Tab, add the same source folder entry - Click OK
    - Export as WAR
    With this you should see the class files bundled under output directory structure (Ex: WEB-INF/classes).

  • NEW to J2EE----Class(within WEB-INF) can't access applet

    I admit I'm a newbie. Situation: an applet can import packages or individual classes that are located in WEB-INF dir. Is the reverse true, that the same classes can touch the applet? If so, how do you implement this, tried to import applet class, no luck though. I figure the reverse isn't true. Just wanted some ideas for a work around and or confirmation of my question. Thanks

    ok, security isn't an issue or concern since this is an intranet app. What I am trying to do is load and reload data to a JTable in an applet. The code that retrieves this data is located in WEB-INF. Is there a work around to make this work.

  • Precompile JSP in WEB-INF

    Hi,
    We're using split-directory. Our jsps live inside of WEB-INF to protect them from
    direct accessing. Only the Servlet controller can access jsps. A few questions
    here:
    1. How can I precompile jsps at the compilation time? Appc doesn't work, since
    it assumes jsps always live outside of the WEB-INF.
    2. Where is the output directory that we should set if we can precompile. Our
    jsps are located in WEB-INF/jsps.
    3. Right now we leave the server compile them on fly. But where the compiled classes
    are stored on the server. We deploy the EAR to the server.
    Thanks!

    Hi,
    1) Thanks for pointing this out. Indeed appc & jspc (8.1) don't compile jsps
    under WEB-INF and the CR associated with this bug is CR133172. Please
    contact [email protected] to obtain a patch for this issue.
    2) If appc were used on a split directory ear, the .class files for the
    jsps are copied into the destination directory of the split dir (more
    specifically into the webapp module's WEB-INF/classes being compiled)
    3) When compiled at runtime, the default outputDirectory is under the server
    temp dirs : .wlnotdelete/extract/<server-name>_<app/ear-name>_<module-name>/
    --Nagesh
    "Kelly" <[email protected]> wrote in message
    news:40771782$[email protected]..
    >
    Hi,
    We're using split-directory. Our jsps live inside of WEB-INF to protectthem from
    direct accessing. Only the Servlet controller can access jsps. A fewquestions
    here:
    1. How can I precompile jsps at the compilation time? Appc doesn't work,since
    it assumes jsps always live outside of the WEB-INF.
    2. Where is the output directory that we should set if we can precompile.Our
    jsps are located in WEB-INF/jsps.
    3. Right now we leave the server compile them on fly. But where thecompiled classes
    are stored on the server. We deploy the EAR to the server.
    Thanks!

  • Tomcat 4.1.18 .................. WEB-INF\classes problem

    I am using Tomcat 4.1.18 and working on JSPs. I have written a JSP that calls a Bean located in WEB-INF\classes. When I make a POST call to the JSP I get the following error
    ===========
    type Exception report
    message
    description The server encountered an internal error () that prevented it from fulfilling this request.
    exception
    org.apache.jasper.JasperException: Unable to compile class for JSP
    An error occurred at line: 1 in the jsp file: /techsupport.jsp
    Generated servlet error:
    [javac] Compiling 1 source file
    C:\jakarta-tomcat-4.1.18\work\Standalone\localhost\techsupport\techsupport_jsp.java:42: cannot resolve symbol
    symbol : class TechSupportBean
    location: class org.apache.jsp.techsupport_jsp
    TechSupportBean techSupportBean = null;
    ^
    An error occurred at line: 1 in the jsp file: /techsupport.jsp
    Generated servlet error:
    C:\jakarta-tomcat-4.1.18\work\Standalone\localhost\techsupport\techsupport_jsp.java:44: cannot resolve symbol
    symbol : class TechSupportBean
    location: class org.apache.jsp.techsupport_jsp
    techSupportBean = (TechSupportBean) pageContext.getAttribute("techSupportBean", PageContext.SESSION_SCOPE);
    ^
    An error occurred at line: 1 in the jsp file: /techsupport.jsp
    Generated servlet error:
    C:\jakarta-tomcat-4.1.18\work\Standalone\localhost\techsupport\techsupport_jsp.java:47: cannot resolve symbol
    symbol : class TechSupportBean
    location: class org.apache.jsp.techsupport_jsp
    techSupportBean = (TechSupportBean) java.beans.Beans.instantiate(this.getClass().getClassLoader(), "TechSupportBean");
    ^
    3 errors
         at org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:130)
         at org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:293)
         at org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:340)
         at org.apache.jasper.compiler.Compiler.compile(Compiler.java:352)
         at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:474)
         at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:184)
         at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
         at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:260)
         at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
         at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
         at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
         at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
         at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
         at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
         at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2415)
         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
         at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
         at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
         at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
         at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
         at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
         at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
         at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
         at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
         at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
         at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)
         at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:432)
         at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:386)
         at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:534)
         at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:530)
         at java.lang.Thread.run(Thread.java:484)
    ========
    The server.xml has the following context.
         <Context path="/techsupport" docBase="techsupport" debug="0"
    reloadable="true" crossContext="true">
    <Logger className="org.apache.catalina.logger.FileLogger"
    prefix="localhost_techsupport_log." suffix=".txt"
         timestamp="true"/>     
         </Context>
    ==============
    Can somebody tell me where I went wrong? I think some configuration is missing especially CLASSPATH but am using the default CLASSPATH and the
    webapps/examples is working fine.
    My program is located at webapps/techsupport folder.
    Thanks.
    Amitabh.
    [email protected]

    in the techsupport.jsp
    try adding this
    <%@ page import="TechSupportBean"%>

  • Jar file in web-inf\lib is not being loaded - weblogic 7.0

    I am callling a webservice from a jsp. everything works fine if I keep the interface
    classes under web-inf\classes....but If I put the interface classes in a jar file
    and put it under web-inf\lib, then weblogic does not seem to find that....
    I am getting following error :
    C:\bea\user_projects\mydomain\.\myserver\.wlnotdelete\_appsdir_omccs_example_war_omccs_example_4653011\jarfiles\WEB-INF\lib\Customer_client32432.jar(com/qwest/omccsexample/ejb/CustomerBean/CustomerValue.java):14:
    class CustomerValue is public, should be declared in a file named CustomerValue.java
    (source unavailable)
    C:\bea\user_projects\mydomain\.\myserver\.wlnotdelete\_appsdir_omccs_example_war_omccs_example_4653011\jarfiles\WEB-INF\lib\Customer_client32432.jar(com/qwest/omccsexample/ejb/CustomerBean/CustomerValue.java):119:
    cannot resolve symbol
    symbol : class RuntimeUtils
    location: package binding
    (source unavailable)
    C:\bea\user_projects\mydomain\.\myserver\.wlnotdelete\_appsdir_omccs_example_war_omccs_example_4653011\jarfiles\WEB-INF\lib\Customer_client32432.jar(com/qwest/omccsexample/ejb/CustomerBean/CustomerValue.java):120:
    cannot resolve symbol
    symbol : class RuntimeUtils
    location: package binding
    (source unavailable)
    C:\bea\user_projects\mydomain\.\myserver\.wlnotdelete\_appsdir_omccs_example_war_omccs_example_4653011\jarfiles\WEB-INF\lib\Customer_client32432.jar(com/qwest/omccsexample/ejb/CustomerBean/CustomerValue.java):121:
    cannot resolve symbol
    symbol : class RuntimeUtils
    location: package binding
    (source unavailable)
    4 errors
    Wondering if it is a bug...?
    any thoughts ?
    -Girish Bhatia

    I wrote up a simple test case for this and it works fine for me.
    I suppose there are diffences. ;)
    I am using:
    WebLogic Server 7.0 SP1 Mon Sep 9 22:46:58 PDT 2002 206753
    Take the attached zip, unzip.
    cd to directory
    ant build
    then deploy it via the console, or
    java weblogic.Deployer -adminurl t3://127.0.0.1:7001 -user weblogic -password
    weblogic -activate -name mywebapp2 -source e:/weblogic/dev/sandbox/griffith/apps/output/exploded_mywebapp_lib/
    Then:
    http://c863775-d:7001/exploded_mywebapp_lib/frobber
    works for me. My servlet implments an interface in the jar in my lib dir.
    Cheers
    mbg
    "Girish" <[email protected]> wrote:
    >
    I am callling a webservice from a jsp. everything works fine if I keep
    the interface
    classes under web-inf\classes....but If I put the interface classes in
    a jar file
    and put it under web-inf\lib, then weblogic does not seem to find that....
    I am getting following error :
    C:\bea\user_projects\mydomain\.\myserver\.wlnotdelete\_appsdir_omccs_example_war_omccs_example_4653011\jarfiles\WEB-INF\lib\Customer_client32432.jar(com/qwest/omccsexample/ejb/CustomerBean/CustomerValue.java):14:
    class CustomerValue is public, should be declared in a file named CustomerValue.java
    (source unavailable)
    C:\bea\user_projects\mydomain\.\myserver\.wlnotdelete\_appsdir_omccs_example_war_omccs_example_4653011\jarfiles\WEB-INF\lib\Customer_client32432.jar(com/qwest/omccsexample/ejb/CustomerBean/CustomerValue.java):119:
    cannot resolve symbol
    symbol : class RuntimeUtils
    location: package binding
    (source unavailable)
    C:\bea\user_projects\mydomain\.\myserver\.wlnotdelete\_appsdir_omccs_example_war_omccs_example_4653011\jarfiles\WEB-INF\lib\Customer_client32432.jar(com/qwest/omccsexample/ejb/CustomerBean/CustomerValue.java):120:
    cannot resolve symbol
    symbol : class RuntimeUtils
    location: package binding
    (source unavailable)
    C:\bea\user_projects\mydomain\.\myserver\.wlnotdelete\_appsdir_omccs_example_war_omccs_example_4653011\jarfiles\WEB-INF\lib\Customer_client32432.jar(com/qwest/omccsexample/ejb/CustomerBean/CustomerValue.java):121:
    cannot resolve symbol
    symbol : class RuntimeUtils
    location: package binding
    (source unavailable)
    4 errors
    Wondering if it is a bug...?
    any thoughts ?
    -Girish Bhatia
    [mywebapptest.zip]

  • How to find out web-inf path from the physical drive?

    How to find out web-inf path from the physical drive?
    I have some user profiles in web-inf directory.SO I want to know the path from root directory like
    d:/program files/allaire/jrun/appname/web-inf/profiles/username like that.
    Presently I am able to get the path upto the application directory and from that I am concatinationg web-inf/profiles/username .
    But it is giving problems when it is deployed under unix or linux.Because web-inf there it treats as WEB_INF
    SO I want to get the path of web-inf directory with out hard coding.
    Thanku

    String path = application.getRealPath("/WEB-INF/profiles/username");
    Note sure why you need this, but you don't need the real path to read the file - you can get an InputStream using the relative path. See ServletContext getResource() and getResourceAsStream().

  • How to setup using WEB-INF/lib in weblogic 10.3.1

    Hello everybody:
    I check weblogic 10.3.1 in %WLS_PAHT%/modules find com.bea.core.apache.commons.lang_2.1.0.jar.
    But I want using org.apache.commons.lang.time.DateUtils.addDays(java.util.Date date, int amount).
    In server version,no this method
    So I download commons-lang 2.4 from apache,and put it in WEB-INF/lib.
    and I aslo setting this :
    <?xml version="1.0" encoding="UTF-8"?>
    <wls:weblogic-application xmlns:wls="http://xmlns.oracle.com/weblogic/weblogic-application" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/javaee_5.xsd http://xmlns.oracle.com/weblogic/weblogic-application http://xmlns.oracle.com/weblogic/weblogic-application/1.0/weblogic-application.xsd">
    <!--weblogic-version:10.3.1-->
    <wls:application-param>
    <wls:param-name>webapp.encoding.default</wls:param-name>
    <wls:param-value>UTF-8</wls:param-value>
    </wls:application-param>
    <wls:prefer-application-packages>
    <wls:package-name>org.apache.commons.lang.time.*</wls:package-name>
    </wls:prefer-application-packages>
    </wls:weblogic-application>
    but when I run
    <body>
    <%=DateFormatUtils.format(DateUtils.addDays(new Date(),2),"yyyyMMdd HHmm")%>
    </body>
    this result :
    The method addDays(Date, int) is undefined for the type DateUtils
    <%=DateFormatUtils.format(DateUtils.addDays(new Date(),2),"yyyyMMdd HHmm")%>
    ^----^
         at weblogic.servlet.jsp.JavelinxJSPStub.reportCompilationErrorIfNeccessary(JavelinxJSPStub.java:221)
         at weblogic.servlet.jsp.JavelinxJSPStub.compilePage(JavelinxJSPStub.java:157)
         at weblogic.servlet.jsp.JspStub.prepareServlet(JspStub.java:246)
         at weblogic.servlet.jsp.JspStub.prepareServlet(JspStub.java:191)
         at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:235)
         Truncated. see log file for complete stacktrace
    >
    anyboby can tell me,how to setting this.

    Try to set &lt;prefer-web-inf-classes>true&lt;/prefer-web-inf-classes>
    --olaf
    Edited by: Olaf Heimburger on Oct 30, 2009 6:06 PM

Maybe you are looking for

  • Problem with downloading media to a iTunes Library on an External Hard Drive

    Hi guys, I am having difficulties playing back films and TV shows which have been downloaded from the iTunes store to a iomega HD which is connected to an airport extreme. During the download, everything looks right and I can even watch it from the i

  • Can't create EO from services (JDev 11g Preview 3)

    In JDeveloper 11g Tech Preview 3, I am unable to create an Entity Object from a service that I selected (with WSDL) in UDDI registry (Oracle AS 10g registry) using the EO creation wizard. After selecting the service and returning to the EO creation w

  • Flex 4.5 weird issue

    Hi All, I have encountered a weird issue after I migrated my application from flex 3.5 to flex 4.5. In our application, we have 3 kind of views, View, ChartView and StackedView, the later extends the former one, let's say, in ChartView we have <local

  • How do i put loudspeaker on during a call?

    how do i put on loudspeaker on my phone 4s during a call?????? i want record a voicemail message to my mac (in garageband) but cant find the loudspeaker option.... any clues?

  • Is it possible in Mac OS X 10.5?

    Hi, I'd like to know if it's valid this article to 10.5 Leopard Server. http://support.apple.com/kb/HT3930 Thanks for all, Álvaro