1

我正在创建一个 java web 应用程序,它应该在多个应用程序服务器(jetty、tomcat、websphere、jboss)上运行。此应用程序中有一个可选数据源。如果已配置,应用程序将使用它,否则应用程序中的某些功能将被禁用。

问题是,如果我在 web.xml 中定义资源引用,则需要在应用程序上下文中定义它。如果我没有在 web.xml 中定义它,那么当我尝试在 websphere 中部署应用程序时,就无法在应用程序中引用数据源。

有没有办法让 websphere 知道可选数据源,而不必总是在应用程序上下文中定义它?

4

1 回答 1

1

不要使用“可选数据源”。相反,始终定义资源引用,并添加一个 env-entry:

@Resource(name="useDataSource")
private boolean useDataSource;

...或相应的 XML:

<env-entry>
  <env-entry-name>useDataSource</env-entry-name>
  <env-entry-type>java.lang.Boolean</env-entry-type>
  <env-entry-value>false</env-entry-value>
</env-entry>

env-entry 的值可以在部署时更改。

于 2012-08-01T12:43:17.750 回答