java - getServletContext().getRealPath ("") 在 WebLogic 中返回 null

标签 java jakarta-ee servlets weblogic12c

当下面的行被执行时

String realPath = request.getSession().getServletContext().getRealPath("");
String imagePath = realPath/images/product/abc.jpeg;
System.out.println("ImagePath-> " + imagePath)

当我尝试打印 sys out 行时,我可以看到 realPath 在 weblogic 中返回 null 作为 null/images/product/abc.jpeg

当我用谷歌搜索解决方案时。我找到了两个解决方案:-
1.通过手动我可以转到 Weblogic 控制台 -> 域 -> Web 应用程序 -> 检查存档的真实路径 (我不想这样做)
2.我可以手动将以下条目添加到 weblogic.xml 中

   <container-descriptor>
        <show-archived-real-path-enabled>true</show-archived-real-path-enabled>
    </container-descriptor>

我在 weblogic.xml 中添加并尝试重新部署,但 realPath 在添加 xml 文件后仍然返回 null。

当我通过更改控制台中的设置尝试第一种方法时,我可以看到 realPath 正在返回正确的路径。但我不希望用户不应该做任何更改。

除了上述两种用于 weblogic 的方法之外,还有其他替代方法吗?或者我可能遗漏了一些东西。

最佳答案

使用您的第二个选项,它在 WLS12.1.3 上对我有用。 Oracle 记录了这两种方法: 在存档的 Web 应用程序中调用 ServletContext.getRealPath() 会引发 NullPointerException(文档 ID 858783.1)

根据该说明,恐怕没有第三种选择。

关于java - getServletContext().getRealPath ("") 在 WebLogic 中返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26056989/

相关文章:

java - PropertyPlaceholderConfigurer 和 ResourceBundleMessageSource

java - HttpServletRequest getParameter 和 getReader

java - 如何在java字符串中使用下标?

java - 选择Web开发框架时应设定的标准是什么?

java - OpenCV Java : how to find connected components of image in OpenCv JAVA

jsf - 将 PrimeFaces 添加为 EAR 库时遇到问题

java - Web应用程序JBoss 5中的资源注入(inject)

java - 无法获取表中的元素数量

java - 使用JSP/MySQL实现自动竞价功能