我正在尝试总结战争部署期间DataSource部署的解决方案。 说实话,从控制台手动添加它不太方便。
我可以看到,例如JBoss有解决方案:http://www.mastertheboss.com/jboss-application-server/375-jboss-as-7-deployable-datasources.html
对于Tomcat,还有context.xml可以解决这个问题。
你知道GlassFish是否可行吗?
是否有JSR会对此进行标准化?可能在JEE7。
答案 0 :(得分:2)
在Glassfish中,可以在 glassfish-resources.xml (以前称为 sun-resources.xml )文件中定义应用程序作用域资源
来自Glassfish application deployment guide:
在glassfish-resources.xml部署描述符文件中定义了应用程序范围的资源。这个文件是 放置在模块或应用程序存档的META-INF目录中。 对于Web应用程序或模块,此文件放在WEB-INF中 目录。如果企业应用程序的任何子模块存档 archive有自己的glassfish-resources.xml文件,即资源 定义仅限于那些模块。
示例配置如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE resources PUBLIC "-//Sun Microsystems, Inc.//DTD Application Server 9.0 Resource Definitions //EN" "http://www.sun.com/software/appserver/dtds/sun-resources_1_3.dtd">
<resources>
<jdbc-connection-pool name="mysql_rootPool" ...>
<property name="serverName" value="myServer"/>
<property name="portNumber" value="3306"/>
...
</jdbc-connection-pool>
<jdbc-resource enabled="true" jndi-name="jdbc/mydb" object-type="user" pool-name="mysql_rootPool"/>
</resources>
资源定义与Glassfish域的 domain.xml 中的相同。你可以从那里复制它。