Столкнулся с такой же проблемой.
Мой проект / WEB-INF / jetty-env.xml был:
<New id="DS" class="org.eclipse.jetty.plus.jndi.Resource">
<Arg><Ref id="studentsApp"/></Arg>
<Arg>jdbc/DS</Arg>
<Arg>
<New class="com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource">
<Set name="Url">jdbc:mysql://localhost:3306/students</Set>
<Set name="User">root</Set>
<Set name="Password">root</Set>
</New>
</Arg>
</New>
И произошла та же ошибка. Я пытался переключить jndi области - не работает.
Событие, когда я пытался заглянуть в java: comp /, чтобы посмотреть, какие записи jndi доступны, ничего не возвращает. Код для использования в списке jndi:
Context t = (Context)new InitialContext().lookup("java:comp");
listContext(t, "");
private static final void listContext(Context ctx, String indent) {
try {
NamingEnumeration list = ctx.listBindings("");
while (list.hasMore()) {
Binding item = (Binding) list.next();
String className = item.getClassName();
String name = item.getName();
System.out.println(indent + className + " " + name);
Object o = item.getObject();
if (o instanceof javax.naming.Context) {
listContext((Context) o, indent + " ");
}
}
} catch (NamingException ex) {
System.out.println(ex);
}
}
Я точно знал, что jetty-web.xml загружен - я добавил:
<Call class="org.eclipse.jetty.util.log.Log" name="info"><Arg>Starting my super test application</Arg></Call>
поверх jetty-web.xml и выводится при запуске сервера.
Затем я решил перейти с непереносимого файла jetty-web.xml на context.xml , поместив его в $ JETTY_HOME / contexts , поместил jar коннектора MySQL в $ JETTY_HOME / lib / ext , и он начал работать.
Похоже, у Jetty есть проблема с записями JNDI, если они загружены из jetty-web.xml .