When using the following code snippet:
public class MyUrls {
// properties get initialized using static{...}
Whilst URL_HOMEPAGE
is a constant it's value may not be, it can only be determined at runtime. I believe that values used in annotations must be resolvable at compile-time.
It is a constant, but it is initialized after the request mapping is initialized.
You are calling properties.getProperty("app.homepage");
When the classloader loads you class, the URL_HOMEPAGE is not initialized yet, hence the error.
You need to give as a parameter an initialized string, such as "/path/subpath"