我的C:驱动器中有一个文件夹,因为C:\app_config\java_app
此文件夹包含一些特定于语言环境的属性文件.
我有一个java类(PrjPropertilesLocator)在Web App启动时基于默认语言环境加载属性文件.我的Web应用程序在tomcat中运行.问题是我应该如何C:\app_config\java_app在tomcat类路径中设置这个目录,以便它可以在PrjPropertilesLocator类中的ResourceBundle中使用.有没有办法我可以专门为需要它的单个Web应用程序设置此文件夹.我不想将属性文件放在WEB-INF/classes文件夹中.
在weblogic上运行正常.我在其中一个启动脚本中设置了weblogic类路径中的目录,它工作正常.但在Tomcat我试图把它startup.bat还在setclasspath.bat,但没能成功地这样做.
我在Tomcat 7中配置webapp时遇到问题.在我的WAR文件中,有一个属性文件myApp/WEB-INF/classes/myProps.props,它包含特定于环境的属性.我试图覆盖服务器上的配置文件,以便相同的WAR文件将部署到多个环境.
我听说有一种方法可以使用替换配置文件tomcat/conf/Catalina/myApp.这是我无法搞清楚的方法.
此外,myApp.war是在同一个Tomcat服务器上运行的许多服务器之一,并且它不作为localhost运行.我希望能够为几个webapps解决这个问题.
Server version: Apache Tomcat/7.0.23
Server built: Nov 20 2011 07:36:25
Server number: 7.0.23.0
OS Name: Linux
Run Code Online (Sandbox Code Playgroud) 对于某些应用程序,我使用ZK,其他Hibernate,其他Apache Commons等.
我不想部署一个75MB的war文件,因为它使用了大量的库.
我不想将库添加到我的tomcat lib文件夹中,也不想将其添加到其配置的类路径中,因为我可能有一个使用库x.1的旧应用程序和另一个使用库x.2的应用程序
出于这个原因,在web.xml或context.xml中有一些东西会很棒,我会说:
<classpath>/usr/local/tomcat/custom-libs/zk-5.0.4</classpath>
Run Code Online (Sandbox Code Playgroud)
注意:以上是伪代码
创建从属性文件中读取配置参数的Tomcat部署的可接受做法是什么?
能够提供WAR文件并指定客户端只需要在特定目录中创建或编辑属性文件,这将是一件好事.这是一种有点常规的做事方式吗?有比这更好的方法吗?
我在context.xml中有一个DataSource配置.是否有可能不对该文件中的数据库参数进行硬编码?例如,使用外部属性文件,并从中加载参数?
像这样的东西:
context.xml中:
<Resource
name="jdbc/myDS" auth="Container"
type="javax.sql.DataSource"
driverClassName="oracle.jdbc.OracleDriver"
url="${db.url}"
username="${db.user}"
password="${db.pwd}"
maxActive="2"
maxIdle="2"
maxWait="-1"/>
Run Code Online (Sandbox Code Playgroud)
db.properties:
db.url=jdbc:oracle:thin:@server:1521:sid
db.user=test
db.pwd=test
Run Code Online (Sandbox Code Playgroud) 我有这个要求,我的webapp需要从Tomcat webapps目录之外的属性文件中读取,例如从$ CATALINA_HOME/properties/myapp.properties读取.我尝试了几件事,但到目前为止还没有运气
我知道关于这个例外有很多问题,但是,我相信我已经尝试了很多天,但没有运气.由于这是一个生产服务器,我只能在午夜后工作:(
我有一个Tomcat应用程序.最近,我更新了连接池,以便使用Tomcat的jdbc连接池.在我的Windows开发机器中,一切正常,但现在我正在尝试在我的Linux服务器上实现这一点,当我的应用程序尝试连接到MySQL时,我得到此异常(请参阅标题).
我正在使用"Easy Tomcat 7",它应该与常规版本的Tomcat相同,只是它附带了CPanel软件.
我只需要这个数据库可用于这个应用程序(不是多个应用程序).
这是我的java DB类:
public class DBUtil {
static DataSource ds;
static {
try {
Context context = new InitialContext();
ds = (DataSource)context.lookup("java:comp/env/jdbc/rhwebDB");
} catch (NamingException e) {
e.printStackTrace();
System.out.println("DBUtil.NamingException" + e);
} catch(Exception e) {
System.out.println(e);
}
}
public static Connection getConnection() throws SQLException {
return ds.getConnection();
}
Run Code Online (Sandbox Code Playgroud)
这是我的context.xml文件,位于myAppDirectory/META-INF上
<?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource
name="jdbc/rhwebDB"
auth="Container"
type="javax.sql.DataSource"
factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
testWhileIdle="true"
testOnBorrow="true"
testOnReturn="false"
validationQuery="SELECT 1"
validationInterval="30000"
timeBetweenEvictionRunsMillis="30000"
maxActive="20"
minIdle="3"
maxIdle="15"
maxWait="10000"
initialSize="3"
removeAbandonedTimeout="60"
removeAbandoned="true"
logAbandoned="true"
minEvictableIdleTimeMillis="30000"
username="dbuser" …Run Code Online (Sandbox Code Playgroud) 在很多IT服务中,我看到一些复杂的过程来管理Java EE应用程序配置,具体取决于环境: - 自定义工具,数据库与否,以管理属性文件中的替换(解压缩,替换,压缩战争. ..) - 外部化服务器中的obscure目录中的属性文件(以及一些时间更新它的过程)和一段时间使用JNDI配置... - maven配置文件和许多大属性文件
但是对于数据库连接,每个人都使用jndi数据源.
为什么对于依赖于环境的所有配置而言,这不是一般化的?
更新:我想要处理除数据源之外的其他变量,对数据源没有任何疑问:它是在JNDI中为Java EE应用程序配置的.如果你想要破解JNDI ...
tomcat ×7
java ×5
classpath ×2
properties ×2
context.xml ×1
deployment ×1
java-ee ×1
jdbc ×1
jndi ×1
linux ×1
meta-inf ×1
servlets ×1