我正在嘗試使用IDEA IntelliJ Jetty插件。在我們的應用程序中,我們使用JNDI數據源來訪問實際的數據庫。使用IDEA配置DataSource IntelliJ Jetty插件(jetty-env.xml)
對於發展我們因此產生碼頭-env.xml和發展過程中包括這在WEB-INF目錄部署:
<?xml version="1.0"?>
<!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN" "http://jetty.mortbay.org/configure.dtd">
<Configure class="org.mortbay.jetty.webapp.WebAppContext">
<!-- Add an JNDI resource -->
<New class="org.mortbay.jetty.plus.naming.Resource">
<Arg>datasource_pbv</Arg>
<Arg>
<New class="org.apache.commons.dbcp.BasicDataSource">
<Set name="DriverClassName">oracle.jdbc.driver.OracleDriver</Set>
<Set name="Url">jdbc:oracle:thin:@dbserver:1521:DATABASE</Set>
<Set name="Username">user</Set>
<Set name="Password">pass</Set>
</New>
</Arg>
</New>
</Configure>
我重新配置碼頭WebAppDeployer在碼頭。 xml那樣,所以它使用org.mortbay.jetty.plus.webapp.EnvConfiguration它讀取和處理jetty-env.xml:
<Configure id="Server" class="org.mortbay.jetty.Server">
...
<Array id="plusConfig" type="java.lang.String">
<Item>org.mortbay.jetty.webapp.WebInfConfiguration</Item>
<Item>org.mortbay.jetty.plus.webapp.EnvConfiguration</Item>
<Item>org.mortbay.jetty.plus.webapp.Configuration</Item>
<Item>org.mortbay.jetty.webapp.JettyWebXmlConfiguration</Item>
<Item>org.mortbay.jetty.webapp.TagLibConfiguration</Item>
</Array>
...
<Call name="addLifeCycle">
<Arg>
<New class="org.mortbay.jetty.deployer.WebAppDeployer">
...
<Set name="configurationClasses"><Ref id="plusConfig"/></Set>
</New>
</Arg>
</Call>
...
</Configure>
不幸的是,這不適用於IDEA Jetty插件。 IDEA Jetty Plugin會生成一個context-config.xml和後續的war-exploded.xml,它不會添加EnvConfiguration。 因此,在使用Jetty IDEA插件進行部署時,會忽略jetty-env.xml。
在使用IDEA Jetty插件進行部署時,如何使這項工作或其他方式提供自定義JNDI條目?