在Tomcat服务器上部署独立jar

时间:2016-07-15 06:18:46

标签: java tomcat gradle jar war

我在java(jar)中编写了一种代理服务器作为桌面应用程序。有没有一种简单的方法将其转换为战争,所以我可以在Tomcat上部署它? 我不想添加任何功能,甚至不需要处理http请求。我想在后台运行jar,它会接受套接字。

我尝试过使用gradle,但似乎并不知道它应该运行我的主要课程。

buildscript {
    repositories {
        mavenLocal()
    }
}

apply plugin: "war"

repositories {
    mavenLocal()
}

对不起,我知道这是一个愚蠢的问题,我之前没有做过这样的事情,似乎无法绕过它。

1 个答案:

答案 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) {

 }
}