gpt4 book ai didi

javax.naming.NameNotFoundException - jndiName

转载 作者:行者123 更新时间:2023-11-28 22:01:34 29 4
gpt4 key购买 nike

我想从 jetty 切换到 tomcat。我得到 NameNotFoundException,因为 tomcat 没有找到在 jetty-web.xml 中并在 applicationContext.xml 中使用的 jndiName。

我的 applicationContext.xml 的一部分:

    <bean id="clarityDataSource" class="org.springframework.jndi.JndiObjectFactoryBean" depends-on="i18nFactoryProvider">
<property name="jndiName" value="java:comp/env/jdbc/clarityDS"/>
</bean>

jetty-web.xml 的一部分

    <New id="clarityds" class="org.eclipse.jetty.plus.jndi.Resource">
<Arg>java:comp/env/jdbc/clarityDS</Arg>
<Arg>
<New class="oracle.jdbc.pool.OracleDataSource">
<Set name="connectionCachingEnabled">true</Set>
<Set name="dataSourceName">clarityDS</Set>
<Set name="URL"><SystemProperty name="clarityDS.url"/></Set>
<Set name="user"><SystemProperty name="clarityDS.username"/></Set>
<Set name="password"><SystemProperty name="clarityDS.password"/></Set>
</New>
</Arg>
</New>

我知道 jetty-web.xml 在所有文件之后加载。

谁能帮帮我?

  • 部署在WEB-INF中的jetty-web.xml
  • applicationContext.xmk部署在WEB-INF/classes/spring

最佳答案

我将资源添加到 tomcat context.xml 并解决了问题。

Run java web apps in embedded containers with Maven, Jetty and Tomcat

       <Resource
name="jdbc/clarityDS"
auth="Container"
type="javax.sql.DataSource"
driverClassName="clarity.clarityDS.driverClassName"
username="clarity.clarityDS.username"
password="clarity.clarityDS.password"
url="clarity.clarityDS.url"
/>

但如果可能的话,我喜欢在自定义路径中使用我的 context.xml

关于javax.naming.NameNotFoundException - jndiName,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40326186/

29 4 0