【问题标题】:How can I create and use a config file for a java web service?如何为 Java Web 服务创建和使用配置文件?
【发布时间】:2018-06-21 11:08:24
【问题描述】:

我已经编写了一个 java web 服务,我需要添加一个配置文件来存储诸如客户端名称之类的内容,这些内容将在客户端的基础上逐个更改。我正在寻找类似于 .net web.config 文件的内容。

我已经尝试了 web.xml 文件,但我无法让它工作。我发现的大多数解决方案都用于 servlet,而我没有在这个项目中使用。我找到了一个读取 xml 文件的解决方案,但它需要从方法中抛出一个命名异常,并且 Web 服务不可部署。

我是一名刚开始学习 java 的 .net 开发人员。我不确定在哪里可以解决这个问题。我确定我遗漏了一些明显的东西。

这是我尝试读取 web.xml 文件的一些代码示例。

Context ctx = new InitialContext();
Context env = (Context) ctx.lookup("java:comp/env");
String filename = (String) env.lookup("file-name");

String email= getServletContext().getInitParameter("AdministratorEmail");

【问题讨论】:

    标签: java web-services web-config


    【解决方案1】:

    如果您在项目中使用 Maven 作为构建工具,您可以将配置文件放在 src/main/resources 文件夹中。您也可以将它放在应用程序的类路径中。 WEB-INF/lib 或 WEB-INF 类。然后,您可以使用 ClassLoader 轻松加载文件。

    https://docs.oracle.com/javase/7/docs/api/java/lang/ClassLoader.html#getResourceAsStream(java.lang.String)
    
    InputStream is= Thread.currentThread()
                    .getContextClassLoader()
                    .getResourceAsStream(FILE_NAME);
    

    还有许多其他方法,具体取决于您使用的 Web 服务类型和框架/技术。如果您使用 Spring Boot 构建 REST 服务,则可以使用 application.yml/application.properties 来定义您的配置参数。

    【讨论】:

    • 感谢您的回复。当我将此代码添加到我的项目时,它似乎可以工作,这意味着没有编译或 rintime 错误,但我仍然无法从文件中获取值。
    • 我认为我最终没有使用 Maven。 (在使用我所拥有的之前,我尝试了很多不同的教程。)我将 Netbeans 与 Tomcat 8 一起使用。我的 Web 服务是一个 SOAP ws。我的 web.xml 文件位于 WEB-INF 文件夹中。如果您有任何其他想法,我会全神贯注。到目前为止,您给我的帮助已经很大,因为我能够扩展搜索范围。另外,我正在尝试获取上下文参数值,但我什至不确定这是正确的。
    • 你能把代码块贴在你试图读取配置文件的地方吗?您可以访问 ServletContext 吗?如果是,请尝试 context.getRealPath(“WEB-INF/myconfig.properties”)。然后使用传递路径的文件输入流加载属性。
    • 感谢您的帮助,您问我的问题使我走上了不同的研究道路,这是一个巨大的帮助。我最终使用了此处发布的第二个解决方案。 stackoverflow.com/questions/261348/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多