gpt4 book ai didi

java - 如何从Jboss(wildfly)中的web文件夹读取MANIFEST.MF文件

转载 作者:太空宇宙 更新时间:2023-11-04 06:07:01 24 4
gpt4 key购买 nike

我需要从java代码中读取 list 文件。该项目是一个运行在 Wildfly 中的企业 Java 项目。我需要阅读 web.xml 的 list 文件。以下是我尝试过的。

  @Resource
private WebServiceContext context;

ServletContext servletContext =
(ServletContext) context.getMessageContext().get(
MessageContext.SERVLET_CONTEXT);

Properties prop = new Properties();
prop.load(servletContext.getResourceAsStream("/META-INF/MANIFEST.MF"));

但是我收到以下错误

Caused by: javax.naming.NameNotFoundException: env/abc.def.rest.ManifestRestService/context -- service jboss.naming.context.java.module.abc-ear.abc-web.env."abc.def.ManifestRestService".context
at org.jboss.as.naming.ServiceBasedNamingStore.lookup(ServiceBasedNamingStore.java:104) [jboss-as-naming.jar:7.2.0.Final]
at org.jboss.as.naming.NamingContext.lookup(NamingContext.java:202) [jboss-as-naming.jar:7.2.0.Final]
at org.jboss.as.naming.NamingContext.lookup(NamingContext.java:179) [jboss-as-naming.jar:7.2.0.Final]
at org.jboss.as.naming.InitialContext$DefaultInitialContext.lookup(InitialContext.java:235)

有什么想法可以让它发挥作用。

最佳答案

我不知道这是否是正确的方法,但我已经成功地阅读了这样的 list :

@WebListener
public class ManifestReader implements ServletContextListener {
...
@Override
public void contextInitialized(ServletContextEvent evt) {
ServletContext ctx = servletContextEvent.getServletContext();
InputStream is = ctx.getResourceAsStream("/META-INF/MANIFEST.MF");
...
}
}

此回调 (contextInitialized) 在部署时调用。

在我们的例子中,ManifestReader 还处理请求(@Path("/blah")@RequestScoped),因此它具有存储读取 list 的静态字段。如果该字段不是静态的,则在处理请求时它为空。

我自己也想知道更好的方法。

关于java - 如何从Jboss(wildfly)中的web文件夹读取MANIFEST.MF文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29667654/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com