针对新手的Java EE7和Maven项目–第8部分

  • 第1部分 ,
  • 第2部分 ,
  • 第3部分 ,
  • 第4部分 ,
  • 第5部分 ,
  • 第6部分 ,
  • 第7部分
  • 第8部分

自上一篇文章以来,这一系列教程已经有很长时间了。 是时候恢复并在我们的简单项目中添加新功能了。 正如我在之前的帖子中提到的那样,本系列文章主要针对Maven和JavaEE7新手,我欢迎对以下内容有任何疑问或意见(和修正)。 我保证我会努力跟上更新。

这个帖子的Git标签?

该帖子的标签是post8 ,可以在我的bitbucket存储库中找到。

与以前的帖子相比有什么变化?

  • 读者的代码注释和修正已被集成。非常感谢您的来访。
  • 我已经将Wildfly应用服务器的版本从8.1更新到8.2,因此所有示例和代码都在新服务器下运行。
  • 我还将Arquillian BOM的版本更新为最新版本,即现在的1.1.7。
  • 我还在样本父项目下添加了一个属性,该属性指示各种maven模块将自动下载和使用Wildfly服务器的路径,这样您就不必自己下载它。 一旦您尝试执行先前文章中的单元测试之一,服务器将自动下载并提取到预定义的路径(sample-services模块)
    <!--path to download wildfly--><wildfly-server-home>${project.basedir}/servers/</wildfly-server-home>

在我们的耳朵上添加启用了JSF的war Maven模块

最终,我们的项目结构已经出现了战争(请参见示例网站)

CapturFiles-Feb-15-2015_19.57.36 Maven模块。 因此,没有引入任何额外的模块,而是对父级和模块本身的现有pom.xml文件进行了更改。

步骤1在web.xml上更改

我们的应用程序服务器已经捆绑了必需的库和设置,以支持使用JSF 2.2规范的应用程序。 Wildfly捆绑了Mojarra 2.2.8 。 我们要做的只是更新一些配置描述符(最终只有一个)。 最重要的是web.xml,现在看起来像这样。

<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"version="3.1"><context-param><param-name>javax.faces.PROJECT_STAGE</param-name><param-value>Development</param-value></context-param><servlet><servlet-name>Faces Servlet</servlet-name><servlet-class>javax.faces.webapp.FacesServlet</servlet-class><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>Faces Servlet</servlet-name><url-pattern>/faces/*</url-pattern></servlet-mapping><session-config><session-timeout>15</session-timeout></session-config><welcome-file-list><welcome-file>faces/index.xhtml</welcome-file></welcome-file-list>
</web-app>

第2步:打包战争和瘦身的战争问题

我们的战争模块遵循一种称为“瘦身战争”的包装方案。 请从Apache maven war插件阅读以下页面 。 长话短说,为了减小部署能力(耳朵)的整体大小,我们将所有必需的库打包在耳朵级别的预定义文件夹下,通常称为\ lib,并且不包括在下面的库战争的WEB-INF \ lib文件夹。 您唯一需要做的就是将战争的相关性添加到耳边。 尽管事实上整个“ hack”感觉都不是专家,但如果遵循建议的配置,它就可以工作,但是在某些情况下,瘦小的战争包装将无法工作。 其中之一通常用于基于JSF的JavaEE Web应用程序,在该应用程序中,应将JSF小部件引擎的实现打包在战争的WEB-INF \ lib中。

对于我们的示例项目,我正在使用优秀且免费的Primefaces库 ,我强烈建议您将其用于下一个基于JSF的项目。 因此,我需要为primefaces jar定义对war模块的依赖关系,但要通过仅针对此jar的瘦war机制,以便将其打包在正确的位置。 这是我们的做法。

<!-- from the war module pom.xml --><!-- This is the dependency --> <dependency><groupId>org.primefaces</groupId><artifactId>primefaces</artifactId><version>${primefaces-version}</version></dependency><!-- See the packaging exclude, we exclude all the jars apart from the one we want 
to be bundled within the WAR --> <plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-war-plugin</artifactId><configuration><packagingExcludes>%regex[WEB-INF/lib/(?!primefaces).*.jar]</packagingExcludes><archive><manifest><addClasspath>true</addClasspath><classpathPrefix>lib/</classpathPrefix></manifest><manifestEntries><Class-Path>sample-services-${project.version}.jar</Class-Path></manifestEntries></archive></configuration></plugin>

步骤3添加一些jsf爱,一个托管bean和带有适当标签的xhtml页面。

CapturFiles-Mar-02-2015_23.18.58

