Я довольно новичок в веб-разработке Tomcat и Java и бьюсь головой о стену с проблемой, с которой я столкнулся.
У меня есть веб-приложение, которое отлично работает на моем локальном компьютере (windows xp), у меня установлен Tomcat 6 с файлом WAR, развернутым в папке webapps и в папке c: /apache-tomcat-6.0.18/conf/ Каталог Catalina / localhost / у меня есть «myApp.xml».
myApp.xml содержит следующее:
<Context path="/myApp" docBase="/myApp.war" debug="1" reloadable="true" cookies="true">
<Resource name="jdbc/sql-connection" scope="Shareable" type="javax.sql.DataSource" auth="Container" username="test" password="test" factory="org.apache.tomcat.jdbc.pool.DataSourceFactory" driverClassName="net.sourceforge.jtds.jdbc.Driver" url="jdbc:jtds:sqlserver://xxxx:xxxx;appName=myApp" removeAbandoned="true" logAbandoned="true" />
</Context>
Тогда в моем веб-приложении у меня есть следующая информация в файле applicationContext
<bean id="myDatasource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName">
<value>java:comp/env/jdbc/sql-connection</value>
</property>
</bean>
Теперь я перешел от того, что все нормально работает на моем локальном компьютере, к развертыванию его на компьютере под управлением Linux, однако, когда я развернул его там, с точно такой же настройкой, просто tomcat запускает из "opt / apache-tomcat- 6.0.18" . Каждый раз, когда я пытаюсь запустить Tomcat на коробке, он распаковывает файл WAR, но не запускает его, и выдает мне следующую ошибку всякий раз, когда я пытаюсь запустить его через менеджер:
Error creating bean with name 'myDatasource' defined in file [/opt/apache-tomcat-6.0.18/webapps/myApp/WEB-INF/classes/applicationContext.xml]: Invocation of init method failed; nested exception is javax.naming.NameNotFoundException: Name jdbc is not bound in this Context
Я пытался найти ответ по всему Интернету, но, похоже, ни у кого нет такой же проблемы, и имена, кажется, совпадают между файлом конфигурации tomcat и веб-приложением.