From: Paul W. <pwa...@ps...> - 2006-11-28 00:34:50
|
There has been to response to my email below of November 21st. But with Greg's new documentation, I will restate my question regarding Jetty 6.1(SVN) as follows: 1. I can successfully deploy all my webapps (both .war and directories) using the following statement(s) in my jetty.xml file (depricacted approach): <New id="StoriesContext" class="org.mortbay.jetty.webapp.WebAppContext"> <Arg><Ref id="contexts"/></Arg> <Arg><SystemProperty name="jetty.home" default="."/>/webapps/stories.war</Arg> <Arg>/</Arg> <Set name="defaultsDescriptor"><SystemProperty name="jetty.home" default="."/>/etc/webdefault.xml</Set> <Set name="virtualHosts"> <Array type="java.lang.String"> <Item>ww2.preservingstories.com</Item> <Item>ww2.documentingyourlife.com</Item> </Array> </Set> </New> 2. Per Greg's documentation and the information on the Wiki, the following is the setup in jetty.xml (default example with jetty.xml) for the newer approach for webapps (Jetty 6.1): <Call name="addLifeCycle"> <Arg> <New class="org.mortbay.jetty.deployer.ContextDeployer"> <Set name="contexts"><Ref id="Contexts"/></Set> <Set name="configurationDir"><SystemProperty name="jetty.home" default="."/>/contexts</Set> <Set name="scanInterval">1</Set> </New> </Arg> </Call> AND the following context is setup as stories.xml in the /jetty/contexts directory: <Set name="contextPath">/stories</Set> <Set name="resourceBase"><SystemProperty name="jetty.home" default="."/>/webapps/stories</Set> <Set name="virtualHosts"> <Array type="java.lang.String"> <Item>ww2.preservingstories.com</Item> <Item>ww2.documentingyourlife.com</Item> </Array> </Set> 3. Configuration 1 above works as intended -- no problems -- both www.preservingstories.com and www.documentingyourlife.com find the webpage and display it as intended. (My DNS forwards www.documentingyourlife.com to ww2.documentingyourlife.com:5000 and so on). 4. Configuration 2 above results in Error 404 with the contexts discovered and deployed but no access or display of the webapp using the URL. 5. What needs to be done to make configuration 2 equivalent in function to configuration 1 above. Note that I use configuration 1 with many different web sites all hosted from the same IP address but with different URLs and web content. It has been working great for some time now - eight different web contexts, many with virtual hosts. That's all I wish to do with configuration 2 but so far -- it does not work per my configuration. The only difference I see is that in configuration 1, an additional <ARG>/</ARG> is supplied to the New ID and it works. I don't see how to accomplish the equivalent argument in configuration 2. Please advise, Thanks, Paul ---------- Forwarded message ---------- From: Paul Watkins <pwa...@ps...> Date: Nov 21, 2006 4:27 PM Subject: Re: [Jetty-support] Re: Jetty 6 with multiple virtual hosts To: "Jetty usage, help & informal support" <jet...@li...> OK, see the responses to your questions, beneath each one below: Thanks, Paul On 11/21/06, Jan Bartel <ja...@mo...> wrote: > Paul, > > It's difficult to know what is going on without having the full > details of your setup - DNS assignments, webapp/ contents, /contexts > contents, etc/jetty.xml etc etc. My DNS is setup to webforward as follows: http://www.preservingstories.com forwards to http://ww2.preservingstories.com:5000 The webapp/ content is the following war files: stories.war and familyhap.war and the following directories: test, ulodging, test-jaas, rei, pswdic, uniting, romance The above are verified in the results indicated below. The /contexts contents contains: stories.xml, familyhap.xml and test.xml The jetty.xml is the standard jetty.xml generated in the latest SVN of Jetty 6.1 -- with the port modified from 8080 to 5000. > > To clarify for me, can you tell me what happens when you type in > these 2 urls to a browser: > > http://ww2.preservingstories.com:5000/stories > http://ww2.documentingyourlife.com:5000/stories > HTTP ERROR: 404 NOT_FOUND RequestURI=/stories/ Powered by jetty:// > > Typing the following (or the name of the host if you can't run a > browser on localhost): > http://localhost:5000 Error 404 - Not Found. No context on this server matched or handled this request. Contexts known to this server are: * /test ---> org.mortbay.jetty.webapp.WebAppContext@a83b8a{/test,file:/opt/jetty/webapps/test/} * /stories ---> org.mortbay.jetty.webapp.WebAppContext@dd20f6{/stories,file:/opt/jetty/webapps/stories.war} * /javadoc ---> org.mortbay.jetty.servlet.Context@1a1c887{/javadoc,file:/opt/jetty/javadoc/} * /familyhap ---> org.mortbay.jetty.webapp.WebAppContext@fd13b5{/familyhap,file:/opt/jetty/webapps/familyhap.war} * /ulodging ---> org.mortbay.jetty.webapp.WebAppContext@136a43c{/ulodging,file:/tmp/Jetty_0_0_0_0_5000__ulodging_/webapp/} * /test-jaas ---> org.mortbay.jetty.webapp.WebAppContext@589e56{/test-jaas,file:/opt/jetty/webapps/test-jaas/} * /rei ---> org.mortbay.jetty.webapp.WebAppContext@3411a{/rei,file:/tmp/Jetty_0_0_0_0_5000__rei_/webapp/} * /pswdic ---> org.mortbay.jetty.webapp.WebAppContext@1a7508a{/pswdic,file:/tmp/Jetty_0_0_0_0_5000__pswdic_/webapp/} * /uniting ---> org.mortbay.jetty.webapp.WebAppContext@198cb3d{/uniting,file:/tmp/Jetty_0_0_0_0_5000__uniting_/webapp/} * /romance ---> org.mortbay.jetty.webapp.WebAppContext@472d48{/romance,file:/opt/jetty/webapps/romance/} >The links above may not work if a virtual host is configured > should, as you say, show you the list of contexts deployed, but clicking > on the links for those contexts with virtual hosts won't work. For the > contexts that don't have virtual hosts, then clicking the links should work. > > regards > Jan > > Paul Watkins wrote: > > Hi Jan, > > > > I've checked everything that you suggested below to no avail: > > > > 1. I'm using the supplied jetty.xml file with Jetty 6.1 SVN with only > > one modification: the port is 5000 rather than 8080. > > > > 2. Otherwise, my context config file for stories is as supplied below > > in my original email. > > > > If I type http://www.preservingstories.com , I get the Error 404 page > > in Jetty with all the apps and their contexts. So I know that the URL > > is working and taking me to the correct port. (This URL worked fine > > with the old approach where everything was configured in jetty.xml > > rather than the context directory). > > > > 3. I have two apps with contexts set in the context directory: the > > stories one below and another familyhap. When the error 404 page > > displays, clicking on either of those context links on the page will > > not display the web pages (as expected with virtual hosts). The other > > apps with links on the error 404 page, all from detection in the > > webapps directory without explicit contexts, will display when the > > link is clicked, but of course since an explicit context is not set, a > > URL will not work. > > > > 4. So any ideas on why the URL is not resolving to the app? I notice > > you are using ip addresses whereas I'm using web domains -- should > > that make a difference? All my domain names for "stories" resolve to > > the same IP address. It looks like in your examples below you have > > different IP addresses as virtual host addresses. Am I missing > > something here? All my virtual hosting previously setup in jetty.xml > > was multiple web domains all resolving to the same physical ip address > > with the idea that the context would determine which webapp would > > display. > > > > Thanks, > > > > Paul > > > > On 11/20/06, Jan Bartel <ja...@mo...> wrote: > >> Paul, > >> > >> it looks fine to me. Do you by chance have the context /stories also > >> defined in your jetty.xml file, but without a virtual host list? > >> If so, it will match any incoming request for /stories/whatever > >> > >> Just FYI, here's the two $jetty.home/context/ files I am using to test the > >> virtual hosts: > >> > >> $jetty.home/contexts/first.xml: > >> <?xml version="1.0" encoding="ISO-8859-1"?> > >> <!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN" "http://jetty.mortbay.org/configure.dtd"> > >> <Configure class="org.mortbay.jetty.webapp.WebAppContext"> > >> <!-- Required minimal context configuration --> > >> <Set name="contextPath">/test</Set> > >> <Set name="resourceBase"><SystemProperty name="jetty.home" default="."/>/webapps/first</Set> > >> <Set name="VirtualHosts"> > >> <Array type="java.lang.String"> > >> <Item>127.0.0.1</Item> > >> <Item>127.0.0.2</Item> > >> <Item>127.0.0.3</Item> > >> </Array> > >> </Set> > >> <!-- Optional context configuration --> > >> <Get name="securityHandler"> > >> <Set name="userRealm"> > >> <New class="org.mortbay.jetty.security.HashUserRealm"> > >> <Set name="name">Test Realm</Set> > >> <Set name="config"><SystemProperty name="jetty.home" default="."/>/etc/realm.properties</Set> > >> </New> > >> </Set> > >> </Get> > >> </Configure> > >> > >> $jetty.home/contexts/other.xml: > >> <?xml version="1.0" encoding="ISO-8859-1"?> > >> <!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN" "http://jetty.mortbay.org/configure.dtd"> > >> <Configure class="org.mortbay.jetty.webapp.WebAppContext"> > >> <Set name="contextPath">/test</Set> > >> <Set name="resourceBase"><SystemProperty name="jetty.home" default="."/>/webapps/other</Set> > >> <Set name="VirtualHosts"> > >> <Array type="java.lang.String"> > >> <Item>127.0.0.4</Item> > >> <Item>127.0.0.5</Item> > >> <Item>127.0.0.6</Item> > >> </Array> > >> </Set> > >> <!-- Optional context configuration --> > >> <Get name="securityHandler"> > >> <Set name="userRealm"> > >> <New class="org.mortbay.jetty.security.HashUserRealm"> > >> <Set name="name">Test Realm</Set> > >> <Set name="config"><SystemProperty name="jetty.home" default="."/>/etc/realm.properties</Set> > >> </New> > >> </Set> > >> </Get> > >> </Configure> > >> > >> I've just copied $jetty.home/webapps/test to $jetty.home/webapps/first and $jetty.home/webapps/other. > >> I modified $jetty.home/webapps/other/index.html to say "Welcome to THE OTHER Jetty 6" so I could > >> tell the difference. > >> > >> Importantly, I changed $jetty.home/contexts/test.xml to also have a disjoint list of > >> virtual host addresses. If I hadn't done that, then all requests for /test would be > >> routed to that webapp because without a virtual host list it would match any incoming > >> request for /test. > >> > >> cheers > >> Jan > >> > >> Paul Watkins wrote: > >>> Jan, > >>> > >>> I'm confused with the instructions below and Jetty 6.1 Snapshot or prerelease. > >>> > >>> In that version, I'm attempting to use specific contexts in the > >>> jetty/contexts directory but am not able to use a URL to access the > >>> web pages. The context deploys and the hot deployer works. Here is > >>> an example of my code based on the test.xml file in the contexts > >>> directory. I'm using the virtual hosts approach but can't access with > >>> a URL. The "old" way of deploying the webapps works where the contexts > >>> are set in the jetty.xml or similar config files using the approach > >>> you described in the original response to this email stream. What am > >>> I missing here? : > >>> > >>> <?xml version="1.0" encoding="ISO-8859-1"?> > >>> <!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN" > >>> "http://jetty.mortbay.org/configure.dtd"> > >>> > >>> <!-- ================================================================== > >>> Configure and deploy the test web application in $(jetty.home)/webapps/test > >>> > >>> Note. If this file did not exist or used a context path other that /test > >>> then the default configuration of jetty.xml would discover the test > >>> webapplication with a WebAppDeployer. By specifying a context in this > >>> directory, additional configuration may be specified and hot deployments > >>> detected. > >>> ===================================================================== --> > >>> > >>> <Configure class="org.mortbay.jetty.webapp.WebAppContext"> > >>> > >>> > >>> <!-- Required minimal context configuration --> > >>> > >>> <Set name="contextPath">/stories</Set> > >>> <Set name="resourceBase"><SystemProperty name="jetty.home" > >>> default="."/>/webapps/stories.war</Set> > >>> <!-- <Set name="overrideDescriptor"><SystemProperty name="jetty.home" > >>> default="."/>/contexts/test.d/override-web.xml</Set> --> > >>> <Set name="virtualHosts"> > >>> <Array type="java.lang.String"> > >>> <Item>ww2.preservingstories.com</Item> > >>> <Item>ww2.documentingyourlife.com</Item> > >>> </Array> > >>> </Set> > >>> <Set name="defaultsDescriptor"><SystemProperty name="jetty.home" > >>> default="."/>/etc/webdefault.xml</Set> > >>> > >>> <!-- Optional context configuration --> > >>> > >>> <Get name="securityHandler"> > >>> <Set name="userRealm"> > >>> <New class="org.mortbay.jetty.security.HashUserRealm"> > >>> <Set name="name">Test Realm</Set> > >>> <Set name="config"><SystemProperty name="jetty.home" > >>> default="."/>/etc/realm.properties</Set> > >>> </New> > >>> </Set> > >>> </Get> > >>> > >>> </Configure> > >>> > >>> --------------------------------------------------------------- > >>> > >>> Thanks, > >>> > >>> Paul > >>> > >>> On 11/17/06, Jan Bartel <ja...@mo...> wrote: > >>>> Jeff, > >>>> > >>>> cc'ing this to the jetty-support list, as others may be interested too. > >>>> > >>>> Adding virtual hosts is a matter of listing them as an array > >>>> on the WebAppContext for the webapp (see below). > >>>> > >>>> If you want to serve 2 different webapps from different virtual > >>>> hosts, but both at the same context path, then you define > >>>> 2 WebAppContexts, one for each webapp, put them both at the > >>>> same context path, but define different virtual host lists for > >>>> them. > >>>> > >>>> Assuming we'd defined a connector listening on port 8080, this > >>>> example would serve webapp xxx.war at: > >>>> http://333.444.555.666:8080/ > >>>> http://127.0.0.1:8080/ > >>>> http://www.blah.com:8080/ > >>>> http://www.blah.net:8080/ > >>>> http://www.blah.org:8080/ > >>>> > >>>> and webapp zzz.war at: > >>>> http://777.888.888.111:8080/ > >>>> http://127.0.0.2:8080/ > >>>> http://www.other.com:8080/ > >>>> http://www.other.net:8080/ > >>>> http://www.other.org:8080/ > >>>> > >>>> <New class="org.mortbay.jetty.webapp.WebAppContext"> > >>>> <Arg><Ref id="contexts"/></Arg> > >>>> <Arg><SystemProperty name="jetty.home">/webapps/xxx.war</Arg> > >>>> <Arg>/</Arg> > >>>> <Set name="defaultsDescriptor"><SystemProperty name="jetty.home" default="."/>/etc/webdefault.xml</Set> > >>>> <Set name="VirtualHosts"> > >>>> <Array type="java.lang.String"> > >>>> <Item>333.444.555.666</Item> > >>>> <Item>127.0.0.1</Item> > >>>> <Item>www.blah.com</Item> > >>>> <Item>www.blah.net</Item> > >>>> <Item>www.blah.org</Item> > >>>> </Array> > >>>> </Set> > >>>> </New> > >>>> > >>>> <New class="org.mortbay.jetty.webapp.WebAppContext"> > >>>> <Arg><Ref id="contexts"/></Arg> > >>>> <Arg><SystemProperty name="jetty.home">/webapps/zzz.war</Arg> > >>>> <Arg>/</Arg> > >>>> <Set name="defaultsDescriptor"><SystemProperty name="jetty.home" default="."/>/etc/webdefault.xml</Set> > >>>> <Set name="VirtualHosts"> > >>>> <Array type="java.lang.String"> > >>>> <Item>777.888.888.111</Item> > >>>> <Item>127.0.0.2</Item> > >>>> <Item>www.other.com</Item> > >>>> <Item>www.other.net</Item> > >>>> <Item>www.other.org</Item> > >>>> </Array> > >>>> </Set> > >>>> </New> > >>>> > >>>> I'll write this up as a wiki entry. > >>>> > >>>> regards > >>>> Jan > >>>> > >>>> > >>>> > >>>> > >>>> > >>>> > >>>> > >>>> Jeff Shoemaker wrote: > >>>>> I'm sorry to bug you, but I've been googling how to get this working > >>>>> forever. I need Jetty 6 to support multiple virtual host entries, > >>>>> both with a context path of /. This Jetty5 xml does not work in > >>>>> Jetty6 > >>>>> > >>>>> <Call name="addWebApplication"> > >>>>> <Arg>/context</Arg> > >>>>> <Arg>./webapps/myapp</Arg> > >>>>> > >>>>> <Set name="virtualHosts"> > >>>>> <Array type="java.lang.String"> > >>>>> <Item>www.acme.com</Item> > >>>>> <Item>acme.com</Item> > >>>>> <Item>www.wileyc.com</Item> > >>>>> <Item>184.34.51.125</Item> > >>>>> </Array> > >>>>> </Set> > >>>>> </Call> > >>>>> > >>>>> > >>>>> Below is an example of what I currently have, but the second domain > >>>>> only works if I give it another contextPath besides /. I think I'm > >>>>> close, just missing a little something. Thank you. > >>>>> > >>>>> > >>>>> <Item> > >>>>> <New id="websiteOneWebAppContext" > >>>>> class="org.mortbay.jetty.webapp.WebAppContext"> > >>>>> <Set name="contextPath">/</Set> > >>>>> <Set name="war">./webapps/root.war</Set> > >>>>> <Set name="extractWAR">true</Set> > >>>>> <Set name="VirtualHosts"> > >>>>> <Array type="java.lang.String"> > >>>>> <Item>www.websiteone.com</Item> > >>>>> </Array> > >>>>> </Set> > >>>>> <Get name="SessionHandler"> > >>>>> <Set name="SessionManager"><New > >>>>> class="org.mortbay.jetty.servlet.HashSessionManager"/></Set> > >>>>> </Get> > >>>>> </New> > >>>>> </Item> > >>>>> > >>>>> <Item> > >>>>> <New id="websiteTwoWebAppContext" > >>>>> class="org.mortbay.jetty.webapp.WebAppContext"> > >>>>> <Set name="contextPath">/</Set> > >>>>> <Set name="war">./webapps/websitetwo.war</Set> > >>>>> <Set name="extractWAR">true</Set> > >>>>> <Set name="VirtualHosts"> > >>>>> <Array type="java.lang.String"> > >>>>> <Item>www.websitetwo.com</Item> > >>>>> </Array> > >>>>> </Set> > >>>>> <Get name="SessionHandler"> > >>>>> <Set name="SessionManager"><New > >>>>> class="org.mortbay.jetty.servlet.HashSessionManager"/></Set> > >>>>> </Get> > >>>>> </New> > >>>>> </Item> > >>>> ------------------------------------------------------------------------- > >>>> Take Surveys. Earn Cash. Influence the Future of IT > >>>> Join SourceForge.net's Techsay panel and you'll get the chance to share your > >>>> opinions on IT & business topics through brief surveys - and earn cash > >>>> http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > >>>> _______________________________________________ > >>>> Jetty-support mailing list > >>>> Jet...@li... > >>>> https://lists.sourceforge.net/lists/listinfo/jetty-support > >>>> > >>> ------------------------------------------------------------------------- > >>> Take Surveys. Earn Cash. Influence the Future of IT > >>> Join SourceForge.net's Techsay panel and you'll get the chance to share your > >>> opinions on IT & business topics through brief surveys - and earn cash > >>> http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > >>> _______________________________________________ > >>> Jetty-support mailing list > >>> Jet...@li... > >>> https://lists.sourceforge.net/lists/listinfo/jetty-support > >>> > >> > >> ------------------------------------------------------------------------- > >> Take Surveys. Earn Cash. Influence the Future of IT > >> Join SourceForge.net's Techsay panel and you'll get the chance to share your > >> opinions on IT & business topics through brief surveys - and earn cash > >> http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > >> _______________________________________________ > >> Jetty-support mailing list > >> Jet...@li... > >> https://lists.sourceforge.net/lists/listinfo/jetty-support > >> > > > > ------------------------------------------------------------------------- > > Take Surveys. Earn Cash. Influence the Future of IT > > Join SourceForge.net's Techsay panel and you'll get the chance to share your > > opinions on IT & business topics through brief surveys - and earn cash > > http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > > _______________________________________________ > > Jetty-support mailing list > > Jet...@li... > > https://lists.sourceforge.net/lists/listinfo/jetty-support > > > > > ------------------------------------------------------------------------- > Take Surveys. Earn Cash. Influence the Future of IT > Join SourceForge.net's Techsay panel and you'll get the chance to share your > opinions on IT & business topics through brief surveys - and earn cash > http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > _______________________________________________ > Jetty-support mailing list > Jet...@li... > https://lists.sourceforge.net/lists/listinfo/jetty-support > |