2

イントラネット専用のWebアプリケーションに取り組んでいます。私はApache7とWindowsServer2003を使用しています。

私のページの1つで、C:/ Program Files /etc...にある外部アプリケーションを開く必要があります。いくつかのパラメーターは既に初期化されています。もちろん、ユーザーはサーバー上のWebアプリケーションを使用して機能させる必要があります(そうなるでしょう)。

アプリケーションを開くには、ProcessBuilderオブジェクトを使用します。

問題:

ローカルでEclipseを使用してサーバーを手動で実行すると、完全に機能します。どのアプリケーションも、Webページから自分自身を開くことができます。しかし、Tomcat Windowsサービスを使用すると(サーバーで使用したいのですが)、起動しません。具体的には、アプリケーションを直接起動および停止します。Javaエラーはスローされずprocess.waitFor()、終了値は0です。実際には、Webアプリケーションを介してプロセスを実行できます(単純なバッチファイルを実行しようとしました)が、UIが関係している場合は表示されません。

繰り返しになりますが、今回のサーバーで、tomcat7.exe(%CATALINA_HOME%/ binディレクトリにあります)をダブルクリックまたはcmdで起動すると、WebアプリケーションのUIが表示されます。services.mscまたはtomcat7w.exeを使用して、またはtomcat7 startcmdを介して起動した場合、起動しません。

私はいくつかのことを考えました:

  • 別のユーザーを使用してサービスを開始する
  • サービスの起動方法を変更します(StartMode:jvm、java。exeで成功しませんでした)Tomcat 7 Windows Service How-Toを何度も読みましたが、問題を解決するための情報が見つかりませんでした。

何が起こっているのか、そしてこの問題を解決する方法について何か考えがありますか?tomcatをサービスとして実行することとコマンドラインから実行することの大きな違いは何ですか?

4

1 に答える 1

0

オプション 1 サービスのプロパティ ウィンドウを開く場合は、[ログオン] タブに移動し、[デスクトップとの対話をサービスに許可する] チェック ボックスをオンにすると、必要な動作が得られます。また、実行するアプリによっては、ログオン アカウントを変更する必要がある場合があります。

Windows サービスからの GUI アプリの起動 - ウィンドウが表示されないを参照してください。

オプション 2 cmd を開始しようとしましたが、start /c "c:\path to\exe" を使用しましたか

cmd.exe タイプで help start


オプション 3

サービスとして実行されないデーモン サービスが必要になります。Windows では、サービス アプリに特定の制限が課されます。

この睡眠アプリは、Tomcat または他の自分で起動できます。ポートをリッスンしたり、新しいファイルのフォルダーをポーリングしたりできます。実行するジョブを取得すると、必要なアプリを開始します。ポートまたはテキスト ファイルを介して、パラメータを送信できます。

于 2013-03-17T09:15:56.977 に答える