相关疑难解决方法(0)

您应该在server.xml或context.xml中设置数据库连接属性

我正在尝试使用JNDI为Spring Web应用程序设置数据库连接属性.

我正在考虑以下两种方法:

方法1:

在Spring配置中,您可能会遇到以下情况:

<jee:jndi-lookup id="dataSource" jndi-name="java:comp/env/jdbc/facs"/>
Run Code Online (Sandbox Code Playgroud)

然后在你的webapp /META-INF/context.xml文件中你也应该有类似的东西:

<?xml version='1.0' encoding='utf-8'?>

<!-- antiResourceLocking="true" -->
<Context path="/podd-apn"
         reloadable="true"
         cachingAllowed="false"
         antiResourceLocking="true"
         >

  <Resource name="jdbc/facs"              
            type="javax.sql.DataSource" username="${database.username}" password="${database.password}"
            driverClassName="org.postgresql.Driver" 
            url="${database.url}"
            maxActive="8" maxIdle="4"
            global="jdbc/facs" 
            />


</Context>
Run Code Online (Sandbox Code Playgroud)

在你的web.xml中,你应该这样:

<!-- JNDI -->
  <resource-ref>
    <description>FACs Datasource</description>
    <res-ref-name>jdbc/facs</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
  </resource-ref> 
Run Code Online (Sandbox Code Playgroud)


方法2:

在Spring上下文中设置如下:

<jee:jndi-lookup id="dbDataSource"
   jndi-name="jdbc/DatabaseName"
   expected-type="javax.sql.DataSource" />
Run Code Online (Sandbox Code Playgroud)

您可以使用以下内容在Tomcat的server.xml中声明JNDI资源:

<GlobalNamingResources>
  <Resource name="jdbc/DatabaseName" auth="Container" type="javax.sql.DataSource"
              username="dbUsername" password="dbPasswd"
              url="jdbc:postgresql://localhost/dbname"
              driverClassName="org.postgresql.Driver"
              initialSize="5" maxWait="5000"
              maxActive="120" maxIdle="5"
              validationQuery="select 1"
              poolPreparedStatements="true"/>
</GlobalNamingResources/>
Run Code Online (Sandbox Code Playgroud)

并从Tomcat的web context.xml引用JNDI资源,如下所示:

<ResourceLink name="jdbc/DatabaseName"
   global="jdbc/DatabaseName"
   type="javax.sql.DataSource"/>
Run Code Online (Sandbox Code Playgroud)


我的问题是保留数据库属性的最佳位置在哪里?它们应该放在server.xml还是context.xml中 …

java spring jndi datasource

78
推荐指数
3
解决办法
8万
查看次数

将目录添加到tomcat类路径

我的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 classpath

67
推荐指数
4
解决办法
19万
查看次数

从.war文件外部化Tomcat webapp配置

我在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)

linux configuration tomcat

33
推荐指数
2
解决办法
6万
查看次数

我可以在Tomcat中基于每个应用程序创建自定义类路径

对于某些应用程序,我使用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)

注意:以上是伪代码

java configuration tomcat classpath

32
推荐指数
4
解决办法
3万
查看次数

配置Tomcat以使用属性文件来加载数据库连接信息

创建从属性文件中读取配置参数的Tomcat部署的可接受做法是什么?

能够提供WAR文件并指定客户端只需要在特定目录中创建或编辑属性文件,这将是一件好事.这是一种有点常规的做事方式吗?有比这更好的方法吗?

java deployment tomcat properties

31
推荐指数
3
解决办法
5万
查看次数

如何在Tomcat中读取webapp上下文之外的属性文件

我有这个要求,我的webapp需要从Tomcat webapps目录之外的属性文件中读取,例如从$ CATALINA_HOME/properties/myapp.properties读取.我尝试了几件事,但到目前为止还没有运气

java tomcat servlets web-applications properties

10
推荐指数
1
解决办法
4万
查看次数

Jenkins CI:商店配置文件的位置和方式?

我正在从Java应用程序中移出配置参数.我发现最好的方法是扩展你的类路径并使用.properties文件(让ZooKeeper单独用于另一个要求).

所以我的WAR文件不再有任何主机/ IP/URL,用户/密码.

DevOps在测试,阶段,稳定安装中手动分配配置.

现在是Jenkins运行测试的时候了.但是它们失败了,因为.propeties类路径中没有必需的文件.

如何将此配置文件加载到Jenkins以及如何在测试类路径中使用?

maven-surefire-plugin 允许扩展类路径传递系统属性.

因此,只询问如何在Jenkins托管服务器中获取单独的目录并将文件加载到此目录,并为每个构建作业创建别名/占位符/ envvar以在构建配置中引用此路径.

这项工作可以通过SSH访问完成,但我认为这是"错误的方式".我希望这可以通过Jenkins UI完成(任何管理员都可以在WEB浏览器中上传文件).

更新我对分布式slave/master版本没有要求,但是很高兴能有自动将配置文件迁移到slave的解决方案......

用这种方式sshing到主机或ftp/scp - 坏事.

configuration external configuration-files maven jenkins

6
推荐指数
1
解决办法
1万
查看次数