2011-04-14 59 views
1

我們有我們的(新)建與H2 Web服務器啓動使用下面的Spring bean設置:H2 Web服務器未能在碼頭重啓

<bean id="org.h2.tools.Server-WebServer" class="org.h2.tools.Server" 
    factory-method="createWebServer" depends-on="dataSource" init-method="start" 
    lazy-init="false"> 
    <constructor-arg value="-web,-webPort,8082" /> 
</bean> 

也能正常工作的其他三個開發者(誰所有運行Mac或Linux操作系統),但在我的Windows筆記本可憐的我陷入困境時碼頭髮現的代碼改變後重新啓動:

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 
'org.h2.tools.Server-WebServer' defined in ServletContext resource [/WEB-INF/spring/appServlet/controllers.xml]: 
Invocation of init method failed; nested exception is org.h2.jdbc.JdbcSQLException: 
Exception opening port "8082" (port may be in use), cause: "java.net.BindException: Address already in use: JVM_Bind" [90061-154] 

的理論是該端口無法正常釋放時碼頭信號的重新啓動, /或H2不會重新使用該端口。

現在我的問題:我該如何解決這個問題?我認爲這是一個普遍的問題,但我找不到任何關於它的事情。

回答

0

看着你的配置,看起來你缺少一個destroy-method屬性。試試這個:

<bean id="org.h2.tools.Server-WebServer" class="org.h2.tools.Server" 
    factory-method="createWebServer" 
    depends-on="dataSource" 
    init-method="start" 
    destroy-method="stop" 
    lazy-init="false"> 
    <constructor-arg value="-web,-webPort,8082" /> 
</bean> 
+0

不工作,因爲你已經發現你自己; D。 – fwielstra 2011-04-18 07:30:00