[xwiki-users] Short URL instructions are incorrect
Hi, I tried to follow the instructions here: http://platform.xwiki.org/xwiki/bin/view/Main/ShortURLs and the URLs look great, but I couldn't get the skins and logo to work. The problem is this part of the instructions: <servlet> <servlet-name>defaultSkins</servlet-name> <servlet-class>org.mortbay.jetty.servlet.Default</servlet-class> <init-param> <param-name>relativeResourceBase</param-name> <param-value>skins</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>defaultSkins</servlet-name> <url-pattern>/skins/*</url-pattern> </servlet-mapping> This is totally wrong for me. I'm using xwiki + Jetty + lighttpd on Debian stable/testing. The correct entry into web.xml is to add: <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>/resources/*</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>/skins/*</url-pattern> </servlet-mapping> in addition to: <servlet-mapping> <servlet-name>action</servlet-name> <url-pattern>/*</url-pattern> </servlet-mapping> It would also help if someone wrote WHERE to put these things in the web.xml file. I guessed, and it appears to work. thanks, Paul
On 8 December 2010 14:14, Paul Harris <[email protected]> wrote:
Hi,
I tried to follow the instructions here: http://platform.xwiki.org/xwiki/bin/view/Main/ShortURLs
and the URLs look great, but I couldn't get the skins and logo to work.
The problem is this part of the instructions:
<servlet> <servlet-name>defaultSkins</servlet-name> <servlet-class>org.mortbay.jetty.servlet.Default</servlet-class> <init-param> <param-name>relativeResourceBase</param-name> <param-value>skins</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>defaultSkins</servlet-name> <url-pattern>/skins/*</url-pattern> </servlet-mapping>
This is totally wrong for me. I'm using xwiki + Jetty + lighttpd on Debian stable/testing.
The correct entry into web.xml is to add:
<servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>/resources/*</url-pattern> </servlet-mapping>
<servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>/skins/*</url-pattern> </servlet-mapping>
in addition to: <servlet-mapping> <servlet-name>action</servlet-name> <url-pattern>/*</url-pattern> </servlet-mapping>
It would also help if someone wrote WHERE to put these things in the web.xml file. I guessed, and it appears to work.
Further to this, I discovered this fix does not work, as the /resources/* mapping seems to conflict with the *.gwtrpc mapping (mentioned in another email). When you Create A Link in the wysiwyg editor, it POSTs to: /resources/js/xwiki/wysiwyg/xwe/HTMLConverter.gwtrpc how do I set up my web.xml file so that both the static resources, and these apparently dynamic resource are able to both work? Please help, this is very frustrating. thanks Paul
On 8 December 2010 14:46, Paul Harris <[email protected]> wrote:
On 8 December 2010 14:14, Paul Harris <[email protected]> wrote:
Hi,
I tried to follow the instructions here: http://platform.xwiki.org/xwiki/bin/view/Main/ShortURLs
and the URLs look great, but I couldn't get the skins and logo to work.
The problem is this part of the instructions:
<servlet> <servlet-name>defaultSkins</servlet-name> <servlet-class>org.mortbay.jetty.servlet.Default</servlet-class> <init-param> <param-name>relativeResourceBase</param-name> <param-value>skins</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>defaultSkins</servlet-name> <url-pattern>/skins/*</url-pattern> </servlet-mapping>
This is totally wrong for me. I'm using xwiki + Jetty + lighttpd on Debian stable/testing.
The correct entry into web.xml is to add:
<servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>/resources/*</url-pattern> </servlet-mapping>
<servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>/skins/*</url-pattern> </servlet-mapping>
in addition to: <servlet-mapping> <servlet-name>action</servlet-name> <url-pattern>/*</url-pattern> </servlet-mapping>
It would also help if someone wrote WHERE to put these things in the web.xml file. I guessed, and it appears to work.
Further to this, I discovered this fix does not work, as the /resources/* mapping seems to conflict with the *.gwtrpc mapping (mentioned in another email).
When you Create A Link in the wysiwyg editor, it POSTs to: /resources/js/xwiki/wysiwyg/xwe/HTMLConverter.gwtrpc
how do I set up my web.xml file so that both the static resources, and these apparently dynamic resource are able to both work?
Please help, this is very frustrating.
Ok, I have a solution that works for me. HOWEVER, it will only work if ALL of the gwtrpc requests will be to urls such as domain.com/resources/blah/blah/file.gwtrpc This is the way I could have done it, if I had known where to put that java code etc: http://www.kuligowski.pl/java/rest-style-urls-and-url-mapping-for-static-con... The fundamental problem is due to the limited power of servlet mapping rules. ANY mapping to *.gwtrpc will not work if there is a /* mapping or a /resource/* mapping, as file extensions are always the lowest priority. So, instead of going the java-path, I used lighttpd since I am using it anyway. My new lighttpd rules are: $HTTP["host"] =~ "^www\.domain\.com$" { # ensure all requests for .gwtrpc files go through $HTTP["url"] =~ "\.gwtrpc$" { proxy.server = ( "" => (( "host" => "127.0.0.1", "port" => 8080 ))) } # otherwise, we can handle the static resources else $HTTP["url"] =~ "^/resources/" { alias.url += ( "/resources" => "/usr/share/jetty/webapps/root/resources" ) } # otherwise, we can handle the static resources else $HTTP["url"] =~ "^/skins/" { alias.url += ( "/skins" => "/usr/share/jetty/webapps/root/skins" ) } # and here is the primary server else $HTTP["host"] =~ "^www\.domain\.com$" { proxy.server = ( "" => (( "host" => "127.0.0.1", "port" => 8080 ))) } } else $HTTP["host"] =~ "\.domain\.com$" { url.redirect = ( "^/(.*)" => "http://www.domain.com/$1" ) server.name = "www.domain.com" } else $HTTP["host"] =~ "domain\.com$" { url.redirect = ( "^/(.*)" => "http://www.domain.com/$1" ) server.name = "www.domain.com" } so lighttpd will serve static content from resources and skins, EXCEPT if it ends with .gwtrpc THEN in web.xml: I change the gwtrpc mapping to: <servlet-mapping> <servlet-name>gwtrpc</servlet-name> <url-pattern>/resources/*</url-pattern> <url-pattern>/skins/*</url-pattern> </servlet-mapping> because we know that anything that makes it past lighttpd in the resources or skins folder MUST be a gwtrpc file. AND then I do not need the skins/resources mappings (that I mentioned above in prev email), all I need to add is: <servlet-mapping> <servlet-name>action</servlet-name> <url-pattern>/*</url-pattern> </servlet-mapping> yay. please put this up on the wiki for ShortUrls, it might save someone like me quite a few hours. thanks Paul
On 12/08/2010 10:13 AM, Paul Harris wrote:
On 8 December 2010 14:46, Paul Harris<[email protected]> wrote:
On 8 December 2010 14:14, Paul Harris<[email protected]> wrote:
Hi,
I tried to follow the instructions here: http://platform.xwiki.org/xwiki/bin/view/Main/ShortURLs
and the URLs look great, but I couldn't get the skins and logo to work.
The problem is this part of the instructions:
<servlet> <servlet-name>defaultSkins</servlet-name> <servlet-class>org.mortbay.jetty.servlet.Default</servlet-class> <init-param> <param-name>relativeResourceBase</param-name> <param-value>skins</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>defaultSkins</servlet-name> <url-pattern>/skins/*</url-pattern> </servlet-mapping>
This is totally wrong for me. I'm using xwiki + Jetty + lighttpd on Debian stable/testing.
The correct entry into web.xml is to add:
<servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>/resources/*</url-pattern> </servlet-mapping>
<servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>/skins/*</url-pattern> </servlet-mapping>
in addition to: <servlet-mapping> <servlet-name>action</servlet-name> <url-pattern>/*</url-pattern> </servlet-mapping>
It would also help if someone wrote WHERE to put these things in the web.xml file. I guessed, and it appears to work.
Further to this, I discovered this fix does not work, as the /resources/* mapping seems to conflict with the *.gwtrpc mapping (mentioned in another email).
When you Create A Link in the wysiwyg editor, it POSTs to: /resources/js/xwiki/wysiwyg/xwe/HTMLConverter.gwtrpc
how do I set up my web.xml file so that both the static resources, and these apparently dynamic resource are able to both work?
Please help, this is very frustrating.
Ok, I have a solution that works for me.
HOWEVER, it will only work if ALL of the gwtrpc requests will be to urls such as domain.com/resources/blah/blah/file.gwtrpc
In the default XE distribution the WYSIWYG editor is the only one making GWT-RPC calls and they all go to *.gwtrpc URLs so you're safe.
This is the way I could have done it, if I had known where to put that java code etc: http://www.kuligowski.pl/java/rest-style-urls-and-url-mapping-for-static-con...
The fundamental problem is due to the limited power of servlet mapping rules. ANY mapping to *.gwtrpc will not work if there is a /* mapping or a /resource/* mapping, as file extensions are always the lowest priority.
So, instead of going the java-path, I used lighttpd since I am using it anyway. My new lighttpd rules are: $HTTP["host"] =~ "^www\.domain\.com$" { # ensure all requests for .gwtrpc files go through $HTTP["url"] =~ "\.gwtrpc$" { proxy.server = ( "" => (( "host" => "127.0.0.1", "port" => 8080 ))) } # otherwise, we can handle the static resources else $HTTP["url"] =~ "^/resources/" { alias.url += ( "/resources" => "/usr/share/jetty/webapps/root/resources" ) } # otherwise, we can handle the static resources else $HTTP["url"] =~ "^/skins/" { alias.url += ( "/skins" => "/usr/share/jetty/webapps/root/skins" ) } # and here is the primary server else $HTTP["host"] =~ "^www\.domain\.com$" { proxy.server = ( "" => (( "host" => "127.0.0.1", "port" => 8080 ))) } } else $HTTP["host"] =~ "\.domain\.com$" { url.redirect = ( "^/(.*)" => "http://www.domain.com/$1" ) server.name = "www.domain.com" }
else $HTTP["host"] =~ "domain\.com$" { url.redirect = ( "^/(.*)" => "http://www.domain.com/$1" ) server.name = "www.domain.com" }
so lighttpd will serve static content from resources and skins, EXCEPT if it ends with .gwtrpc
THEN in web.xml: I change the gwtrpc mapping to: <servlet-mapping> <servlet-name>gwtrpc</servlet-name> <url-pattern>/resources/*</url-pattern> <url-pattern>/skins/*</url-pattern> </servlet-mapping> because we know that anything that makes it past lighttpd in the resources or skins folder MUST be a gwtrpc file.
AND then I do not need the skins/resources mappings (that I mentioned above in prev email), all I need to add is: <servlet-mapping> <servlet-name>action</servlet-name> <url-pattern>/*</url-pattern> </servlet-mapping>
yay.
please put this up on the wiki for ShortUrls, it might save someone like me quite a few hours.
Note that xwiki.org is an open wiki so you can register and contribute. Thanks, Marius
thanks Paul _______________________________________________ users mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/users
On 8 December 2010 17:14, Marius Dumitru Florea < [email protected]> wrote:
On 12/08/2010 10:13 AM, Paul Harris wrote:
On 8 December 2010 14:46, Paul Harris<[email protected]> wrote:
On 8 December 2010 14:14, Paul Harris<[email protected]> wrote:
Hi,
I tried to follow the instructions here: http://platform.xwiki.org/xwiki/bin/view/Main/ShortURLs
and the URLs look great, but I couldn't get the skins and logo to work.
The problem is this part of the instructions:
<servlet> <servlet-name>defaultSkins</servlet-name> <servlet-class>org.mortbay.jetty.servlet.Default</servlet-class> <init-param> <param-name>relativeResourceBase</param-name> <param-value>skins</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>defaultSkins</servlet-name> <url-pattern>/skins/*</url-pattern> </servlet-mapping>
This is totally wrong for me. I'm using xwiki + Jetty + lighttpd on Debian stable/testing.
The correct entry into web.xml is to add:
<servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>/resources/*</url-pattern> </servlet-mapping>
<servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>/skins/*</url-pattern> </servlet-mapping>
in addition to: <servlet-mapping> <servlet-name>action</servlet-name> <url-pattern>/*</url-pattern> </servlet-mapping>
It would also help if someone wrote WHERE to put these things in the web.xml file. I guessed, and it appears to work.
Further to this, I discovered this fix does not work, as the
/resources/*
mapping seems to conflict with the *.gwtrpc mapping (mentioned in another email).
When you Create A Link in the wysiwyg editor, it POSTs to: /resources/js/xwiki/wysiwyg/xwe/HTMLConverter.gwtrpc
how do I set up my web.xml file so that both the static resources, and these apparently dynamic resource are able to both work?
Please help, this is very frustrating.
Ok, I have a solution that works for me.
HOWEVER, it will only work if ALL of the gwtrpc requests will be to urls such as domain.com/resources/blah/blah/file.gwtrpc
In the default XE distribution the WYSIWYG editor is the only one making GWT-RPC calls and they all go to *.gwtrpc URLs so you're safe.
This is the way I could have done it, if I had known where to put that
java
code etc:
http://www.kuligowski.pl/java/rest-style-urls-and-url-mapping-for-static-con...
The fundamental problem is due to the limited power of servlet mapping rules. ANY mapping to *.gwtrpc will not work if there is a /* mapping or a /resource/* mapping, as file extensions are always the lowest priority.
So, instead of going the java-path, I used lighttpd since I am using it anyway. My new lighttpd rules are: $HTTP["host"] =~ "^www\.domain\.com$" { # ensure all requests for .gwtrpc files go through $HTTP["url"] =~ "\.gwtrpc$" { proxy.server = ( "" => (( "host" => "127.0.0.1", "port" => 8080
)))
} # otherwise, we can handle the static resources else $HTTP["url"] =~ "^/resources/" { alias.url += ( "/resources" => "/usr/share/jetty/webapps/root/resources" ) } # otherwise, we can handle the static resources else $HTTP["url"] =~ "^/skins/" { alias.url += ( "/skins" => "/usr/share/jetty/webapps/root/skins" ) } # and here is the primary server else $HTTP["host"] =~ "^www\.domain\.com$" { proxy.server = ( "" => (( "host" => "127.0.0.1", "port" => 8080 ))) } } else $HTTP["host"] =~ "\.domain\.com$" { url.redirect = ( "^/(.*)" => "http://www.domain.com/$1" ) server.name = "www.domain.com" }
else $HTTP["host"] =~ "domain\.com$" { url.redirect = ( "^/(.*)" => "http://www.domain.com/$1" ) server.name = "www.domain.com" }
so lighttpd will serve static content from resources and skins, EXCEPT if it ends with .gwtrpc
THEN in web.xml: I change the gwtrpc mapping to: <servlet-mapping> <servlet-name>gwtrpc</servlet-name> <url-pattern>/resources/*</url-pattern> <url-pattern>/skins/*</url-pattern> </servlet-mapping> because we know that anything that makes it past lighttpd in the resources or skins folder MUST be a gwtrpc file.
AND then I do not need the skins/resources mappings (that I mentioned above in prev email), all I need to add is: <servlet-mapping> <servlet-name>action</servlet-name> <url-pattern>/*</url-pattern> </servlet-mapping>
yay.
please put this up on the wiki for ShortUrls, it might save someone like me quite a few hours.
Note that xwiki.org is an open wiki so you can register and contribute.
Thanks, Marius
I've made the changes to http://platform.xwiki.org/xwiki/bin/view/Main/ShortURLs can someone please check it over for me? thanks Paul
participants (2)
-
Marius Dumitru Florea -
Paul Harris