如何在非servlet Java文件中读取上下文参数/web.xml值? - java

我有一个常规的Java文件,用于更新和查询mysql数据库,但是我需要在该文件中采用可配置的选项(例如主机名,密码等),并将其放在web.xml文件(或另一个文件)中文件(如果可以的话,最好是在web.xml中)。

但是我不知道如何从常规的非servlet Java文件中访问web.xml值。

还是我需要读取xml(像其他任何xml文件一样...,或者是否有通往此文件的快捷方式...)

参考方案

您需要将所需的参数放在web.xml文件的env-entry条目中:

<env-entry> 
    <env-entry-name>dbhost</env-entry-name>
    <env-entry-type>java.lang.String</env-entry-type>
    <env-entry-value>localhost</env-entry-value> 
</env-entry>

然后通过jndi上下文访问它们

import javax.naming.Context;
import javax.naming.InitialContext;
...
// Get the base naming context
Context env = (Context)new InitialContext().lookup("java:comp/env");

// Get a single value
String dbhost = (String)env.lookup("dbhost");

Java Web Start-如何清除缓存(或从用户角度更新应用程序) - java

在浏览器中下载了JNLP之后,它会被缓存,因此不需要再次下载,这很好。但是,结果是,如果我更新了JNLP使用的JAR,用户仍将看到缓存中的旧版本应用程序。您可以通过在终端中运行以下命令来清除缓存:javaws -uninstall 但是显然,您无法期望用户在更新准备好后就可以运行它。它应该比这更无缝。一种想法是更改jnlp文件名,以便他们下载新文件(如MyJ…

带有php和爆炸式战争支持的Java应用程序服务器 - java

我正在寻找要在我的机器上安装的Java应用程序服务器,以采用EXPLODED war方式部署项目,但是我需要此服务器来支持php。我尝试将Tomcat 6与apache 2.2一起使用,但是这样做失败。 参考方案 Quercus是Caucho Technology在开源GPL许可下发布的PHP 5的100%Java实现。或者只是使用Apache处理PHP +…

将源代码包含在JAR文件中有什么弊端? - java

为了帮助我们在调试时逐步执行代码,我建议我们将JAR文件构建为包含源代码。我想知道可能会导致什么问题。我立即想到的是JAR文件会更大。我可以忍受这一点。我还需要考虑其他问题吗?TIA 参考方案 通常,您将编译后的代码和源代码分为两个不同的jar。然后,当您需要调试代码时,可以将源代码jar附加到IDE中。像maven这样的构建工具将轻松为您完成此任务。

将生成的类放入不同的Web服务的同一包中 - java

我有几个JAX-WS Web服务,它们使用相同的类,但是从wsdl(在客户端)生成后,相同的类具有不同的包。我发现了如何使用@xmltype批注将它们放入同一包中。但是我不能使用它,因为源代码不可用。在服务部署期间是否可以通过某种方式修复它? 参考方案 您如何从WSDL生成客户端代码?如果您使用maven,则可以在插件设置中指定生成类的包(例如apache …

Java应用程序中超过150个活动线程 - java

我在tomcat上运行了一个Web服务。我已经配置了30个请求线程。服务工作正常。不寻常的是,JMX显示的线程数超过150。我的应用程序未在应用程序Java代码中派生任何线程。我不知道这可能是什么原因?我在Google和SO上也找不到任何东西。 参考方案 使用类似VisualVM(https://visualvm.java.net/)的工具,将为您提供当前进…