我刚刚开始学习websockets,我得到一个奇怪的错误:
<script type="text/javascript">
window.onload = function(){
var service = new WebSocket("ws://localhost:8080/websocket/test");
service.onmessage = function(event){
alert("message");
}
service.onopen = function(){
service.send("hello!");
}
service.onclose = function(){
alert("closed");
}
service.onerror = function(){
alert("error");
}
service.send("test");
service.close();
}
</script>
Run Code Online (Sandbox Code Playgroud)
在线上:
service.send("test");
Run Code Online (Sandbox Code Playgroud)
我明白了:
InvalidStateError: An attempt was made to use an object that is not, or is no longer, usable
Run Code Online (Sandbox Code Playgroud)
我错过了重要的事吗?
我正在使用Postgresql 8.4,而我的应用程序正在尝试连接到数据库。我已经注册了驱动程序:
DriverManager.registerDriver(new org.postgresql.Driver());
Run Code Online (Sandbox Code Playgroud)
然后尝试连接:
db = DriverManager.getConnection(database_url);
Run Code Online (Sandbox Code Playgroud)
(顺便说一句,我的jdbc字符串类似于:jdbc:postgresql:// localhost:5432 / myschema?user = myuser&password = mypassword)
我尝试了各种版本的jdbc驱动程序,并遇到两种错误:
使用jdbc3:
Exception in thread "main" java.lang.AbstractMethodError: org.postgresql.jdbc3.Jdbc3Connection.getSchema()Ljava/lang/String;
Run Code Online (Sandbox Code Playgroud)
使用jdbc4:
java.sql.SQLFeatureNotSupportedException: Il metodo ½org.postgresql.jdbc4.Jdbc4Connection.getSchema()? non Þ stato ancora implementato.
Run Code Online (Sandbox Code Playgroud)
这意味着:尚未实现org.postgresql.jdbc4.Jdbc4Connection.getSchema()方法。
我缺少了一些东西,但我不知道..
- - - 解决了 - - - - -
问题不在连接字符串或驱动程序版本中,问题在getConnection()方法正上方的代码中:
db = DriverManager.getConnection(database_url);
LOGGER.info("Connected to : " + db.getCatalog() + " - " + db.getSchema());
Run Code Online (Sandbox Code Playgroud)
似乎postgresql驱动程序没有getSchema方法,因为Java控制台经常试图对我说。
我期待这段代码:
double valore = 20.775;
BigDecimal c = new BigDecimal(valore);
c = c.setScale(2, RoundingMode.HALF_UP);
System.out.println(c.doubleValue());
Run Code Online (Sandbox Code Playgroud)
返回20.78,但它返回20.77.
这是一个错误吗?或者我错过了什么?