2016-11-22 10 views
0

Eclipseでアプリケーションを開発しています。それはプロジェクトです。私はphpMyAdmin MySqlDatabaseで作業したいです。 src-main-resourcesにMETA-INFというフォルダを作成し、そのフォルダにcontext.xmlファイルを作成しました。これは私のcontext.xmlファイルです:コンソールで「jdbcを見つけることができません」というメッセージが表示される

<?xml version="1.0" encoding="UTF-8"?> 
<Context reloadable="true"> 
<Resource name="jdbc/mysql" auth="Container" type="javax.sql.DataSource" 
    driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/database?useUnicode=true&amp;characterEncoding=utf8&amp;" 
username="root" password="" maxActive="20" maxIdle="10" maxWait="-1" /> 
</Context> 

およびSrc-メイン-Javaで私はDAOクラスを作ったパッケージを作った、これは私のDAOクラスです:また

public class OsobaDAO { 
    private static String INSERTOSOBA = "INSERT INTO osoba (ime, prezime, JMBG) VALUES (?, ?, ?)"; 
    private static String DELETEOSOBA = "DELETE FROM osoba WHERE idosoba = ?"; 
    private static String SELECTBYID = "SELECT * FROM osoba WHERE idosoba = ?"; private static String GETLASTNOSOBA = "SELECT * FROM osoba ORDER BY idosoba DESC LIMIT ? "; 
    private DataSource ds; 

    public OsobaDAO(){ 
     try { 
      InitialContext cxt = new InitialContext(); 
      if (cxt == null) { 
      } 
      ds = (DataSource) cxt.lookup("java:/comp/env/jdbc/mysql"); 
      if (ds == null) { 

      }  
     } catch (NamingException e) { 
      e.printStackTrace(); 
     } 
    } 

    public void insertOsoba(Osoba osoba){ 
     Connection con = null; 
     java.sql.PreparedStatement pstm = null; 
     try { 
      con = ds.getConnection(); 
      pstm = con.prepareStatement(INSERTOSOBA); 
      pstm.setString(1, osoba.getIme()); 
      pstm.setString(2, osoba.getPrezime()); 
      pstm.setString(3, osoba.getJMBG()); 
      pstm.execute(); 
     } catch (SQLException e) { 
      System.out.println("Error connecting!"); 
     } 
     try { 
      con.close(); 
     } catch (SQLException e) { 
      e.printStackTrace(); 
     } 
    } 

、私が持っています私はDAOからこの方法インサートをテストしていJSPファイル:

INFO: Server startup in 5862 ms 
javax.naming.NameNotFoundException: Name [jdbc/mysql] is not bound in this Context. Unable to find [jdbc]. 
    at org.apache.naming.NamingContext.lookup(NamingContext.java:817) 
    at org.apache.naming.NamingContext.lookup(NamingContext.java:159) 
    at org.apache.naming.NamingContext.lookup(NamingContext.java:827) 
    at org.apache.naming.NamingContext.lookup(NamingContext.java:159) 
    at org.apache.naming.NamingContext.lookup(NamingContext.java:827) 
    at org.apache.naming.NamingContext.lookup(NamingContext.java:173) 
    at org.apache.naming.SelectorContext.lookup(SelectorContext.java:163) 
    at javax.naming.InitialContext.lookup(InitialContext.java:417) 
    at dao.OsobaDAO.<init>(OsobaDAO.java:25) 
    at org.apache.jsp.test_jsp._jspService(test_jsp.java:123) 
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) 
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:443) 
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385) 
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165) 
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:108) 
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) 
    at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:620) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:349) 
    at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:783) 
    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) 
    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:745) 
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1455) 
    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) 
    at java.lang.Thread.run(Thread.java:745) 
Nov 22, 2016 2:00:13 PM org.apache.catalina.core.StandardWrapperValve invoke 
SEVERE: Servlet.service() for servlet [jsp] in context with path [/DaoWithMaven] threw exception [java.lang.NullPointerException] with root cause 
java.lang.NullPointerException 
    at dao.OsobaDAO.insertOsoba(OsobaDAO.java:38) 
    at org.apache.jsp.test_jsp._jspService(test_jsp.java:128) 
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) 
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:443) 
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385) 
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165) 
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:108) 
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) 
    at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:620) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:349) 
    at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:783) 
    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) 
    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:745) 
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1455) 
    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) 
    at java.lang.Thread.run(Thread.java:745) 
01:

<% OsobaDAO od = new OsobaDAO(); 

Osoba o = new Osoba("Pera", "Peric", "1111111111111"); 

// poziv metode 
od.insertOsoba(o); 
%> 

私はプログラムを実行すると、私はこのエラーを持っています

誰でも助けてくれますか?

+0

トライcxt.lookup( "javaの:JDBC/mysqlの"); –

+0

いいえ、同じ... – Atenica

+0

あなたのlibにMySQLDatabaseコネクタを追加しました。それを確認してからlibコネクタにデータベースコネクタjarを追加しないでください – Zia

答えて

0

は、答えはOKになる場合、それは、大きな助けになるだろう、このリンクを使用@Atleticaあなたはapplication.xmlの名前のXMLファイルを追加することができ、warファイルとしてアプリケーションをデプロイしていると仮定すると、https://tomcat.apache.org/tomcat-6.0-doc/jndi-datasource-examples-howto.html

+0

これはあまり役に立たなかった... – Atenica

+0

あなたのアプリケーションがウェブベースであると仮定していますか? –

+0

web.xmlに設定を追加する必要がある場合 –

0

を投票してください以下のディレクトリに移動します。

$ CATALINA_BASE/confに/カタリナ/ localhostの/ application.xmlに次のようにデータベースを構成することができ、このファイル内

<?xml version="1.0" encoding="UTF-8"?><Context path="/application"><Resource name="jdbc/mysql" auth="Container" type="javax.sql.DataSource" 
driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/database?autoReconnect=true" username="root" password="test" maxActive="20" maxIdle="10" maxWait="-1" /> </Context> 

この設定のみでは、application.warはこのプールを使用できます。プールをサーバー単位で使用する場合は、server.xml内でプールを構成する必要があります。

0

は、たぶんこれはあなたの問題である:

In individual files (with a ".xml" extension) in the $CATALINA_BASE/conf/[enginename]/[hostname]/ directory. The context path and version will be derived from the base name of the file (the file name less the .xml extension). This file will always take precedence over any context.xml file packaged in the web application's META-INF directory.

tomcat.apache.orgからの引用)

+0

だから私はどうしたらいいですか? – Atenica

+0

あなたの '$ CATALINA_BASE/conf/...'ディレクトリ内を見て、他の/古い 'context.xml'があればそれを削除し、もう一度やり直してください(**あなたの削除したcontext.xmlをバックアップしてください! **)ここでこのファイルの内容を印刷してください。おそらくあなたのリソースの別の定義があります。 –

関連する問題