我用 java (jar) 编写了一种代理服务器作为桌面应用程序。有没有一种简单的方法可以将其转换为 war ,以便我可以将其部署在 Tomcat 上? 我不想添加任何功能,甚至不需要处理 http 请求。我想在后台运行 jar,它将接受套接字。
我试过使用 gradle,但它似乎不知道它应该运行我的主类。
buildscript {
repositories {
mavenLocal()
}
}
apply plugin: "war"
repositories {
mavenLocal()
}
抱歉,我知道这是一个菜鸟问题,我以前没有做过这样的事情,只是似乎无法理解它。
最佳答案
您可以在您的 jar 中添加一个“WEB-INF”目录并在其中创建一个“web.xml”。然后将其重命名为 [appname].war 并部署它。
Tomcat 7 示例的“web.xml”:
<?xml version="1.0"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app id="ProxyApp" version="3.0" metadata-complete="false" 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" >
<display-name>Proxy App</display-name>
</web-app>
更新
要在您的应用程序启动时调用代码,请使用 ServletContextListener:
@WebListener
public class BootInitializer implements ServletContextListener {
// what to do startup?
@Override
public void contextInitialized(ServletContextEvent sce) {
System.out.println("Starting proxy application ...");
// your main method content here ...
}
// what to do shutdown?
@Override
public void contextDestroyed(ServletContextEvent arg0) {
}
}
关于java - 在 Tomcat 服务器上部署独立的 jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38389079/