Java glassfish替代context.xml的是什么
我习惯于在Java glassfish替代context.xml的是什么,java,glassfish,Java,Glassfish,我习惯于在context.xml中配置web应用程序,包括jdbc资源和应用程序配置参数 在glassfish下,存储应用程序配置信息的标准位置是什么 我们以前将其存储在context.xml文件中,如下所示: <Resource url="jdbc:mysql://localhost:3306/db?useUnicode=true&characterEncoding=utf8" username="username" name="jdbc/db" password="se
context.xml
中配置web应用程序,包括jdbc资源和应用程序配置参数
在glassfish下,存储应用程序配置信息的标准位置是什么
我们以前将其存储在context.xml
文件中,如下所示:
<Resource
url="jdbc:mysql://localhost:3306/db?useUnicode=true&characterEncoding=utf8"
username="username"
name="jdbc/db"
password="secret"
auth="Container"
driverClassName="com.mysql.jdbc.Driver"
maxActive="5" maxIdle="2" maxWait="10000"
removeAbandoned="true"
type="javax.sql.DataSource"
/>
<Parameter name="application.url" value="http://localhost:8080/News/" override="false"/>
<Parameter name="smtp.server" value="smtp.example.com" override="false"/>
<Parameter name="smtp.port" value="25" override="false"/>
<Parameter name="smtp.from.address" value="admin@example.com" override="false"/>
<Parameter name="smtp.from.name" value="Site administrator" override="false"/>
<Parameter name="list.name" value="DEV" override="false"/>
<Parameter name="temporary.folder" value="/tmp" override="false"/>
<Parameter name="authentication.type" value="LDAP" override="false"/>
您可以改用JNDI属性。我相信Glassfish使用jndi.properties文件
在应用程序的web.xml中,根据Java EE规范 下面是tomcat关于context.xml的简介 您可以配置指定的值 将对web可见 应用程序作为servlet上下文 通过嵌套初始化参数 这里面的元素 元素。例如,您可以创建 如下所示的初始化参数:
<Context ...> ...
<Parameter name="companyName" value="My Company,
Incorporated" override="false"/>
</Context>
。。。
这相当于包含
在web中创建以下元素的
应用程序部署描述符
(/WEB-INF/WEB.xml):
公司名称
我的公司,股份有限公司
答案是除了tomcats context.xml中的部分之外,没有其他选择 事实证明,该元素是tomcat特有的东西,通常不受其他应用服务器(如glassfish)的支持 据我所知,除了通过GUI或命令行界面手动配置数据库资源之外,似乎没有简单/合理的替代方案。听起来您想要“glassfish resources.xml”。您可以在那里创建JDBC和数据库池资源、JavaMail资源等
对于所有正在寻找在Glassfish中设置上下文参数的方法的人来说,这是可能的 尽管Glassfish不支持context.xml文件,但您仍然可以设置/覆盖web应用上下文参数。有asadmin子命令来设置这些。这些值将存储在您的domain.xml中-在重新部署应用程序时不会丢失 概要(来自上面的文档链接):
诸如JDBC数据源之类的资源也可以使用asadmin进行配置,或者您可以使用glassfish的web gui。所有这些信息都将存储在domain.xml文件中。这适用于参数,但如何设置数据库连接池?连接池是使用管理员gui定义的。但是,如果您需要xml修复程序,那么一切都在sun-web.xml中。抛开我很生气的事实不谈,您认为我喜欢xml。关键是,不应该在每次部署应用程序时都手动配置数据库连接。使用tomcat,您只需设置配置详细信息,就可以部署到服务器,而无需使用GUI界面。此外,使用管理界面的用户可能会忘记在JDBC连接池上启用UTF-8支持等操作,这可能会导致灾难。尽管很不幸,这正是它的工作原理。这有点像在工作中我们有一个orion-application.xml文件来配置Oracle application Server上的东西。我认为如果您取消部署然后部署一个应用程序,它们将丢失,不过……谢谢MichaelPesold,我试图手动添加,但我不知道应该在哪里添加它。此命令会自动执行此操作。如果可以在web gui上配置,那就更好了@vkraemer不需要重新部署应用程序,我们可以直接重新部署,也可以禁用一段时间。只有在我们取消部署时配置才会丢失,如果我们使用“重新部署”功能重新部署,配置才会保留此链接已断开。。。你能修好它吗?
<context-param>
<param-name>companyName</param-name>
<param-value>My Company, Incorporated</param-value>
</context-param>
set-web-context-param [--help] --name=context-param-name
{--value=value|--ignoredescriptoritem={false|true}}
[--description=description] application-name[/module]