【问题标题】:How do I serve up Dart html files in my Java Web Application?如何在我的 Java Web 应用程序中提供 Dart html 文件?
【发布时间】:2014-07-07 21:16:54
【问题描述】:

我有一个 Web 应用程序,并且正在使用 Maven。我没有在项目中实现 Spring MVC。

该项目有一个已实现的 REST 控制器,并且运行良好。 我需要将 Google Dart 集成到应用程序中。

我正在使用这个dart-maven-plugin,并且我在“src/main/dart”下有 Dart 代码。现在我已经抛出了 Dart 教程代码(海盗徽章),我正在努力让它发挥作用。

这些是 src/main/dart 下的文件

  • piratebadge.css
  • piratebadge.dart
  • piratebadge.html
  • piratebadge.json
  • pubspec.yaml

我希望能够将项目 .war 文件部署到 Tomcat 并能够访问 localhost:8080/testapplication/piratebadge.html

是否需要将此 html 文件添加到我的 web.xml 中?

这里是 web.xml 供参考

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

    <display-name>TestProject</display-name>

    <servlet>
        <servlet-name>controller</servlet-name>
        <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
        <init-param>
            <param-name>jersey.config.server.provider.packages</param-name>
            <param-value>test.controller</param-value>
        </init-param>
        <init-param>
            <param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name>
            <param-value>true</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>controller</servlet-name>
        <url-pattern>/rest/*</url-pattern>
    </servlet-mapping>
</web-app>

【问题讨论】:

    标签: java web-services maven tomcat dart


    【解决方案1】:

    我已经很久没有使用 Java/Maven 了。

    基本上,您可以在任何目录中开发您的 Dart 应用程序。您只需使用 pub build 生成可部署文件,并将输出(在 build/web 中生成)视为 Java/Maven 项目中的任何静态内容。

    在开发过程中有点复杂。如果您可以在服务器应用程序中设置跨源标头,则可以连接到 Java REST 服务器。您只需要维护两个配置,在这些配置中,您使用相对 URL 连接回在生产环境中加载 Dart 应用程序的服务器,但在开发中您必须使用绝对 URL。

    为此,您可以使用类似Dart: How to use different settings in debug and production mode?

    您还可以将 Dart 源包目录放在 Java 项目中,并将其视为静态内容。但是路径仍然不同,因为开发在yourpackage/web 中,而构建输出在yourpackage/build/web 中生成。

    当您的 Java 应用程序为 Dart 应用程序提供服务时,您必须使用特定的 Launch 配置才能进行调试。 更多信息在这里:Dart best practices for develop and production

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-11
      相关资源
      最近更新 更多