我们的代码只是一张小桌子,还有几个Primefaces的标签。 如果您认为需要阅读有关JSF 2.X的更多信息,请访问以下链接

  • JSF神灵之一(BalusC)的JSF 2.2教程
  • Primefaces文档
  • Primefaces展示柜
  • JavaEE教程– Oracle的JSF 2.2
  • JSF 2.2示例

步骤4打包并部署到正在运行的服务器。

启动您的wildfly(预计您的项目库目录和子文件夹服务器下应有一个)

<wildfly-server-home>${project.basedir}/servers/</wildfly-server-home>

然后在样本父项目类型下。

mvn clean install -Ph2

您应该在http:// localhost:8080 / sample-web /上具有启用了JSF 2.2的演示应用程序,并看到类似以下内容的内容。

CapturFiles-Mar-02-2015_23.32.01

就是这样,这将为您提供一个简单的起点,以便扩展除演示之外的其他功能!

与往常一样,您将在标记post8下找到完整的示例。

翻译自: https://www.javacodegeeks.com/2015/03/java-ee7-and-maven-project-for-newbies-part-8.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/360480.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

oracle_home path,ORACLE_HOME迁移后需要设置LD_LIBRARY_PATH环境变量

而设置LD_LIBRARY_PATH后&#xff0c;问题解决&#xff1a;[orat3hpserver2 ~]$ export LD_LIBRARY_PATH$ORACLE_HOME/lib[orat3hpserver2 ~]$ sqlplus / AS sysdbaSQL*Plus: Release 10.2.0.4.0 - Production ON Sun Mar 18 16:10:57 2012Copyright (c) 1982, 2007, Oracle. A…

栈的链式存储及其基本运算

#include <stdio.h> #include <stdlib.h> #define M 10typedef struct stnode {char data;struct stnode *next; }LinkStack;void InitStack(LinkStack *&ls) //初始化栈 {lsNULL; }void PushStack(LinkStack *&ls,char x)//进栈 {LinkStack *p;p(LinkSta…

oracle的导出参数statistic,使用expdp导出时评估所需存储容量大小

我们在使用expdp进行数据导出时&#xff0c;可以事先评估需要存储大小容量(bytes)&#xff0c;Oracle可以通过两种方式进行容量估算:[more]1)、通过数据块数量2)、通过统计信息中记录的内容估算具体是通过制定参数estimate_only和estimate来评估导出的性能参数estimate_onlyy|n…

玩Weld-Probe –一站式查看CDI的所有方面

焊接3.0.0.Alpha4被释放 &#xff0c;而我一直坐在在DevConf.CZ一间会议室。 Jozef Hartinger&#xff08; jozefhartinger &#xff09;或多或少地在几分钟前告诉我有关此最新版本的新功能的信息。 有一个特别的功能真正引起了我的注意&#xff0c;它是新的焊接探针机制。 什…

排列、组合问题(递归)

这里主要介绍字符串排列组合问题,高中数学常见的题目,不用详细介绍&#xff0c;看例子就可以解决问题 "1212" 全排列结果为 1212&#xff0c;1221&#xff0c;1122&#xff0c;2112&#xff0c;2121&#xff0c;2211 组合结果是 1,2,12 我所理解的排列组合结果是…

oracle日志文件大小规则,修改oracle日志文件大小

1、创建2个新的日志组alter database add logfile group 4 (D:\ORACLE\ORADATA\ORADB\REDO04_1.LOG) size 1024k;alter database add logfile group 5 (D:\ORACLE\ORADATA\ORADB\REDO05_1.LOG) size 1024k;2、切换当前日志到新的日志组alter system switch logfile;alter syste…

Java开发工具可以促进编程!

Java开发人员通常尝试找到快速有效地编写高质量Java代码的方法&#xff0c;以使他们的编程工作更轻松。 由于情况发生了变化&#xff0c;因此出现了越来越多的工具。 因此&#xff0c;下面列出了大多数开发人员已经使用&#xff0c;将来使用或一定会使用的有用工具。 该列表包括…

linux cmake装在自己目录下,如何在Linux下安装cmake

全部展开OpenCV 2.2和更高版本需要使用Cmake生成生成文件&#xff0c;因此需要先安装cmake. 还有其他需要先安装cmake的软件1. 在Linux环境中打开Web浏览器&#xff0c;输入URL:mac cmake gui&#xff0c;找到最新版本的位置. 通常&#xff0c;发布了两个版本的开源软件: “源分…

Java Bootstrap:Dropwizard与Spring Boot

如何在尽可能短的时间内使准备就绪的Java应用程序投入生产&#xff1f; 我不是一个早起的人&#xff0c;所以有时需要一些时间才能启动“所有系统”提示。直到不久之前&#xff0c;这对于Java应用程序来说都是正确的&#xff0c;但是与发明贪睡功能不同闹钟&#xff0c;我们将在…

