Извините, если этот вопрос кажется повторяющимся, но я не смог прояснить работоспособное решение из результатов поиска существующих сообщений.Как настроить пул соединений с GWT/Jetty в eclipse?
У меня есть веб-приложение, в котором используется пул соединений JDBC. Ресурс пула соединений определен в мета-инф./Context.xml файла войны. Когда я разворачиваю файл войны в tomcat, этот файл копируется (и переименовывается в соответствии с именем моего военного файла) в папку conf/catalina/localhost tomcat. Мой код получает объект источника данных для соединения, как это:
Context envCtx = (Context) new InitialContext().lookup("java:comp/env");
datasource = (DataSource) envCtx.lookup("jdbc/MYDB");
и мой context.xml имеет следующий ресурс, определенный:
<Resource name="jdbc/MYDB"
auth="Container"
type="javax.sql.DataSource"
driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
username="username"
password="password"
url="jdbc:sqlserver://myremote.database.server:1433;databaseName=testdb"
/>
Все это хорошо работает, когда файл война развертывается кот.
Однако, во время разработки в затмении и из-за зависимостей GWT, мне часто приходится отлаживать использование встроенного контейнера для причала GWT.
Когда я делаю это, вызов InitialContext() выдает следующее сообщение:
javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial
Я попытался использовать пристани-env.xml в войнах веб-инфе, но это не сработало (то же самое ошибка), возможно синтаксическая ошибка в jetty-env.xml или что-то еще.
Вот мой причал-ENV:
<?xml version="1.0"?>
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure.dtd">
<Configure id="Server" class="org.eclipse.jetty.server.Server">
<New id="OTMFTDB" class="org.eclipse.jetty.plus.jndi.Resource">
<Arg></Arg>
<Arg>jdbc/MYDB</Arg>
<Arg>
<New class="net.sourceforge.jtds.jdbcx.JtdsDataSource">
<Set name="User">username</Set>
<Set name="Password">password</Set>
<Set name="DatabaseName">testdb</Set>
<Set name="ServerName">myremote.database.server</Set>
<Set name="PortNumber">1433</Set>
</New>
</Arg>
</New>
</Configure>
Одна последняя вещь, если я изменил название молы-env.xml к молы-web.xml, то я получаю ошибку 503 HTML когда Я пытаюсь подключить браузер. (eclipse показывает следующую ошибку: [WARN] Не удалось запустить контекст com.g[email protected]111a20c {/, E: \ dev \ src \ servers \ webservice \ war} java .lang.ClassNotFoundException: org.eclipse.jetty.server.Server)
Так что я считаю, что jetty-env не был загружен, а причал-сеть, но моя пристань явно препятствует настройкам GWT для причала.
Спасибо за подробный ответ! Я попробовал, и это не сработало для меня. Я считаю, что это потому, что я использую новый GWT (2.6.0), который, я считаю, использует Jetty 8.1.12 на основе этого SO-ответа (https://stackoverflow.com/a/17592318). Я считаю, что файл конфигурации и имя класса будут разными, но я не смог найти документацию Jetty 8 в Интернете (доступен только Jetty 9.3.x). В любом случае, я попытаюсь выполнить инструкцию для Jetty 9 (здесь: https://www.eclipse.org/jetty/documentation/9.3.x/using-jetty-jndi.html). Если у вас есть понимание, пожалуйста, поделитесь со мной. – leeyuiwah