2012-04-19 1 views
0

localhost実装を別のサーバに移動し、別のmySQL DBを使用しようとしました。initContext.lookup()とmysqlDB nameの関係は何ですか?

しかし、私は

dataSource.getConnection(); 

* をやっているとき、私は、nullポインタ例外を取得していますが、それは私の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

+0

問題は何ですか?問題のことについては何も話しませんでした。ポストエラースタック。 – kosa

+0

投稿するエラースタックを追加しました – flexer7661

関連する問題