我有一个名为ServletEnvironment的Web服务项目 ServletEnvironment将我的服务导出为爆炸的war目录,其中包含:
[war目录] / WEB-INF / classes / {properties files}
[战争目录] /WEB-INF/web.xml
ServletEnvironment实现了我的JettyWeb项目中的类 JettyWeb启动一个码头服务器,如下所述:
Server server = new Server(port);
WebAppContext webapp = new WebAppContext();
webapp.setContextPath("/test");
webapp.setResourceBase("[war directory]//");
HandlerList hlist = new HandlerList();
hlist.addHandler(webapp);
server.setHandler(hlist);
server.start();
最后我有一个Servlet项目,Servlet在我的ServletEnvironments web.xml中引用如下:
<!-- Listener -->
<listener>
<listener-class>com.basicservlet.BasicListener</listener-class>
</listener>
<!-- Servlet -->
<servlet>
<servlet-name>basicServlet</servlet-name>
<display-name>Default Basic Http Servlet</display-name>
<servlet-class>com.basicservlet.BasicHttpServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<!-- Default Servlet Mapping -->
<servlet-mapping>
<servlet-name>basicServlet</servlet-name>
<url-pattern>/servlet/</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>60</session-timeout>
<!-- 60 minutes -->
</session-config>
在我的Servlet中,我尝试:
ResourceBundle bundle = ResourceBundle.getBundle(bundleName, locale);
返回null。
在我的JettyWeb中,在server.start()之后我尝试:
URL rs = this.getClass().getResource(propertiesDir);
System.out.println("Found: " + rs.toString());
它也返回null。 虽然我不相信会有人工作。
任何帮助都会非常感谢。
答案 0 :(得分:0)
Properties properties;
InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("application.properties");
properties = new Properties();
properties.load(inputStream);
String value = properties.getProperty(key);
这适用于我使用embedded-jetty的情况,application.properties
位于类路径