当前位置: 首页 > 知识库问答 >
问题:

Spring启动:将应用程序添加到tomcat服务器

东方栋
2023-03-14

我有一个建立在Spring启动基础上的后端,然后我学校的一些定制代码建立在这个基础上。前端是纯粹的角度应用程序,我从不同的服务器上通过一大口服务提供。他们只通过REST调用连接。

后端已经运行了一个身份验证模块,现在我需要从后端运行的同一tomcat服务器为这个角应用程序提供服务,这样它也可以使用这个身份验证模块。

我发现这是关于多个连接器的,所以我将其复制为以下类来设置多个连接器:

@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:我如何添加tomcat连接器来绑定到控制器,但我不确定在该解决方案中是否应该更改当前应用程序或为两个应用程序创建父应用程序。

我当前的主应用程序如下所示:

@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);

    }
}

如果可能的话,我想了解更多关于Spring Boot环境中的连接器的信息。如果不是这样的话,我希望有人能够遵循第二种解决方案,或者建议修改我的代码。

我真的不太确定这些解决方案,所以我想通过它来破坏我的应用程序。(尽管它是用github备份的)

共有1个答案

万嘉熙
2023-03-14

只需将AngularJS的其他前端资源放入src/main/resources/static文件夹,Spring Boot就会自动为它们提供服务。

 类似资料:
  • 我正在尝试将Spring Boot应用程序作为WAR部署到tomcat服务器。我可以很好地构建war并将其部署到tomcat服务器。但是,当我启动服务器时,我的spring应用程序从未运行。服务器启动得很好。Spring要我做的我都做了, http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#howto-creat

  • 我正在尝试将SpringCloudSleuth与使用jetty服务器的现有spring应用程序集成。 我补充说 和 启动应用程序时,我应该如何传递记录器属性、日志模式?现在,它不会读取/resources文件夹下的属性文件,也不会生成traceId或spanId。 大多数示例都使用了Spring Boot。需要帮助来弄清楚如何将此与带有码头服务器的Spring应用程序集成。

  • 要求: Spring启动应用程序与Spring狐狸 将基本身份验证添加到 Swagger 传递所有其他请求 代码:已实现 然而,这段代码无法工作-您可以自由浏览/炫耀ui。html#/没有任何授权。 问题是-为什么BASIC身份验证和用户不适用于swagger uiendpoint?

  • 在尝试运行Spring Temple项目时收到此错误消息不知道为什么?有什么建议吗? 这是来自控制台的完整日志 我对代码进行了任何修改,只是试图运行从Spring模板下载的应用程序

  • 问题内容: 当我运行Spring MVC应用程序时,出现此异常,服务器无法启动。 请帮助我解决此问题。 异常StackTrace: 问题答案: 由于互联网连接不良,jar文件可能已损坏。尝试删除文件夹的内容。然后右键单击您的项目,选择“Maven” ,“ 更新项目” ,然后选中“ 强制更新快照/版本” 。如果您确定只有一个Jar文件有问题,则只需删除其文件夹。

  • 环境 : Windows Eclipse Luna Service Release 2 (4.4.2) Tomcat 8 JDK 8 当我尝试使用