2016-07-15 172 views
1

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

我的gradle使用尝试过,但好像它不知道它应该运行我的主类。

buildscript { 
    repositories { 
     mavenLocal() 
    } 
} 

apply plugin: "war" 

repositories { 
    mavenLocal() 
} 

对不起,我知道这是一个noobish的问题,我还没有做过这样的事之前,只是似乎无法环绕它我的头。

+1

桌面应用Web应用程序解决不同的用例。您的桌面应用程序需要具有Main方法的类。然后由jvm使用它来执行你的应用程序。 Web应用程序遵循不同的初始化范例,其中servlet API是开发应用程序的主要方式。没有修改的地方,你的应用程序将无法作为网络应用运行。一种简单的方法是创建一个servlet,并在init方法中使用与主方法类似的代码。在web.xml中配置该servlet,并尝试它是否可用。 –

回答

1

您可以添加一个“WEB-INF”目录到你的罐子,并创建一个“web.xml中”内。然后将其重命名为[appname] .war并进行部署。

“web.xml中” 为Tomcat 7例如:

<?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:

​​
+0

嗯,看起来像Tomcat的部署它成功,但我不认为我的主类运行。 –

+0

没有,因为主类不会在服务器环境中调用,如SANGRAM先生贾达夫已经说过。我会进行更新。 – Stefan