我在java(jar)中编写了一种代理服务器作为桌面应用程序。有没有一种简单的方法将其转换为战争,所以我可以在Tomcat上部署它? 我不想添加任何功能,甚至不需要处理http请求。我想在后台运行jar,它会接受套接字。
我尝试过使用gradle,但似乎并不知道它应该运行我的主要课程。
buildscript {
repositories {
mavenLocal()
}
}
apply plugin: "war"
repositories {
mavenLocal()
}
对不起,我知道这是一个愚蠢的问题,我之前没有做过这样的事情,似乎无法绕过它。
答案 0 :(得分:1)
您可以在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) {
}
}