Я использую Jetty 9.2 (встроенный) со стандартным API-интерфейсом соединителя MySQL, и я очень смущен тем, как это должно быть настроено. В настоящее время, у меня есть это в моем web.xml файл:JNDI-поиск не работает с Jetty для соединения JDBC-соединения с MySQL?
<webapp ...
<resource-ref>
<description>JDBC Data Source</description>
<res-ref-name>jdbc/DataSource</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</webapp>
... и это в моем молы-env.xml:
<Configure class="org.eclipse.jetty.webapp.WebAppContext">
<New id="DatabaseConnector" class="org.eclipse.jetty.plus.jndi.Resource">
<Arg></Arg>
<Arg>jdbc/DataSource</Arg>
<Arg>
<New class="com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource">
<Set name="Url">jdbc:mysql://localhost:3306/DBName</Set>
<Set name="User">user</Set>
<Set name="Password">pass</Set>
</New>
</Arg>
</New>
</Configure>
... и этот код для инициализации:
Context envCtx = (Context) new InitialContext().lookup("java:comp/env");
DataSource datasource = (DataSource) envCtx.lookup("jdbc/DataSource");
Когда я пытаюсь запустить сервер, я получаю ошибку javax.naming.NameNotFoundException; remaining name 'jdbc/DataSource'
. Я пробовал много разных вариантов строк в инициализации кода, например, удаление вызова lookup
на объекте InitialContext
, но я просто продолжаю получать вариации той же ошибки с другим значением name
;
Оба файла xml находятся в моем каталоге /WAR/WEB-INF
. Я просмотрел множество предыдущих вопросов и руководств, блогов и т. Д., Но я ничего не получаю.
Можете ли вы разместить свой код 'WebAppContext.setConfiguration() для экземпляра Jetty Embedded? –
У меня есть ответы, которые я искал где-то еще, я отправлю ответ, обобщающий решение. – RTF