2012-04-19 73 views
0

我已經將我的本地主機實現移至另一臺服務器,並試圖使用另一個mySQL DB。initContext.lookup()和mysqlDB名稱之間的關係是什麼?

,但我得到一個空指針異常,當我在做

dataSource.getConnection(); 

* 這可能是一個問題,我的JDBC驅動程序? *

堆棧跟蹤:

java.lang.NullPointerException 
testProject.resources.ItemsResource.getItemsBrowser(ItemsResource.java:79) 
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
java.lang.reflect.Method.invoke(Method.java:616) 
com.sun.jersey.spi.container.JavaMethodInvokerFactory$1.invoke(JavaMethodInvokerFactory.java:60) 
com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$TypeOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:185) 
com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:75) 
com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:288) 
com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:108) 
com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147) 
com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:84) 
com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1483) 
com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1414) 
com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1363) 
com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1353) 
com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:414) 
com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:537) 
com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:708) 
javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 

代碼:

// For the browser 
@GET 
@Produces(MediaType.TEXT_XML) 
public Item getItemHTML() { 

    java.sql.Connection connection; 
    java.sql.Statement statement; 


    Item item = null; 
    ResultSet resultSet = null; 

    try { 

        connection = dataSource.getConnection(); 
     statement = connection.createStatement(); 

     String query = "SELECT * FROM ITEMS WHERE itemID = " + id ; 


     resultSet = statement.executeQuery(query); 

78線是連接=的DataSource.getConnection();

非常感謝

回答

0

的java:comp/env的是Java EE服務器的命名空間。 jdbc/fyproj是在上下文文件中定義的數據源名稱。

在應用程序服務器啓動時,它會加載上下文文件並創建使用上下文文件中指定的jndi字符串和數據庫詳細信息定義的數據源。你需要使用JNDI字符串(這是你的數據源綁定的服務器JNDI空間(java:comp/env)和你定義的數據源名稱(jdbc/fyproj))組合。

上下文文件中的數據源配置包含與數據庫相關的所有詳細信息。所以,jdbc/fyproj不一定是數據庫名稱。您使用的真實數據庫將在數據源定義中。

+0

好吧,那不是問題,那麼一個缺少jdbc驅動程序會導致錯誤? – flexer7661 2012-04-19 19:09:52

+0

問題是什麼?你沒有討論任何有關問題。發佈錯誤堆棧。 – kosa 2012-04-19 19:12:18

+0

添加錯誤堆棧以發佈 – flexer7661 2012-04-19 19:15:16

相關問題