2014-09-04 32 views
8

Önceden hedef sistemde olduğu için, önyükleme uygulamasına başlamak için jsvc kullanmak istiyorum ve alternatif kenar kutuları için kabuk komut dosyalarını ayıklamak için zaman harcamaktır. SpringApplication.run()Daemon.start() içinde çağrılacak şekilde Daemon arabirimini uyguladı, ancak yuvalanmış kavanozlar bulunamıyor çünkü JarLoader baypas ettim.Apache commons daemon jsvc tarafından başlatıldığında yuvalanmış sınıf yüklemesini nasıl kurabilirim?

Doğru sınıf yükleyicileri vb. Programlı bir şekilde kurmak için bir yol var mı?

java.lang.ClassNotFoundException: org.springframework.boot.SpringApplication 
+0

Merhaba Paul, sorununuza herhangi bir çözüm buldunuz mu. Tomcat ya da İskelesi de dahil olmak üzere sıkıcı ayarlarınızı görmenin bir yolu var mı? – Tito

+0

@Tito: İşi bırakıp komut dosyalarına ve runuser'a geri dönmem gerekiyordu. Bu bir önyükleme uygulamasıdır, bu nedenle varsayılan önyükleme (tomcat gömülü) dışında bir sunucu yapılandırması yoktur. –

cevap

1

ile

@Configuration 
@EnableAutoConfiguration 
@ComponentScan 
@EnableConfigurationProperties 
public class Application implements Daemon { 
private ConfigurableApplicationContext ctx; 
private String[] args; 

    @Override 
    public void init(DaemonContext context) throws Exception { 
    args = context.getArguments(); 
    } 

    @Override 
    public void start() throws Exception { 
    ctx = SpringApplication.run(Application.class, args); 
    } 

    @Override 
    public void stop() throws Exception { 
    ctx.stop(); 
    } 

    @Override 
    public void destroy() { 
    ctx.close(); 
    } 

    // Main - mostly for development. 
    public static void main(String[] args) throws Exception { 
    System.err.println("WARNING - running as current user"); 
    DaemonLoader.Context ctx = new DaemonLoader.Context(); 
    Application app = new Application(); 
    ctx.setArguments(args); 
    app.init(ctx); 
    app.start(); 
    } 
} 

Bu hatalar bu sorunu çözdük.

Şişman kavanoz yerine gölgeli kavanoz üretmek zorunda kaldım. Sonra, JarLoader kullanmak yerine, ana sınıfı doğrudan ana sınıfıma değiştirdim. Orijinal posterin "Uygulama" sınıfında olması durumunda.

İlgili konular