2013-05-28 73 views
4

我在這裏有一個例外,在下面的代碼...我想建立一個簡單的servlet的項目,我有以下異常引發:java.net.UnknownHostException ...
我有mysql的jar文件添加,除此之外...我已經添加它作爲一個外部的jar文件,並在WEB-INF下的lib下,如this page所述,但現在這是投擲java.net.UnknownHostException數據庫連接 - 的java.net.UnknownHostException

這是代碼和異常堆棧跟蹤。

package com.servlet.Mysql; 

import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.SQLException; 


public class Connection_Class { 
String driver_ClassName="com.mysql.jdbc.Driver"; 
String URL_connection="jdbc:mysql://localhost3306/vendor"; 
String user="root"; 
String password="lifesuckzz"; 
private static Connection_Class connectionclass=null; 

private Connection_Class(){ 
    try{ 
     Class.forName(driver_ClassName); 

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

public Connection getConnection() throws SQLException{ 
    Connection con=null; 
    con=DriverManager.getConnection(URL_connection,user,password); 
    return con; 
} 

public static Connection_Class getInstance(){ 
    if(connectionclass==null){ 
     connectionclass=new Connection_Class(); 
    } 
    return connectionclass;}} 

堆棧跟蹤:

com.mysql.jdbc.CommunicationsException: Communications link failure due to underlying exception: 

** BEGIN NESTED EXCEPTION ** 

java.net.UnknownHostException 
MESSAGE: localhost3306 

STACKTRACE: 

java.net.UnknownHostException: localhost3306 
at java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method) 
at java.net.InetAddress$1.lookupAllHostAddr(Unknown Source) 
at java.net.InetAddress.getAddressesFromNameService(Unknown Source) 
at java.net.InetAddress.getAllByName0(Unknown Source) 
at java.net.InetAddress.getAllByName(Unknown Source) 
at java.net.InetAddress.getAllByName(Unknown Source) 
at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:133) 
at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:280) 
at com.mysql.jdbc.Connection.createNewIO(Connection.java:1699) 
at com.mysql.jdbc.Connection.<init>(Connection.java:405) 
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:268) 
at java.sql.DriverManager.getConnection(Unknown Source) 
at java.sql.DriverManager.getConnection(Unknown Source) 
at com.servlet.Mysql.Connection_Class.getConnection(Connection_Class.java:25) 
at com.servlet.Mysql.LoginServlet.doGet(LoginServlet.java:49) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:621) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222) 
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) 
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) 
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) 
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99) 
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936) 
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) 
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) 
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004) 
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589) 
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
at java.lang.Thread.run(Unknown Source) 


** END NESTED EXCEPTION ** 


at com.mysql.jdbc.Connection.createNewIO(Connection.java:1764) 
at com.mysql.jdbc.Connection.<init>(Connection.java:405) 
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:268) 
at java.sql.DriverManager.getConnection(Unknown Source) 
at java.sql.DriverManager.getConnection(Unknown Source) 
at com.servlet.Mysql.Connection_Class.getConnection(Connection_Class.java:25) 
at com.servlet.Mysql.LoginServlet.doGet(LoginServlet.java:49) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:621) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222) 
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) 
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) 
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) 
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99) 
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936) 
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) 
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) 
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004) 
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589) 
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
at java.lang.Thread.run(Unknown Source) 

我使用的Apache Web容器和Eclipse,這個帖子java.lang.ClassNotFoundException in spite of using CLASSPATH environment variable我想靠近這裏我的情況wasnt .....請幫助我,謝謝大家提前...

回答

4

你已經錯過了主機名和端口號......之間的冒號,您的連接網址應該是

String URL_connection="jdbc:mysql://localhost:3306/vendor"; 
+0

它發生哥們有些時候......我們都是一樣的....你可以給予好評的答案,如果它幫助你.. – aProgrammer

3

我認爲連接的URL應該是jdbc:mysql://localhost:3306/vendorlocalhost是服務器名稱和3306的端口名稱,由:分隔。

String URL_connection="jdbc:mysql://localhost:3306/vendor"; 

請通過docs

爲MySQL連接器的JDBC URL格式/ J爲如下,其中在方括號中的項目([,])是可選的:

jdbc:mysql://[host][,failoverhost...][:port]/[database] » 
[?propertyName1][=propertyValue1][&propertyName2][=propertyValue2]... 

如果未指定的主機名,則默認到127.0.0.1。如果未指定端口,則默認爲3306