2016-07-08 9 views
2

でシンボリックリンクに続いて、我々はscripts/_Events.groovyに次のように追加することができます。がシンボリックリンクをたどる可能にするために、Grailsの2.xではGrailsの3

eventConfigureTomcat = { tomcat -> 
    def ctx = tomcat.host.findChild("") 
    ctx.allowLinking = true  // Follow soft links 
} 

我々はGrailsの3に同じことを達成できますか?私はGrails 3のsrc/main/scriptsディレクトリに同じスクリプトファイルを作成しようとしましたが、助けにはなりませんでした。

編集:

私もBootstrap.groovyに次の行を追加してみました:

最後に、私はGrailsの3に次のシンボリックリンクのためのソリューションを考え出した
Holders.getServletContext().allowLinking = true 

GitHub issue #10045

+0

サーブレット・コンテキストは、{} '引数としてBootStrap.init'に渡されます。それはあなたが必要とするものを達成するには遅すぎますか? –

+0

機能しなかった@JeffScottBrownがありません。 tomcatを設定するのは遅すぎます。 –

答えて

1

graemerocherによって提供される例の助けを借りてください。

は、あなたは自分の./grails-app/init/<package>/Application.groovyに以下を追加する必要があります。

@Bean 
EmbeddedServletContainerFactory containerFactory() { 
    TomcatEmbeddedServletContainerFactory containerFactory = new TomcatEmbeddedServletContainerFactory() 

    containerFactory.addContextCustomizers(new TomcatContextCustomizer() { 
     @Override 
     void customize(Context context) { 
      StandardRoot root = new StandardRoot(context) 
      root.setAllowLinking(true) 
      context.setResources(root) 
     } 
    }); 

    return containerFactory 
} 

パッケージをインポートするには:

import org.apache.catalina.Context 
import org.apache.catalina.webresources.StandardRoot 
import org.springframework.boot.context.embedded.EmbeddedServletContainerFactory 
import org.springframework.boot.context.embedded.tomcat.TomcatContextCustomizer 
import org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory 
import org.springframework.context.annotation.Bean 
+0

出典:https://github.com/grails/grails-core/issues/10045#issuecomment-235896128 –

関連する問題