如何更改HSQLDB服务器侦听的端口(How to change port that HSQLDB server listens on)
我以编程方式启动HSQLDB服务器,但是当我尝试将HSQLDB服务器与我正在开发的Web应用程序一起运行时,我遇到了端口冲突。 我在webapp端遇到以下错误
java.util.concurrent.ExecutionException: java.net.BindException: Address already in use: JVM_Bind
我在数据库服务器端遇到此错误:
org.hsqldb.HsqlException: Client driver version greater than '-1852.-79.-80.-35' is required. HSQLDB server version is '2.3.2' at org.hsqldb.error.Error.error(Unknown Source) at org.hsqldb.server.ServerConnection.init(Unknown Source) at org.hsqldb.server.ServerConnection.run(Unknown Source) at java.lang.Thread.run(Thread.java:745)
我不知道为什么会出现这个错误。 但是,当我查看webapp和HSQLDB使用的端口时,我发现它们都使用9001,因此我认为问题与冲突的端口有关,而与HSQLDB版本无关。 但是,我不确定。
我知道HSQLDB使用的默认端口号是9001,我试图通过将用于9137的端口设置为以下代码来更改它。
public void startDBServer() { HsqlProperties props = new HsqlProperties(); props.setProperty("server.database.0", "file:" + dbLocation + "webappdb;"); props.setProperty("server.dbname.0", "webappdb"); props.setProperty("server.port", "9137"); dbServer = new org.hsqldb.Server(); try { dbServer.setProperties(props); } catch (Exception e) { return; } dbServer.start(); }
但是,当我尝试启动数据库服务器时,我得到以下错误堆栈跟踪:
java.sql.SQLTransientConnectionException: java.net.ConnectException: Connection refused: connect2015-04-27 11:42:02,306 INFO [Thread-2] server.DatabaseWorker (DatabaseWorker.java:20) - Database server is Running at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source) at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source) at org.hsqldb.jdbc.JDBCConnection.<init>(Unknown Source) at org.hsqldb.jdbc.JDBCDriver.getConnection(Unknown Source) at org.hsqldb.jdbc.JDBCDriver.connect(Unknown Source) at java.sql.DriverManager.getConnection(DriverManager.java:664) at java.sql.DriverManager.getConnection(DriverManager.java:247) at rideabike.server.DatabaseManager.getDBConn(DatabaseManager.java:37) at rideabike.server.DatabaseWorker.run(DatabaseWorker.java:18) Caused by: org.hsqldb.HsqlException: java.net.ConnectException: Connection refused: connect at org.hsqldb.ClientConnection.openConnection(Unknown Source) at org.hsqldb.ClientConnection.initConnection(Unknown Source) at org.hsqldb.ClientConnection.<init>(Unknown Source) ... 7 more Caused by: java.net.ConnectException: Connection refused: connect at java.net.DualStackPlainSocketImpl.connect0(Native Method) at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:79) at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:345) at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) at java.net.Socket.connect(Socket.java:589) at java.net.Socket.connect(Socket.java:538) at java.net.Socket.<init>(Socket.java:434) at java.net.Socket.<init>(Socket.java:211) at org.hsqldb.server.HsqlSocketFactory.createSocket(Unknown Source) ... 10 more
我还需要做些什么来尝试更改HSQLDB服务器使用的端口吗? 非常感谢任何帮助,谢谢。
I am starting a HSQLDB server programmatically, however I am getting port conflicts when I try an run the HSQLDB server in conjunction with a web application that I am developing. I get the following error on the webapp side
java.util.concurrent.ExecutionException: java.net.BindException: Address already in use: JVM_Bind
& I get this error on the database server side:
org.hsqldb.HsqlException: Client driver version greater than '-1852.-79.-80.-35' is required. HSQLDB server version is '2.3.2' at org.hsqldb.error.Error.error(Unknown Source) at org.hsqldb.server.ServerConnection.init(Unknown Source) at org.hsqldb.server.ServerConnection.run(Unknown Source) at java.lang.Thread.run(Thread.java:745)
I'm not sure why I get this error. However, when I looked at the ports used by the webapp and HSQLDB, I found that they both use 9001 so I assume the issue is to do with conflicting ports and not about HSQLDB versions. However, I'm not certain about that.
I understand that the default port number used by HSQLDB is 9001 and I've tried to change this with the following code by setting the port to be used to 9137.
public void startDBServer() { HsqlProperties props = new HsqlProperties(); props.setProperty("server.database.0", "file:" + dbLocation + "webappdb;"); props.setProperty("server.dbname.0", "webappdb"); props.setProperty("server.port", "9137"); dbServer = new org.hsqldb.Server(); try { dbServer.setProperties(props); } catch (Exception e) { return; } dbServer.start(); }
However, when I then try and start the database server I get the following error stacktrace:
java.sql.SQLTransientConnectionException: java.net.ConnectException: Connection refused: connect2015-04-27 11:42:02,306 INFO [Thread-2] server.DatabaseWorker (DatabaseWorker.java:20) - Database server is Running at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source) at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source) at org.hsqldb.jdbc.JDBCConnection.<init>(Unknown Source) at org.hsqldb.jdbc.JDBCDriver.getConnection(Unknown Source) at org.hsqldb.jdbc.JDBCDriver.connect(Unknown Source) at java.sql.DriverManager.getConnection(DriverManager.java:664) at java.sql.DriverManager.getConnection(DriverManager.java:247) at rideabike.server.DatabaseManager.getDBConn(DatabaseManager.java:37) at rideabike.server.DatabaseWorker.run(DatabaseWorker.java:18) Caused by: org.hsqldb.HsqlException: java.net.ConnectException: Connection refused: connect at org.hsqldb.ClientConnection.openConnection(Unknown Source) at org.hsqldb.ClientConnection.initConnection(Unknown Source) at org.hsqldb.ClientConnection.<init>(Unknown Source) ... 7 more Caused by: java.net.ConnectException: Connection refused: connect at java.net.DualStackPlainSocketImpl.connect0(Native Method) at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:79) at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:345) at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) at java.net.Socket.connect(Socket.java:589) at java.net.Socket.connect(Socket.java:538) at java.net.Socket.<init>(Socket.java:434) at java.net.Socket.<init>(Socket.java:211) at org.hsqldb.server.HsqlSocketFactory.createSocket(Unknown Source) ... 10 more
Is there anything further I need to do to try and change the port that the HSQLDB server uses? Any help is greatly appreciated, thanks.
原文:https://stackoverflow.com/questions/29894028
相关问答
更多-
你的第一个问题在于: If value = CByte(&H13) Then Return pos Exit Do End If 如果您找到第一个实例,则退出函数并丢弃BinaryReader 。 如果再次调用函数,则会在位置0创建一个新的阅读器。 尝试将代码更改为: Dim positions As New List(Of Integer)() [...] If value = CByte(&H13) Then positions.Add(pos) End If 这样你就可以得到所有的 ...
-
我已经修改了您的代码以验证密码和用户名与密码检查逻辑。 这应该工作。 print "Welcome to UserName and Password Test" option = raw_input("Would you like to login or register L for Login R for register: ") if option == "R": print "Warning Only 1 user can be registered" usernamer = raw_ ...
-
for i in $folder/*; do echo "$i"; done 要么: ( cd $folder; for i in *; do echo "$i"; done ) for i in $folder/*; do echo "$i"; done or: ( cd $folder; for i in *; do echo "$i"; done )
-
根据您在评论中指定的要求,我已经更新了我的代码。 它在每一行中搜索“技术技能”,一旦找到,就可以写入( copy )。 一旦被击中,它将写入每一行,当找到具有“工作经验”的行时,它将停止处理。 with open("in.txt") as infile, open ("out.txt", 'w') as outfile: copy = False for line in infile: if line.strip() == "Technical Skills": ...
-
一个(相当)短的可能性是这样的: int main(int argc, char **argv) { std::ifstream in(argv[1]); // error checking omitted for now std::cout << in.rdbuf(); } 如果文件很长,这不是最有效的,但对于你通常想要在stdout上显示的几乎任何东西,它通常都会很好。 如果您要将输出提供给其他程序,并希望更快地处理大型文件,您可以执行以下操作: #include您的文件不符合带嵌入空格的LIST输入规则。 您仍然可以在不更改文件的情况下阅读它,但您必须找到名称字段结束的列。 filename FT15F001 temp; data bad; infile FT15F001 col=col; input month @; l = findc(_infile_,' ','b') - col +1; input name $varying32. l profit :comma.; format profit comma12.; dro ...见perlrun 。 当-i开关被调用时,perl使用ARGVOUT作为默认文件句柄而不是STDOUT来启动程序。 如果有多个输入文件,则每当<>或
或readline(ARGV)操作完成其中一个输入文件时,它将关闭ARGVOUT并重新打开它以写入下一个输出文件名。 一旦所有来自<>的输入被耗尽(当没有更多的文件要处理时),perl关闭ARGVOUT并将STDOUT恢复为默认文件句柄。 或者如perlrun所说 #!/usr/bin/perl -pi.orig s/foo/bar/; 相当于 # ... 你的代码令人困惑。 这是我如何重构它。 我的版本将此文本写入output.txt: [Student{lastName='Zombie', firstName='Rob', id='0001', gpa=3.5, year=2013}, Student{lastName='Smith', firstName='John', id='0002', gpa=3.2, year=2012}, Student{lastName='Jane', firstName='Mary', id='0003', gpa=3.8 ...如果你正在读行: 使用Scanner ,你应该循环while (scanner.hasNextLine()) 使用BuffferedReader ,你的循环应该如此: String line; while ((line = reader.readLine()) != null) { // ... } 使用ready()作为文件结尾的测试是无效的。 见Javadoc。 Thanks for the help, but I figured it out. Like the amateur I am, ...拆分线后无法读取文件?(Can't read file after split line?)[2023-10-27]
你在文件的这个循环后的文件的末尾for line in file: 。 因此,下一个file.read()没有任何内容可读。 如果您真的想再次阅读该文件,可以使用以下命令开头: file.seek(0) 但是你已经阅读了歌曲中的所有歌曲,为什么重新定义songs = {}并再次删除它们? 为什么不: if choice == "1": for song, name in songs.items(): print(name, song) 使用strip()去掉\n字符: so ...相关文章
更多- java socket server
- Windows Moible, Wince 使用.NET Compact Framework的进行蓝牙(Bluetooth)开发 之 蓝牙虚拟串口 (Bluetooth Virtual Serial Port)
- OpenCms 集成外部Solr Server
- 修改服务器的 ssh 端口后,git 拉取不到远程服务器的代码
- Server.xml配置文件详解
- Hadoop的thrift server配置
- Solr 搭建搜索服务器
- Hadoop异步rpc通信机制--org.apache.hadoop.ipc.Server
- HTML5服务器事件发送(Server-Sent Events)【HTML5教程 - 第十三篇】
- 《Windows Server 2008服务器架设与管理教程(项目式)》扫描版[PDF]
最新问答
更多- 如何检索Ember.js模型的所有属性(How to retrieve all properties of an Ember.js model)
- maven中snapshot快照库和release发布库的区别和作用
- arraylist中的搜索元素(Search element in arraylist)
- 从mysli_fetch_array中获取选定的值并输出(Get selected value from mysli_fetch_array and output)
- Windows Phone上的可用共享扩展(Available Share Extensions on Windows Phone)
- 如何在命令提示符下将日期设置为文件名(How to set file name as date in command prompt)
- 如何在Laravel 5.2中使用paginate与关系?(How to use paginate with relationships in Laravel 5.2?)
- 从iframe访问父页面的id元素(accessing id element of parent page from iframe)
- linux的常用命令干什么用的
- Feign Client + Eureka POST请求正文(Feign Client + Eureka POST request body)
- 怎么删除禁用RHEL/CentOS 7上不需要的服务
- 为什么Gradle运行测试两次?(Why does Gradle run tests twice?)
- 由于有四个新控制器,Auth刀片是否有任何变化?(Are there any changes in Auth blades due to four new controllers?)
- 如何交换返回集中的行?(How to swap rows in a return set?)
- 在android中的活动之间切换?(Switching between activities in android?)
- Perforce:如何从Depot到Workspace丢失文件?(Perforce: how to get missing file from Depot to Workspace?)
- Webform页面避免运行服务器(Webform page avoiding runat server)
- 在ios 7中的UITableView部分周围绘制边界线(draw borderline around UITableView section in ios 7)
- 内存布局破解(memory layout hack)
- 使用Boost.Spirit Qi和Lex时的空白队长(Whitespace skipper when using Boost.Spirit Qi and Lex)
- 我们可以有一个调度程序,你可以异步添加东西,但会同步按顺序执行吗?(Can we have a dispatcher that you can add things todo asynchronously but will be executed in that order synchronously?)
- “FROM a,b”和“FROM a FULL OUTER JOIN b”之间有什么区别?(What is the difference between “FROM a, b” and “FROM a FULL OUTER JOIN b”?)
- Java中的不可变类(Immutable class in Java)
- bat批处理文件结果导出到txt
- WordPress发布查询(WordPress post query)
- 如何在关系数据库中存储与IPv6兼容的地址(How to store IPv6-compatible address in a relational database)
- 是否可以检查对象值的条件并返回密钥?(Is it possible to check the condition of a value of an object and JUST return the key?)
- 德州新起点计算机培训学校主要课程有什么?
- GEP分段错误LLVM C ++ API(GEP segmentation fault LLVM C++ API)
- “latin1_german1_ci”整理来自哪里?(Where is “latin1_german1_ci” collation coming from?)