我需要一个建议用于设计目的我的应用程序结构如下。 我有三个模块设计在ZK框架中作为一个单独的战争应用程序(Web应用程序),例如财务模块,总账和现金账户,所有都是单独的战争文件,可以作为单独的战争文件部署在tomcat上, 现在我想拥有一个单独的战争ZK应用程序,它有索引或主页并有菜单,从那个菜单我可以调用这三个模块或战争应用程序。
--------------------------主模块-------------
1)此第4主模块还具有用户登录功能和更改用户首选项,还可以具有代码,例如查看模块以及弹出服务。
现在问题是如何调用其他war文件zul页面,即使v调用如何从第4个模块进行管理,以及如何在四个war文件或应用程序之间共享会话。
由于 维卡斯
答案 0 :(得分:0)
我曾在类似的情况下工作,这对我们来说效果很好:
当你创建单独的war时,它意味着它们在tomcat中独立运行它自己的web上下文。
通常,当您想共享datasources
,transactionManagers
或任何其他类型的jee资源时,需要在tomcat实例级别配置它们,并且它们将在JNDI目录中可用tomcat服务器和任何Web应用程序都可以使用它们中的任何一个。
https://tomcat.apache.org/tomcat-8.0-doc/config/context.html
https://tomcat.apache.org/tomcat-8.0-doc/jndi-resources-howto.html
您可以在tomcat服务器中共享几个jee资源,但如果您需要更多的灵活性和健壮性,则可能需要一个完整的堆栈Java企业应用程序服务器,如wildfly http://wildfly.org/news/2014/11/20/WildFly82-Final-Released/或任何其他商业资源,如WebSphere,Oracle Weblogic等等
现在,如果您想共享java类,zul或任何其他文件,您可能希望将它们打包在单独的公共jar中,并在任何war中将它们用作依赖项,然后通过Web应用程序的类路径引用它们。要组织和维护此模块化项目Maven和Gradle是您可以使用的非常好的工具。
从ZK你可以调用其他战争的任何其他网址,就像
一样简单 <a href="htt://myserver/account/home.zul" label="Account"/>
<a href="htt://myserver/finnance/home.zul" label="Finance"/>
要共享会话,您需要的是实现Single Sign On (还有其他实现,如oracle opensso),您可以直接在tomcat中配置它,但要注意这个{{ 3}}。
Sharing security context between few web applications对这种情况有着非凡的支持。