0

ローカルホストの実装を別のサーバーに移動し、別のmySQLDBを使用しようとしました。

しかし、私がしているときにnullポインタ例外が発生します

 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はconnection=dataSource.getConnection();です。

どうもありがとう

4

1 に答える 1

0

java:comp/env は Java EE サーバーの名前空間です。jdbc/fyproj は、コンテキスト ファイルで定義されたデータソース名です。

アプリ サーバーの起動中に、コンテキスト ファイルが読み込まれ、コンテキスト ファイルで指定された jndi 文字列とデータベースの詳細で定義されたデータソースが作成されます。

データソースを使用する場合は、JNDI 文字列を使用する必要があります (これは、データソースがバインドされているサーバー JNDI スペース (java:comp/env) と定義されたデータソース名 (jdbc/fyproj) の組み合わせです)。

コンテキスト ファイルのデータソース構成には、データベースに関連するすべての詳細が含まれます。したがって、jdbc/fyproj はデータベース名である必要はありません。使用する実際のデータベースは、データソース定義になります。

于 2012-04-19T19:00:44.523 に答える