在Wildfly中部署Angular应用程序

时间:2015-12-21 12:28:23

标签: java angularjs java-ee wildfly

我创建了一个只使用我的REST api后端的AngularJs应用程序(内置于java并部署在Wildfly上)。

我使用我的公共IP地址(通过端口转发)从Internet访问我的服务器。

我的问题是如何使用我的公共IP从Internet上访问Angular应用程序。我还可以在Wildfly上部署它吗?我该怎么做?

3 个答案:

答案 0 :(得分:5)

您可以将角度应用程序打包在与REST后端API相同的应用程序中。

例如,如果您将REST api打包在.war包中,则可以将您的anglar应用程序文件(html页面,js脚本,...)放在WAR包根目录中,将REST资源放在WEB-INF中/ lib目录打包为JAR文件。

请参阅WAR包装详细信息here

然后要查询您的REST API,您只需提供资源URI,而不是基本URL(包括webapp上下文),因为角度应用程序属于webapp,它也会暴露您的REST API。

例如,如果您想获得一个资源,可以使用angular:(使用REST API在应用程序配置中使用'rs'路径并使用$ http角度服务)

$http.get('rs/icecreams?flavoor=strawberry')

答案 1 :(得分:5)

如果您不想部署WAR / EAR,请尝试在standalone.xml配置文件中定义处理程序:

<server name="default-server">
    <http-listener name="default" socket-binding="http"/>
    <host name="default-host" alias="localhost">
        <location name="/" handler="welcome-content"/>
        <location name="/yourapp" handler="static"/>
    </host>
</server>
<handlers>
    <file name="welcome-content" path="${jboss.home.dir}/welcome-content" directory-listing="true"/>
    <file name="static" path="/var/yourapp" directory-listing="true"/>
</handlers>

答案 2 :(得分:2)

我有一个angular2应用程序与路由,并是必要的额外配置。这是一个过程:

  1. 在根模块中启用路由的使用哈希:

    RouterModule.forRoot(routes, { useHash: true })
    
  2. 构建应用程序,简单的方法是angular-cli build

  3. 中的ng build其他选项
  4. 构建过程在角度应用程序的根目录中的“dist”文件夹中生成角度应用程序。将dist文件夹中的所有文件复制到WAR文件的根目录。

  5. http://SERVER_IP:PORT/WAR_PATH/#/中访问角度应用。 angular app的所有路线均从#/。

  6. 开始