2012-04-19 4 views
0

localhost 구현을 다른 서버로 이동하고 다른 mySQL DB를 사용하려고했습니다. 내 JDBC 드라이버initContext.lookup()과 mysqlDB name 사이의 관계는 무엇입니까?

dataSource.getConnection(); 

* 이 될 수있는 문제를하고있을 때

하지만 난 널 포인터 예외를 받고 있어요? *

스택 추적 :

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 공간 (java : comp/env)과 정의 된 데이터 소스 이름 (jdbc/fyproj)의 조합 인 JNDI 문자열을 사용해야합니다.

컨텍스트 파일의 데이터 소스 구성에는 데이터베이스와 관련된 모든 세부 정보가 들어 있습니다. 따라서, jdbc/fyproj는 데이터베이스 이름 일 필요는 없습니다. 실제 데이터베이스를 사용하여 데이터 소스 정의에있을 것입니다.

+0

그렇다면 문제가 아니라 오류가 발생하는 jdbc 드라이버가 누락 될 수 있습니까? – flexer7661

+0

무엇이 문제입니까? 질문에 대해서는 아무 것도 얘기하지 않았습니다. 오류 게시 스택. – kosa

+0

게시 할 오류 스택을 – flexer7661

관련 문제