0

ROOT フォルダー以外の apache-tomcat-8.0.12 に moqui 1.6.3 とランタイムをデプロイしようとしています。

build.gradle で以下の変更を行いました。

タスク deployTomcatRuntime << { ファイルを削除します (tomcatHome + '/runtime'); ファイルを削除します (tomcatHome + '/webapps/ myweb '); ファイルを削除します (tomcatHome + '/webapps/ myweb.war ') コピー { ファイルから (plusRuntimeName); ファイルに (tomcatHome + '/webapps'); rename(plusRuntimeName, ' myweb.war ') } }

コマンドの後: gradle cleanAll、gradle buid、gradle addRuntimeTomcat、myweb.war が tomcat webapp フォルダーに正常にデプロイされます。

その後、「http://localhost:8080/myweb」を使用してルート ページを開くと、「http://localhost:8080/myweb/Login」というログイン ページが表示されます。

次に、ユーザー名とパスワードを入力してログインをクリックしますが、エラーなしでログインページにいます。

myweb.war を ROOT.war に変更すると、システムに正常にログインできるようになります。

フレームワークコードにデバッグを入れたところ、ログインからルートページにリダイレクトするときに、システムが新しい ExecutionContextImpl を作成することがわかりました。以下は、ログを置いた場所です。

ExecutionContextImpl getEci() { logger.debug("===========getExecutionContext:"+activeContext.get()) // ここでの ExecutionContextImpl キャストはおかしいように見えますが、遅い castToType 呼び出しを使用して Groovy を回避します ExecutionContextImpl ec = (ExecutionContextImpl) activeContext.get() if (ec != null) return ec if (logger.traceEnabled) logger.trace("Creating new ExecutionContext in thread [${Thread.currentThread().id}:${Thread. currentThread().name}]") if (!(Thread.currentThread().getContextClassLoader() instanceof StupidClassLoader)) Thread.currentThread().setContextClassLoader(cachedClassLoader) ec = new ExecutionContextImpl(this) this.activeContext.set(ec ) ec を返す }

impl.context.ExecutionContextFactoryImpl [] ===========getExecutionContext:テナント DEFAULT の ExecutionContext --- 2016-05-02 23:02:51.176 [nio-8080-exec-4] DEBUG impl.context .ExecutionContextFactoryImpl [] ===========getExecutionContext:null --- 2016-05-02 23:02:51.177 [nio-8080-exec-4] DEBUG impl.context.ExecutionContextFactoryImpl [] == =========getExecutionContext:テナントDEFAULTのExecutionContext

Tomcat の非 ROOT フォルダーで ThreadLocal に問題があるようですが、よくわかりません。ROOT 以外のフォルダに moqui をデプロイした人はいますか?

4

0 に答える 0