Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java glassfish替代context.xml的是什么_Java_Glassfish - Fatal编程技术网

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&amp;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&amp;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]