Dear All, I am using the restlet-jee-2.0snapshot, jdk5.0 on Tomcat 5.5. I have an application.properties file: WEB-INF/classes/application.properties
But I keep getting the following error: java.lang.IllegalArgumentException: Cannot access to the configuration file: "clap://system/WEB-INF/classes/application.properties" It seems that I am not working properly with the classloader, CLAP. I have tried most ways, clap://thread/.., clap://class...but no luck so far. Here below is the code: Thanks, Sinoea [code] public class DirectoryServletApplication extends Application { /** Freemarker configuration object. */ private Configuration fmc; public static void main(String[] args) throws Exception { // Create a component Component component = new Component(); component.getServers().add(Protocol.HTTP, 8182); component.getClients().add(Protocol.FILE); component.getClients().add(Protocol.CLAP); component.getClients().add(Protocol.HTTP); DirectoryServletApplication application = new DirectoryServletApplication(component.getContext()); // Attach the application to the component and start it component.getDefaultHost().attach("", application); component.start(); } public DirectoryServletApplication(Context context) throws IOException { super(context); getConnectorService().getClientProtocols().add(Protocol.FILE); getConnectorService().getClientProtocols().add(Protocol.CLAP); getConnectorService().getClientProtocols().add(Protocol.HTTP); // Look for the configuration file in the classpath (Here is the PROBLEM) Properties properties = getProperties("clap://system/WEB-INF/classes/application.properties"); System.out.println(properties.get("web.root.path")); try { this.fmc = new Configuration(); final File templateDir = new File("C:\\Program Files\\Apache Software Foundation\\Tomcat 5.5\\webapps\\directory\\ROOT\\WEB-INF\\template"); this.fmc.setDirectoryForTemplateLoading(templateDir); } catch (Exception e) { getLogger().severe("Unable to configure FreeMarker."); e.printStackTrace(); } } @Override public synchronized Restlet createInboundRoot() { // Create a router Restlet that routes each call to a // new instance of HelloWorldResource. Router router = new Router(getContext()); // Defines only one route router.attachDefault(HomePage.class); router.attach("/contactus", ContactUs.class); return router; } /** * Returns the freemarker configuration object. * * @return the freemarker configuration object. */ public Configuration getFmc() { return this.fmc; } /** * Returns a Properties instance loaded from the given URI. * * @param propertiesUri * The URI of the properties file. * @return A Properties instance loaded from the given URI. * @throws IOException */ public static Properties getProperties(String propertiesUri) throws IOException { Reference reference = new Reference(propertiesUri); Response response = new Client(reference.getSchemeProtocol()).get(reference); if (!(response.getStatus().isSuccess() && response.isEntityAvailable())) { StringBuilder stringBuilder = new StringBuilder(); stringBuilder.append("Cannot access to the configuration file: \""); stringBuilder.append(propertiesUri); stringBuilder.append("\""); throw new IllegalArgumentException(stringBuilder.toString()); } Properties properties = new Properties(); properties.load(response.getEntity().getStream()); return properties; } } [/code] [code] <?xml version="1.0" encoding="UTF-8"?> <web-app id="directory" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <display-name>directory</display-name> <!-- Application class name --> <context-param> <param-name>org.restlet.application</param-name> <param-value>example.DirectoryServletApplication</param-value> </context-param> <context-param> <param-name>org.restlet.clients</param-name> <param-value>HTTP HTTPS CLAP FILE</param-value> </context-param> <!-- Restlet adapter --> <servlet> <servlet-name>RestletServlet</servlet-name> <servlet-class>org.restlet.ext.servlet.ServerServlet</servlet-class> </servlet> <!-- Catch all requests --> <servlet-mapping> <servlet-name>RestletServlet</servlet-name> <url-pattern>/*</url-pattern> </servlet-mapping> </web-app> [/code] ------------------------------------------------------ http://restlet.tigris.org/ds/viewMessage.do?dsForumId=4447&dsMessageId=2408723