2016-07-15 8 views
1

私は、Java(jar)のデスクトップアプリケーションとしてソートサーバーを作成しました。それを戦争に変換する簡単な方法はありますか?それで、Tomcatに展開できますか? 機能を追加したくないので、http要求を処理する必要はありません。私は、ソケットを受け入れるバックグラウンドでjarファイルを実行したい。Tomcatサーバーにスタンドアロンのjarをデプロイ

私はgradleを使用しようとしましたが、私のメインクラスを実行する必要があるかどうかわからないようです。

buildscript { 
    repositories { 
     mavenLocal() 
    } 
} 

apply plugin: "war" 

repositories { 
    mavenLocal() 
} 

申し訳ありませんが、私はこれはnoobish質問ですけど、私は前にこのようなものを行っていないし、それのまわりで私の頭を包むように見えることはできません。

+1

デスクトップアプリケーションとWebアプリケーションはさまざまなユースケースを解決します。あなたのデスクトップアプリケーションにはMainメソッドを持つクラスが必要です。これは、アプリケーションを実行するためにjvmによって使用されます。 Webアプリケーションは、サーブレットAPIがアプリケーションを開発する主な方法である異なる初期化パラダイムに従います。アプリケーションを修正せずにWebアプリケーションとして実行する方法はありません。簡単な方法は、サーブレットを1つ作成し、initメソッドでメインメソッドと同様のコードを使用することです。 web.xmlにそのサーブレットを設定し、それがうまくいくか試してみてください。 –

答えて

1

"WEB-INF"ディレクトリをjarファイルに追加し、その中に "web.xml"を作成することができます。次に、[appname] .warに名前を変更して展開します。 ServletContextListenerを使用してアプリの起動時にコードを呼び出すために

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

更新

のTomcat 7例えば "web.xmlが"

​​
+0

Tomcatは正常に展開されたようですが、私のメインクラスは動作していないと思います。 –

+0

いいえ。Sangram Jadhav氏が既に述べたように、サーバー環境ではメインクラスが呼び出されないためです。私は更新を行います。 – Stefan

関連する問題