linux 查看libusb版本,linux / libusb获取usb设备路径

我使用libusb来枚举一些usb设备.现在我想获得“设备路径”.我认为这不是usb device-path,因为我没有成功使用谷歌.如果我用linux连接usb设备,我会在dmesg中收到一条消息,这里有一些带有usb温度传感器的“设备路径”的例子(类似于this)&#xff1a;H_301_3直接到usb端口&#xf…

如何使用Apache Drill分析高度动态的数据集

当今的数据是动态的&#xff0c;并由应用程序驱动。 由诸如Web /社交/移动/ IOT等行业趋势驱动的新业务应用时代的增长正在生成具有新数据类型和新数据模型的数据集。 这些应用程序是迭代的&#xff0c;并且关联的数据模型通常是半结构化的&#xff0c;无模式的且不断发展的。 …

MVC中不能使用原生态的#include ,可替代的解决方案

<!--#include file"../stuff/foo/box.aspx"--> 1.可以用 <%: Html.Partial("~/Views/foo/box.ascx") %>OR <% Html.RenderPartial("~/Views/foo/box.ascx"); %> 2. Html.Raw(File.ReadAllText(Server.MapPath("~/html/te…

linux备份日志文件脚本,Linux篇:Shell脚本实现Gitlab双备份

01 前言最近成功从架构组拿到了Gitlab的管理权限&#xff0c;第一件事就是想着如何备份&#xff0c;以防数据丢失背大锅&#xff0c;于是在网上搜索一番&#xff0c;发现一段非常赞的备份脚本&#xff0c;记录照着操作一下&#xff1a;尤其是第二篇文章博主&#xff0c;有非常多…

物理数据模型(PDM)-概念数据模型 (CDM)-面向对象模型 (OOM):适用于已经设计好数据库表结构了。...

步骤如下&#xff1a; 一、反向生成物理数据模型PDM 开发环境 PowerDesigner 15 ,SQL Server2005 &#xff08;1&#xff09;在开始逆向生成PDM图之前&#xff0c;需要为指定的数据库创建ODBC数据源。以Windows xp操作系统为例&#xff0c;选择“开始”/“运行”命令&#xff0…

带有Hibernate OGM的NoSQL –第二部分:查询数据

1月底发布了Hibernate OGM的第一个最终版本之后&#xff0c;团队一直在忙于制作一系列教程式博客&#xff0c;使您有机会轻松地从Hibernate OGM重新开始。 第一部分是关于设置和保留您的第一个实体 。 在第二部分中&#xff0c;您将学习如何查询数据。 Hibernate OGM将使您以几…

Linux下做一个arp欺骗程序6,LINUX下防ARP欺骗攻击

arp欺骗的原理不多述&#xff0c;基本就是利用发送假的arp数据包&#xff0c;冒充网关。一般在网上通讯的时候网关的IP和MAC的绑定是放在arp 缓存里面的&#xff0c;假的arp包就会刷新这个缓存&#xff0c;导致本该发送到网关的数据包发到了欺骗者那里。解决的办法就是静态arp。…

MySQL作为Kubernetes服务,可从WildFly Pod访问

Kubernetes上使用Vagrant的Java EE 7和WildFly&#xff08;技术提示&#xff03;71&#xff09;介绍了如何在使用Kubernetes和Docker托管的WildFly上运行琐碎的Java EE 7应用程序。 Java EE 7应用程序是在世界范围内交付的动手实验室 。 它使用与WildFly捆绑在一起的内存数据库…

几个最短路径算法Floyd、Dijkstra、Bellman-Ford、SPFA的比较

几大最短路径算法比较 转自&#xff1a;http://blog.csdn.net/v_july_v/article/details/6181485 几个最短路径算法的比较&#xff1a;Floyd 求多源、无负权边的最短路。用矩阵记录图。时效性较差&#xff0c;时间复杂度O(V^3)。 Floyd-Warshall算法&#xff08;Floyd-W…

linux系统creat函数,Linux系统调用之creat函数

Linux中系统调用很多&#xff0c;但是再多也有几种不变的根本&#xff1a;创建&#xff0c;打开&#xff0c;写&#xff0c;读&#xff0c;关闭&#xff0c;删除&#xff0c;等最最基本的操作&#xff0c;就像人们所常说的&#xff0c;Linux上的一切我们都可以当做文件来处理&a…

防止在多模块Maven中找到“未找到插件”

在多模块Maven项目的子模块上定义Maven插件会给我们“找不到插件”错误。 尤其是如果我们有一个多模块项目&#xff0c;并且只想在一个特定模块中应用Maven插件&#xff0c;则此错误会经常发生。 假设我们有一个看起来像这样的多模块root pom。 <project xmlns"http:…