我有一个基于Java的服务器,它通过端口12345监听TCP上的请求。将其编译为javanix-server.class
后,我会通过$ java javanix-server
调用它,之后,只要上述过程正在运行,我就可以通过运行telnet localhost 12345
与其进行交互。
我希望将此服务器作为应用程序的一部分进行部署 - 我最简单的方法是将其添加到WAR文件并在Apache Tomcat上部署该WAR,这样每当Tomcat运行时都会部署WAR我可以通过telnet localhost 12345
与我的服务器进行互动吗?
我试过这个:
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>mina-sshd-tomcat</display-name>
<servlet>
<servlet-name>SSHD</servlet-name>
<servlet-class>org.apache.sshd.SshServer</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
</web-app>
尽管类似乎没有发生意外启动,但是一旦Tomcat运行,通过main
中的org.apache.sshd.SshServer
方法绑定的端口实际上并不打开。在Tomcat之外运行相同的main
方法而不进行修改(例如,直接在JVM上)可以正常工作。