Соединение с базой данных на стороне сервера GWT - не удается найти - PullRequest
1 голос
/ 19 августа 2011

Я пытаюсь подключиться к базе данных Oracle 10g на стороне сервера приложения gwt.В настоящее время я получаю это исключение: java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver.(полная трассировка стека ниже)

Я добавил ojdbc14.jar к моему пути сборки, и тот же код работает, когда я запускаю его внутри метода main () в своем собственном (неgwt) project.

Вот упрощенная версия моего кода, которая по-прежнему вылетает таким же образом:

public class DataUsageServiceImpl extends RemoteServiceServlet implements UsageDataService {

    @Override
    public ServerDataTable getUsageData() {
        try {
            Class.forName("oracle.jdbc.driver.OracleDriver");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }

        ServerDataTable thisTable = new ServerDataTable();
        return thisTable;
    }
}

Я думаю, что вы можете спокойно игнорировать класс ServerDataTable, который я написал.Исключение встречалось и раньше.

Я подумал, что мне может понадобиться как-то рассказать gwt об этом модуле, поэтому я попытался добавить следующий тег в файл MyProject.gwt.xml:

<inherits name='oracle.jdbc.driver.OracleDriver'/>

но это выдает сообщение "[ОШИБКА] Невозможно найти 'oracle / jdbc / driver / OracleDriver.gwt.xml' на вашем пути к классам"

И просто ради ударов я попытался скопировать ojdbc14.jar в мой WEB-INFкаталог / lib и добавление этой копии в мой путь сборки, но все равно не повезло.

Кто-нибудь может помочь?Заранее спасибо.

Stack Trace of Exception:

java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at com.google.appengine.tools.development.IsolatedAppClassLoader.loadClass(IsolatedAppClassLoader.java:176)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at ca.gc.nrcan.geod.intranet.server.DataUsageServiceImpl.getUsageData(DataUsageServiceImpl.java:13)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.google.appengine.tools.development.agent.runtime.Runtime.invoke(Runtime.java:100)
at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:569)
at com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:208)
at com.google.gwt.user.server.rpc.RemoteServiceServlet.processPost(RemoteServiceServlet.java:248)
at com.google.gwt.user.server.rpc.AbstractRemoteServiceServlet.doPost(AbstractRemoteServiceServlet.java:62)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166)
at com.google.appengine.tools.development.HeaderVerificationFilter.doFilter(HeaderVerificationFilter.java:35)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java:58)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:43)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at com.google.appengine.tools.development.StaticFileFilter.doFilter(StaticFileFilter.java:122)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at com.google.appengine.tools.development.BackendServersFilter.doFilter(BackendServersFilter.java:97)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388)
at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)
at com.google.apphosting.utils.jetty.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java:70)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at com.google.appengine.tools.development.JettyContainerService$ApiProxyHandler.handle(JettyContainerService.java:351)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at org.mortbay.jetty.Server.handle(Server.java:326)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:938)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:755)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)
at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)*

Ответы [ 2 ]

0 голосов
/ 25 августа 2011

Похоже, у вас есть два разных драйвера jdbc в вашем classpath.Проверьте, есть ли у вас какой-либо другой файл ojdbc * .jar в вашем classpath Jetty или в вашем WEB-INF / lib

0 голосов
/ 19 августа 2011

Попробуйте

Class.forName("oracle.jdbc.OracleDriver");
...