Context root

How to fetch context root of web application from FacesContex?

Hi user,
        FacesContext ctx = FacesContext.getCurrentInstance();
        HttpServletRequest request = (HttpServletRequest)ctx.getExternalContext().getRequest();
        request.getContextPath();Regards,
Koen Verhulst

Similar Messages

  • How do I change the context-root of a web app with a deployment plan?

    I've been trying to figure this out for several hours.
    I'm deploying a .ear file which sets the context root for the single web application it deploys in its application.xml deployment descriptor:
    <application>
    <display-name>MyApp</display-name>
    <module>
    <web>
    <web-uri>MyAppViewControler.war</web-uri>
    <context-root>MyApp</context-root>
    </web>
    </module>
    </application>
    I want to change the context-root from /MyApp to something else when deploying the ear file. It seemed to me that using a deployment plan was the way to do this. But when I use this plan:
    <deployment-plan>
    <application-name>MyApp<application-name>
    <variable-definition>
    <variable>
    <name>NEWCONTEXTROOT</name>
    <value>foobar</value>
    </variable>
    </variable-definition>
    <module-override>
    <module-name>MyApp</module-name>
    <module-type>ear</module-type>
    <module-descriptor external="false">
    <root-element>application</root-element>
    <uri>META-INF/application.xml</uri>
    <variable-assignment>
    <name>NEWCONTEXTROOT</name>
    <xpath>/application/module/web/context-root</xpath>
    </variable-assignment>
    </module-descriptor>
    </module-override>
    </deployment-plan>
    I get an error:
    weblogic.descriptor.DescriptorException: VALIDATION PROBLEMS WERE FOUND
    /bea/user_projects/domains/devod1/nullplan.xml:0: problem: cvc-complex-type.2.4a: Expected element 'web-uri@http://java.sun.com/xml/ns/javaee' instead of 'context-root@http://java.sun.com/xml/ns/javaee' here in element web@http://java.sun.com/xml/ns/javaee:<nullplan.xml>
    I looked at http://e-docs.bea.com/wls/docs103/pdf/deployment.pdf which says:
    "You cannot use a deployment plan to change the context-root in an application.xml
    file. However, if an application is deployed as a library, you can either change the
    context-root through an weblogic-application.xml file or use the deployment plan
    to change the context-root in an weblogic-application.xml file."
    I don't understand what this means. I'm not deploying my application as a library.
    Does anyone know how to change the context-root for an application?
    Any help would be greatly appreciated!

    Hi James,
    I am quite new to Welogic if i am wrong please correct me.I have re-deployed my application (.war) with this Plan.xml
    &lt;?xml version='1.0' encoding='UTF-8'?&gt;
    &lt;deployment-plan xmlns="http://www.bea.com/ns/weblogic/deployment-plan" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.bea.com/ns/weblogic/deployment-plan http://www.bea.com/ns/weblogic/deployment-plan/1.0/deployment-plan.xsd" global-variables="false"&gt;
    &lt;application-name&gt;BrowserR08.003&lt;/application-name&gt;
    *&lt;variable-definition&gt;*
    * &lt;variable&gt;*
    * &lt;name&gt;CONTEXTROOT&lt;/name&gt;*
    * &lt;value&gt;BrowserWeb/servlet/BrowserServlet&lt;/value&gt;*
    * &lt;/variable&gt;*
    * &lt;/variable-definition&gt;*
    &lt;module-override&gt;
    &lt;module-name&gt;BrowserWeb.war&lt;/module-name&gt;
    &lt;module-type&gt;war&lt;/module-type&gt;
    &lt;module-descriptor external="true"&gt;
    &lt;root-element&gt;weblogic-web-app&lt;/root-element&gt;
    &lt;uri&gt;WEB-INF/weblogic.xml&lt;/uri&gt;
    &lt;hash-code&gt;1231953167814&lt;/hash-code&gt;
    *&lt;variable-assignment&gt;*
    * &lt;name&gt;CONTEXTROOT&lt;/name&gt;*
    * &lt;xpath&gt;/weblogic-web-app/context-root&lt;/xpath&gt;*
    * &lt;operation&gt;add&lt;/operation&gt;*
    * &lt;/variable-assignment&gt;*
    &lt;/module-descriptor&gt;
    &lt;module-descriptor external="false"&gt;
    &lt;root-element&gt;web-app&lt;/root-element&gt;
    &lt;uri&gt;WEB-INF/web.xml&lt;/uri&gt;
    &lt;/module-descriptor&gt;
    &lt;module-descriptor external="true"&gt;
    &lt;root-element&gt;wldf-resource&lt;/root-element&gt;
    &lt;uri&gt;META-INF/weblogic-diagnostics.xml&lt;/uri&gt;
    &lt;/module-descriptor&gt;
    &lt;/module-override&gt;
    &lt;config-root&gt;/export/home1/tecapp/BrowserR08.003/plan&lt;/config-root&gt;
    &lt;/deployment-plan&gt;
    I do not know wether i will require the other module descriptor definition in this Plzn.xml. Now when I go to following link.
    Deployments --&gt; MyApp --&gt; Testing
    It gives me following url as a test page:
    http://localhost:7001/BrowserWeb/servlet/BrowserServlet
    as soon as i click on to the above link it redirects me to following.
    http://localhost:7001/BrowserWeb/servlet/BrowserServlet/servlet/BrowserServlet
    Same if i remove these context-root part my normal Testing menu shows me following link as my webapp access path
    http://localhost:7001/BrowserWeb &lt;-- My war file name is BrowserWeb.war so it is default name of my deployed application if i am not wrong
    and as soon as i click on above link it redirects me to the following one.
    http://localhost:7001/BrowserWeb/servlet/BrowserServlet
    It means application server know that my full web access page is with '*servlet/BrowserServlet*' because its adding it in both the cases.
    What I want is a constant URL whcih does not change?
    Hope this helps :)

  • How to configure multiple virtual hosts for the same context root /

    Hi,
    I am using Glassfish V1 U1 - b14 on Solaris.
    I am trying to configure two applications to be mapped to the / root context, each one in its own virtual host.
    Two things I have noticed:
    1. I have to manually add virtual-hosts="hostId" in domain.xml/application-ref ... looks like just simply deploying the app does not do that although the application is set as default for its particular virtual host. Is this a bug?
    2. Although I have set for each virtual host the default web-app correctly, and they both respond fine, I cannot map both of them to the / context. The second application (chronologically deployed) does not respond when called with the / context ....
    Any ideas? Is this a bug again?
    Regards,
    Rares
    Message was edited by:
    raresp

    Wow, that's a shame. All mighty Application Server and two different apps on two different virtual hosts are considered ambiguous to have the same context root definition.... Fair play to Tomcat and 90% of the rest of servlet containers!
    In my case I have the same EAR we are planning to deploy to many (up to 30) virtual hosts. Faking different context roots for each deployment will bring unnecessary overheads...
    Should I file a bug or feature request?
    Thanks again for your answer, although you're basically saying it is not possible I will wait and look a while for a possible solution before bringing this topic to a conclusion.

  • Mapping of Web App context root and the physical directory of the web app

    I'm running Weblogic 7.0 on Windows2000.The physical directory of my web application
    is D:\WL8\weblogic81\TestDeploy\build\TestWebApp and under these directory I have
    my JSPS, static HTML and WEB-INF. I define the context path of this web app in
    the weblogic.xml ;-
    <weblogic-web-app>
         <context-root>/testapp</context-root>
    </weblogic-web-app>
    As a result of deploying this web app in the server (or it may be created manually
    also), the following entry gets inserted in the server's config.xml ,-
    <Application Deployed="true" Name="TestWebApp"
    Path="D:\WL8\weblogic81\TestDeploy\build" TwoPhase="true">
    <WebAppComponent Name="TestWebApp" Targets="myserver" URI="TestWebApp"/>
    </Application>
    Now, whenever I make a request of the form "http://localhost:7001/testapp/..",
    it's properly executing my web app. My question is, how does the container knows
    that for any request for the web app with context path as 'testapp', it has to
    server files from D:\WL8\weblogic81\TestDeploy\build\TestWebApp. In the above
    process, nowhere such mapping is specified. I expected something like Tomcat's
    server.xml, where in docbase we clearly specify this mapping between the context
    path and the physical directory. Please help.

    Let me give some more details and hopefully this will make things clearer.
    Say you deploy /foo/bar/myweb.war and in myweb.war you configure a
    context-root of /rob
    During deployment, the server creates an ApplicationMBean with a path of
    /foo/bar/. It then creates a WebAppComponent with a uri of myweb.war.
    Next, deployment calls back on the web container and tells it to deploy
    the WebAppComponent. The web container reads the myweb.war, parses
    descriptors etc. The web container then updates its data structures to
    register that myweb.war has a context path of /rob. (It has to figure
    out all the other servlet mappings as well.)
    When a request for /rob/foo comes in, the web container consults its
    data structures to determine which webapp and servlet receives the
    request. This is not a linear search of all webapps and servlets.
    There's much better ways to do pattern matching.
    Hope this clears things up. Let me know if you still have questions.
    -- Rob
    Arindam Chandra wrote:
    Thanks for the answer. Still one thing is not clear. Whatever context path I declare
    for my web app as the value of <context-root> element in the weblogic.xml (in
    my example it's "/testapp"), it is no where mapped with the "URI" attribute (or
    any other attribute, sub-element whatsoever in the <Application> element).
    Application Deployed="true" Name="TestWebApp"
    Path="D:\WL8\weblogic81\TestDeploy\build" TwoPhase="true">
    <WebAppComponent Name="TestWebApp" Targets="myserver" URI="TestWebApp"/>
    </Application>
    So when a request of the form http://myweblogic.com:7001/testapp/... arrives at
    the server, how does the server knows that it has to serve this request with files
    from D:\WL8\weblogic81\TestDeploy\build\TestWebApp ? It should not be like the
    web container iterates thru all the web application entries in config.xml and
    tries to match with one context-root declaration. I repeat, I expected some mapping
    similar to Tomcat's server.xml, where in the <docbase> element u clearly specify
    the mapping between the context path and the physical directory
    Rob Woollen <[email protected]> wrote:
    Arindam Chandra wrote:
    I'm running Weblogic 7.0 on Windows2000.The physical directory of myweb application
    is D:\WL8\weblogic81\TestDeploy\build\TestWebApp and under these directoryI have
    my JSPS, static HTML and WEB-INF. I define the context path of thisweb app in
    the weblogic.xml ;-
    <weblogic-web-app>
         <context-root>/testapp</context-root>
    </weblogic-web-app>
    As a result of deploying this web app in the server (or it may be createdmanually
    also), the following entry gets inserted in the server's config.xml,-
    <>So the server will look for your web application at the Application Path
    (D:\WL8\weblogic81\TestDeploy\build|) + the web uri (TestWebApp). So
    it
    maps the context-root you've specified /testapp to that path.
    It's a little clearer in the case where you had a full-fledged EAR.
    Then you'r application path would map to the "root" of the EAR, and the
    uris would point to the various modules (eg webapps.)
    -- Rob
    Now, whenever I make a request of the form "http://localhost:7001/testapp/..",
    it's properly executing my web app. My question is, how does the containerknows
    that for any request for the web app with context path as 'testapp',it has to
    server files from D:\WL8\weblogic81\TestDeploy\build\TestWebApp. Inthe above
    process, nowhere such mapping is specified. I expected something likeTomcat's
    server.xml, where in docbase we clearly specify this mapping betweenthe context
    path and the physical directory. Please help.

  • FYI: Extension Builder project w/ LCDS: channel-definition endpoint having context.root

    This is an FYI of an issue and its workaround.
    If developing a CS SDK Extension in Flash Builder / Extension Builder and the project is configured to use LCDS (LiveCycle DataServices), then if your services-config.xml contains Channel definitions having the variable {context.root} in the endpoint URL, then the following error will occur.  This will happen even if you are not using that Channel in your Destination channel list.
    The services-config.xml laid down when using LCDS integrated into ColdFusion has by default some channel definitions using context.root in the endpoint URLs.   This is how I encountered the issue.  On the other hand, the free developer edition of LCDS on Tomcat puts down a services-config.xml that does not have any reference to {context.root} in channel definitions, so the problem will not be encountered there.
    Since I was not using a context root (was using the default of just "/"), I commented out the offending channels in services-config.xml to resolve the issue.  One could also leave the (unused) channel definitions and then remove the {context.root} part from the endpoint.
    ERROR
    The services configuration includes a channel-definition 'java-amf' that has an endpoint with a context.root token but a context root has not been defined. Please specify a context-root compiler argument.
    CHANNEL DEFINITION
    <!--  Java Based Endpoints -->
            <channel-definition id="java-amf" class="mx.messaging.channels.AMFChannel">
                <endpoint uri="http://{server.name}:{server.port}{context.root}/flex2gateway/amf" class="flex.messaging.endpoints.AMFEndpoint"/>
            </channel-definition>

    Make sure your context root is defined in the project properties.  This is at "project/properties/Flex Server" from the menubar or package explorer context menu.  Alternately, you can hardcode your context root in the services-config.xml file/channel definition.

  • How to change data source name and context root during deployment

    Hi,
    Env:
    WLS 10.1.3
    JDev 11.1.1.6
    Hudson
    I need to deploy two instances of my ADF application on the same development enviroment. We are using Hudson to deploy. My question is how to change data source name and application context root before second deployment.
    Kuba

    I don't believe there is an inbuilt facility to do this.
    Previously how I've done this is when checking files out using Hudson jovs, before the build I then use an Ant extension called XmlTask (http://www.oopsconsultancy.com/software/xmltask/) to modify the required XML files.
    Can I ask why you're doing this in the first place please? Multi-tenancy? 2 versions of the same app?
    CM.

  • How to map a url that does not match with the context root  ?

    does weblogic support url that does not match the context root ?
    ex. the context root is AAA. the welcome page can be
    retrieved using http://localhost:7001/AAA
    Can it be configured to use http://localhost:7001/BBB to bring up the index.html in context root AAA ? if so, how ?

    I agree with Imp68.
    It still amazes me that in 2014 so many web sites are still not standards-compliant and instead insist on sniffing for the user-agent.  And, in the majority of cases, I've found that the websites work fine with any modern browser.
    phardell,
    To be clear, Safari is not the problem, the website is!  The developer of this website is still living in the 1990s and needs to move forward with the times.  Imp68's suggestion will cause Safari to "pretend" to be whatever browser you wish.  Try choosing "Safari 7" if that worked for you in the past and the website will likely go back to working.  If that does not work then try choosing "Internet Explorer 10" from the menu and see if that works.
    No matter what the result, you should look at the bottom of the page for a link to report problems with the website.  Submit a comment that tells them that they need to "modernize your website to support all modern web browsers".
    Good luck.

  • How can I get the web application's context root?

    I have a web application, which is defined in Tomcat's server.xml:
    <Context path="/cbes" docBase="e:\work\GM\code\CBESCurrency" debug="0"
    reloadable="true" crossContext="false"/>
    And I hava a servlet in this web application.
    How can I get the context root of the web application?
    in this example: reture should be "cbes" or "/cbes"
    how?
    thanks alot.

    getContextPath() in javax.servlet.http.HttpServletRequest

  • Context.root has not been defined

    I am trying to compile .mxml file using flex builder 3. I am using BlazeDS to run it from C:\Program Files\blazeds\tomcat\webapps\BlazeDSmsgService. I also copied the WEB-INF folder at my project folder (BlazeDSmsgService) I am getting the following error.
    The services configuration includes a channel-definition 'my-amf' that has an endpoint with a context.root token but a context root has not been defined. Please specify a context-root compiler argument.
    I was finally able to fix and run my project!
    When setting up the flex project, choose J2EE server technology and specifiy  BlazeDS server location and context root to your project. This should do it.

    Make sure your context root is defined in the project properties.  This is at "project/properties/Flex Server" from the menubar or package explorer context menu.  Alternately, you can hardcode your context root in the services-config.xml file/channel definition.

  • How can i retrieve xsl file by context-root

    we have a project using weblogic server6.1,all things done smoothly,
              but,we met a big problem . we use xml and xsl export html,but the problem is
              how can we retrieve xsl document in the same project root by relative path
              to context-root,is there some method else work around this. thanks in
              advance.
              

    In Repository, double click on XSL program.
    It will show you the mapping program, Graphical & there is one option for Code also, you can check the code there.
    Else if you have stylus studio, so export that program from repository & import into the stylus studio.
    When you will check this in stylus studio, it will ask you sender structure & receiver structure, just give it XSD of sender & receiver structures. Here you can check the complete mapping in graphical as well as codiing.
    Sandeep Kaushik

  • Context-Root already exists in a deployed object

    I have deployed an EAR project which includes a web module and an EJB module. Now when I right click on any jsp/html file inside my web module (in studio enterprise) to run the file, I get an error stating "Deploying application in domain failed; Context-Root already exists in a deployed object". It appears to be trying to deploy the web module as a stand alone module, but cant because the context root already exists in the EAR deployment. If I run the page from the broswer by typing in the proper URL, it works fine since it is not trying to redeploy.
    If my assumption is true, why is it trying to re deploy as a stand alone module? What can I do to prevent this from happening?
    Thanks!

    - The ide, by default, performs the compile-deploy-run cycle when 'run' is selected. If you move to the 'Files' tab in the project window and expand nbproject|build-impl.xml file, you will see the ant targets used by the build system. Select 'run', right-click and select open; you will see 'run' target depends on run-deploy.
    There are targets available that act on single files, namely compile-single and debug-single that you can try on single files.
    You can also try copying the 'run' target to something like 'my-run' and remove the dependency on run-deploy. The you could select 'my-run' and select 'run-target' right-click menu item.
    In general though, such workarounds are tricky. It is likely i am not understanding the issue here or perhaps it is a bug in the ide or even that ide cannot allow running without redeploy for valid reasons...
    - JSE8.1 is based on NetBeans 5.0.
    Ref: http://forum.java.sun.com/thread.jspa?threadID=5113472
    For J2EE programming, www.netbeans.org site provides a lot of info that are also applicable for jse.
    Docs: http://www.netbeans.org/kb/index.html
    There are several mailing lists, http://www.netbeans.org/community/lists/top.html#top, and some of them dedicated to j2ee. You may want to subscribe to some of these; several j2ee experts are on these mailing lists.

  • How to access static resources in ear without specifing context-root

    Hello, i have a problem with my ear.
    The war's structure is like this:
    ---/jsp
    ---/css
    ---/images/ViewRisposte.gif
    ---/xsl/Request.xsl
    ---/Common/data.xsl
    /error.xsl
    /input.xsl
    xsl files reference css and images files that are contained in css and images dir.
    I can't use the "../" to specify css and images path into xsl and jsp due to security policy setting on the Http server (and I can't change this policy).
    In the ear's application.xml is specified the context root of the module web with the name SABEARWeb
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <application>
    <display-name>SABEARWeb module</display-name>
    <module>
    <web>
              <web-uri>SABEARWeb.war</web-uri>
              <context-root>SABEARWeb</context-root>
         </web>
    </module>
    </application>
    For example with this following code (Request.xsl), how can i replace the "../" notation to access xsl and image resouces without write the context root? How i can insert the images and css references into xsl and jsp files?
    <xsl:import href="../Common/data.xsl" />
    <img align="center" width="20" src="../images/ViewRisposte.gif" id="viewXslRisp" title="Visualizza Risposta">...</img>
    Thanks a lot

    >>As I understand I should change View1 by handling command of button “Edit”, and then View 2 should be displayed, then I change data and then View1 should be updated. How to do it?
    For information about how to handle a command, please refer to my blog post:
    http://blog.magnusmontin.net/2013/06/30/handling-events-in-an-mvvm-wpf-application/
    You could bind the Command property of the edit button to an ICommand property of VMMain. When this command is executed you could then send a message using an event aggregator or some kind of messenger. Please refer to my blog post for more information about
    how to for example use Prism's event aggregator class to pass events between view model classes:
    http://blog.magnusmontin.net/2014/02/28/using-the-event-aggregator-pattern-to-communicate-between-view-models/
    Andy has written an example of how to use MvvmLight's Messenger class:
    http://social.technet.microsoft.com/wiki/contents/articles/26070.communicating-between-classes.aspx
    The concepts are the same but you will have to download and reference either Prism:
    https://www.nuget.org/packages/Prism/
    ...or MvvmLight: https://www.nuget.org/packages/MvvmLight/
    You then subcribe to this event or message in the main view model and change the value of the CurrentPageViewModel property whenever you recieve an event. Note that the class must implement the INotifyPropertyChanged interface and raise its PropertyChanged
    interface for this to work:
    https://msdn.microsoft.com/en-us/library/system.componentmodel.inotifypropertychanged%28v=vs.110%29.aspx?f=255&MSPPError=-2147217396
    This is how you are supposed to communicate between different view model classes.
    Hope that helps.
    Please remember to close your threads by marking helpful as answer and then start a new thread if you have a new question.

  • How to define specify a context-root?

    Hi ,
    I get the error:
    The services configuration includes a channel-definition
    'my-cfamf' that has an endpoint with a context.root token but a
    context root has not been defined. Please specify a context-root
    compiler argument.
    how to define specify a context-root?Thanks
    MK

    Hi Chiru,
    Login to Sysadmin resp and go to
    Security-->Users-->define
    then query your username,in the direct responsiblity tab u can add the GL resp.
    Hope this helps you.
    Cheers,
    Vijay

  • HowTo: deploy an j2ee app using "/" as context root on iAS 6.5

    Hi all iAS expert
    It is highly appreciated one can teach me how to get around below problem
    l deployed an app using "/" as context root. But the iAS could respond to any HTTP request.
    However, as l changed the context root to sth other than root. iAS responded properly.
    Can someone help me get around this problem ?
    thank you a lot
    fox

    I deployed the same EJB on WLS 6.1+sp3 and WLS 7.0.
    These both work. Looks like there is some problem with WLS6.0+sp2. I have opened
    a case with BEA customer support.
    --Latha

  • Navigation and context root

    I have a web application that only has four pages. A login brings a user to a welcome page and then from the welcome page, the user should be able to access either of the other two pages. However, jsf is trying to direct to the other pages relative to the page it is currently on. For instance, in my WebContent folder I have an html folder which has otherTwo and welcome folders. welcome.jsp is in the welcome folder and the page I am trying to get to is in the otherTwo folder. When I click the link to get to the page, it says html/welcome/html/othertTwo/page.jsp is not found.
    Relevant code
    <navigation-rule>
    <navigation-case>
      <from-outcome>otherPage</from-outcome>
      <to-view-id>/html/otherTwo/page.jsp</from-outcome>
    </navigation-case>
    </navigation-rule>I have never had this problem before with jsf. I am using backbase for the first time in this application and was wondering if anyone knew if it is known for causing issues like this. Also, is there a way to set the context root explicitly in say web.xml or something like that?
    Thanks

    sl,
    Have you looked at the deployed applications in the OAS admin tool (GUI)? I'd be curious as t what you might find there with two applications using the same context root.
    -Michael

Maybe you are looking for