如何从 Jboss 中的 Web 文件夹中读取 MANIFEST.MF 文件(wildfly)
How to read the MANIFEST.MF file from web folder in Jboss (wildfly)
我需要从 java 代码中读取清单文件。该项目是一个在wildfly中运行的企业java项目。我需要阅读 web 的清单文件。以下是我的尝试。
@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)
关于如何让它工作的任何想法。
我不知道这是否是正确的方法,但我已经设法像这样阅读清单:
@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
),因此它具有存储读取清单的静态字段。如果该字段不是静态的,则在处理请求时它为空。
我自己也想知道更好的方法。
我需要从 java 代码中读取清单文件。该项目是一个在wildfly中运行的企业java项目。我需要阅读 web 的清单文件。以下是我的尝试。
@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)
关于如何让它工作的任何想法。
我不知道这是否是正确的方法,但我已经设法像这样阅读清单:
@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
),因此它具有存储读取清单的静态字段。如果该字段不是静态的,则在处理请求时它为空。
我自己也想知道更好的方法。