2016-07-15 219 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