Giacomo Pati created OLINGO-312:
-----------------------------------
Summary: Reading resource via Classloader
Key: OLINGO-312
URL: https://issues.apache.org/jira/browse/OLINGO-312
Project: Olingo
Issue Type: Bug
Components: odata2-core
Affects Versions: V2 1.2.0
Reporter: Giacomo Pati
While many servlet-containers tested by me work fine with construct below,
WebSphere 8 doesn't like it and returns null for the resources path requested
(it's actually outside of Classloader managed filesystem area, which I would
consider being bad practice):
{code}
InputStream is =
JPAEdmMappingModelService.class.getClassLoader().getResourceAsStream("../../" +
mappingModelName);
{code}
As the class in question (JPAEdmMappingModelService) doesn't have access to the
servlet context to properly read a file from the web space area I'd suggest
(also for backwards compatibility reasons) to add this to the code as shown in
the following patch:
{code}
@@ -195,6 +195,9 @@ public class JPAEdmMappingModelService implements
JPAEdmMappingModelAccess {
protected InputStream loadMappingModelInputStream() {
InputStream is =
JPAEdmMappingModelService.class.getClassLoader().getResourceAsStream("../../" +
mappingModelName);
+ if(is == null) {
+ is =
JPAEdmMappingModelService.class.getClassLoader().getResourceAsStream(mappingModelName);
+ }
return is;
{code}
which would alternatively allow to put the mapping file into the
WEB-INF/classes folder.
--
This message was sent by Atlassian JIRA
(v6.2#6252)