2012-04-19 72 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

相关问题