From: Paul W. <pwa...@ps...> - 2006-11-21 01:18:02
|
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 > |