2016-10-10 5 views
0

스프링 부트로 빌드 된 백엔드가 있고 내 학교의 일부 사용자 정의 코드가 빌드되어 있습니다. 프론트 엔드는 다른 서버 트로프 (gulp serve)에서 제공하는 순수 각도 어플리케이션입니다. REST 호출 만 연결됩니다.스프링 부트 : 톰캣 서버에 애플리케이션 추가

이미 백엔드에서 실행중인 인증 모듈이 있습니다. 이제이 인증 모듈을 사용할 수 있도록 백엔드가 실행중인 동일한 Tomcat 서버에서이 각도 애플리케이션을 제공해야합니다. 내가 this about multiple connectors을 발견했습니다

그래서 여러 커넥터를 설정하는 클래스를 다음과 같이 복사 :

@ConfigurationProperties 
public class TomcatConfiguration { 

    @Bean 
    public EmbeddedServletContainerFactory servletContainer() { 
     TomcatEmbeddedServletContainerFactory tomcat = new TomcatEmbeddedServletContainerFactory(); 
     //tomcat.addAdditionalTomcatConnectors(createSslConnector()); 
     return tomcat; 
    } 

    private Connector createSslConnector() { 
     Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol"); 
     Http11NioProtocol protocol = (Http11NioProtocol) connector.getProtocolHandler(); 
     try { 
      File keystore = new ClassPathResource("keystore").getFile(); 
      File truststore = new ClassPathResource("keystore").getFile(); 
      connector.setScheme("https"); 
      connector.setSecure(true); 
      connector.setPort(8443); 
      protocol.setSSLEnabled(true); 
      protocol.setKeystoreFile(keystore.getAbsolutePath()); 
      protocol.setKeystorePass("changeit"); 
      protocol.setTruststoreFile(truststore.getAbsolutePath()); 
      protocol.setTruststorePass("changeit"); 
      protocol.setKeyAlias("apitester"); 
      return connector; 
     } catch (IOException ex) { 
      throw new IllegalStateException("can't access keystore: [" + "keystore" 
        + "] or truststore: [" + "keystore" + "]", ex); 
     } 
    } 
} 

문제는 내가 볼 또는 내가 설정이 커넥터가에서 역할을해야 있도록하는 방법을 찾을 수 없다는 것입니다 내 angularJS 빌드 폴더.

검색 할 때 Spring-Boot : How can I add tomcat connectors to bind to controller이 왔지만이 솔루션에서 현재 응용 프로그램을 변경하거나 두 응용 프로그램 모두에 대한 부모 응용 프로그램을 만들어야하는지 잘 모르겠습니다.

내 현재 응용 프로그램의 기본은 다음과 같습니다

@Configuration 
@ComponentScan({"be.ugent.lca","be.ugent.sherpa.configuration"}) 
@EnableAutoConfiguration 
@EnableSpringDataWebSupport 
public class Application extends SpringBootServletInitializer{ 
    public static void main(String[] args) { 
     SpringApplication.run(Application.class, args); 

    } 
} 

을 내가 커넥터 스프링 부팅 상황에 대해 좀 더 많은 정보를 원하는 가능합니다. 이 방법을 사용할 수 없다면 다른 사람이이 두 번째 솔루션을 준수하거나 내 코드에서 변경을 제안 할 수 있기를 바랍니다.

나는 내 응용 프로그램을 깨뜨리고 싶다는 이러한 솔루션에 대해 충분히 확신하지 못합니다. (github로 백업되었지만)

답변

1

AngularJS + 다른 프런트 엔드 애셋을 src/main/resources/static 폴더 Spring Boot will serve them automatically에 넣기 만하면됩니다.

+0

고마워,이게 올바른 방향으로 나아 갔다. 이 문제를 해결하기 위해 몇 가지 구체적인 문제가 발생했지만 새로운 질문을하는 것이 더 좋습니다. – turoni

관련 문제