JBoss的下载和安装
m2eclipse的Eclipse的靛蓝和JBoss工具安装
下载并导入到Eclipse中的“快速入门”
确保$ JBOSS_HOME设置。
确保的src / test /资源/ arquillian.xml正确的路径到你的JBoss AS安装为kitchensink
确保您的字体大小是在Eclipse中设置,使每个人都可以阅读的文本!
导入到Eclipse中的例子,并成立了JBoss AS中
TODO
在HelloWorld快速入门
简介
本快速入门是非常基本的,真的是比应用服务器正常工作的,和我们的部署机制正在非常有用。我们建议您使用此快速入门演示各种方法,可以部署到JBoss应用程序为7。
使用Maven
从控制台的JBoss启动7
$ JBOSS_HOME / BIN / standalone.sh
部署应用程序使用Maven
MVN清洁包JBoss的部署:
快速入门使用的jboss - maven插件来部署和取消部署应用程序。这个插件使用原生的Java Detyped管理API的JBoss与服务器通信。Detyped API是用于管理工具,来控制整
个服务器域,并公开只有少数类型,允许为向前和向后的兼容性。
显示应用程序已部署在终端
访问http://localhost:8080/jboss-as-helloworld
取消部署应用程序使用Maven
MVN的jboss -:取消部署
使用命令行界面(CLI)
从控制台启动JBoss的(如果尚未运行)7
$ JBOSS_HOME / BIN / standalone.sh
构建战争
MVN清洁包
启动CLI
$ JBOSS_HOME / BIN /的jboss - admin.sh - 连接
命令行使用Deptyped管理API与服务器通信。它的设计要尽可能为“unixy”,让您“CD”全tab完成,到节点等CLI允许部署和取消部署应用程序,创建JMS队列,主题等,创
建数据源(正常和XA )。它也完全支持域节点。
部署应用程序
部署目标/的jboss - - helloworld.war
显示应用程序已部署
取消部署的jboss - AS - helloworld.war
使用Web管理界面
从控制台启动JBoss的(如果尚未运行)7
$ JBOSS_HOME / BIN / standalone.sh
构建战争
MVN清洁包
打开web管理界面http://localhost:9990/console
该网站的maangement界面CLI(再次使用Detyped管理API)提供相同的功能,但这样做用一个漂亮的GWT接口的!您可以设置虚拟服务器,查询子系统和更多。
导航管理部署- >添加内容。点击选择“文件,并找到helloworld程序/目标/ JBOSS作为 helloworld.war 。
单击“下一步“,并完成上传战争到服务器。
现在,点击“ 启用 “确定”来启动应用程序
切换到控制台显示它部署
现在按一下[ 移除]
使用文件系统
从控制台启动JBoss的(如果尚未运行)7
$ JBOSS_HOME / BIN / standalone.sh
构建战争
MVN清洁包
当然,你仍然可以使用的好醇'文件系统部署。只要文件复制到$ JBOSS_HOME /独立/部署。
复制战争
CP目标/ JBOSS - helloworld.war $ JBOSS_HOME /独立/部署
显示战争的部署
文件系统的部署使用标记文件指示部署状态 。由于这一部署的成功,我们得到一个$ JBOSS_HOME /独立/部署/的jboss - helloworld.war.deployed文件。如果部署失败,
你会得到一个。失败的文件等。
取消部署战争
RM $ JBOSS_HOME /独立/部署/ JBoss的AS - helloworld.war.deployed
显示部署停止!
启动和停止应用程序服务器,部署真的走了!
这使您可以比以往更精确的部署控制
使用Eclipse
添加作为服务器的JBoss
打开Server视图
右击它,然后选择“ 新建“ - >服务器
7.0 JBoss的选择,并点击Next
找到光盘上的服务器
点击完成
开始,在Eclipse的JBoss
选择服务器
点击Run按钮
部署应用程序
右键单击应用程序,选择“ 运行“ - >服务器上运行
7例如,您要使用的
点击完成
负载在应用程序http://localhost:8080/jboss-as-helloworld
挖掘到的应用程序
打开Eclipse中的HelloWorld快速入门,并开辟src /主/ web应用 。
指出,我们并不需要一个 web.xml 了!
显示beans.xml文件,并解释它是一个标记文件到JBoss AS,使CDI(打开它,表明它是空的的 )
显示的index.html,并解释它只是用于启动应用程序的用户(打开它,显示元刷新)
打开pom.xm - ,并强调,这是非常简单的 。
有没有父POM,构建一切都在这里
表明我们正在使JBoss的Maven的回购-解释,你可以在你的POM或(在全系统的 settings.xml )
显示dependencyManagement部分。在这里,我们进口的JBoss AS 7的Web配置文件 API。解释,这给你所有所有的JBoss版本为7的API在Web配置文件 。说明我们也可以直接依赖于此
,这将使我们一整套的API,但在这里,我们已经决定去稍微更严格的控制,并指定每个依赖自己
显示CDI,JSR - 250和Servlet API的进口。表明,这些都提供 - 我们是取决于建立在服务器的实现,而不是包装这东西!
显示插件部分-没有什么令人兴奋的在这里,战争插件是过时的,并要求您提供的 web.xml配置JBoss的Maven插件,设置Java版本6 。
打开src /主/ JAVA和开放HelloWorldServlet。
指出@ WebServlet -解释这一个注解移除约8行的XML -无需分别映射路径。这是重构安全得多
表明我们可以注入一个Servlet服务
表明我们使用的服务(41行)
#Cmd的点击HelloService中
这是一个CDI豆 - 很简单,没有注释!
说明注射
可能用于基于字符串的bean的决议
这是类型安全(重构安全,编译器和IDE的优势 - 我们只是看到)
处当需要注入的东西,首先它着眼于是类型 - 如果注入点的类型是从一个bean分配,CDI将注入该bean
猜数字快速入门
简介
本快速入门将组合成一个“完整的”视图层。Java EE的船舶用JSF。JSF是一个服务器端渲染,组件导向的框架,你写使用像HTML语言的标记,绑定组件中添加动态行为在后端豆。快
速启动也使得更多的使用CDI线应用程序一起。
运行程序
开始,在Eclipse的JBoss
它部署使用Eclipse -只需右击应用程序,选择“ 运行“ - >服务器上运行
7例如,您要使用的
点击完成
负载在应用程序http://localhost:8080/jboss-as-numberguess
使一些猜测
部署描述符src /主/ web应用/ WEB - INF目录
强调他们的缺乏!
无需打开其中任何一个,只是点出来
web.xml中 -不需要它!
beans.xml中 -像以前一样,标记文件
faces - config.xml中 -不错的功能,从AS7 -我们可以只是把faces - config.xml中的WEB - INF,它使(灵感来自CDI)的JSF
pom.xml中,我们看到此之前,这个时间是相同的,但在JSF API增加
点击
index.html的 -像以前一样,只是踢我们到应用程序
home.xhtml
行19 - 25 - 这些都是消息的输出取决于豆子的状态(最小盘问状态的控制器和视图层之间的耦合,不推)
第20行 - 输出任何消息推控制器
第39行 - 42 - 输入字段势必猜测领域上的游戏豆。我们验证输入游戏bean上调用的方法。
线43 - 45 - 命令按钮是用来提交表单,并呼吁游戏豆的方法
第48行,49,复位按钮,再次呼吁游戏豆的方法
豆类
Game.java -这是游戏的主控制器 。APP没有持久性等。
@命名 -正如我们讨论过CDI是类型安全的,(豆类型注入),但有时需要在一个非类型安全的方式访问 。@命名暴露在EL的bean -和,使我们能够访问从JSF
@ SessionScoped -真正简单的应用程序,我们一直在会话中游戏数据-发挥两个并行的游戏,需要两会。这是不是对CDI的限制,但只是保持这个非常简单的演示。游戏豆是第一次访
问CDI将创建一个bean实例,然后始终为您加载
@注入MAXNUMBER -在这里,我们注入的最大数量,我们可以猜测 。这使我们能够外部化的游戏配置
@注入rnadomNumber -在这里,我们注入的随机数,我们需要猜测 。两件事情,在这里 讨论
实例-一般情况下,我们可以注入的对象本身,但有时是非常有用的注入一个“供应商”的对象(在这种情况下,使我们可以得到一个新的随机数游戏时复位 !)。实例允许我们的
get()一个新的实例,在需要的时候
预选赛-现在我们有两个整数类型(处自动箱的类型做注射时),所以我们需要来消除歧义。解释预选赛和开发时间的方法来消除歧义 。您将要开辟@ MAXNUMBER和@随机。
@ PostConstruct -这里是我们的复位方法-我们也呼吁启动它成立的初始值 。显示使用Instance.get() 。
Generator.java这个bean作为我们的随机数发生器 。
@ ApplicationScoped解释其他范围可在CDI +可扩展性。
next()的解释制作人对于在运行时确定bean实例非常有用
getMaxNumber()解释有关允许松耦合的生产者
登录快速入门
简介
登录快速入门的基础上我们从猜数字了CDI和JSF的知识。新的东西,我们将学习如何使用JPA存储在数据库中的数据,如何使用JTA来控制事务,以及如何使用EJB的声明TX控制。
运行程序
开始,在Eclipse的JBoss
它部署使用Eclipse -只需右击应用程序,选择“ 运行“ - >服务器上运行
7例如,您要使用的
点击完成
负载在应用程序http://localhost:8080/jboss-as-login
以admin身份登录/管理
创建一个新用户
部署描述符
表明我们有相同的,我们在src /主/ web应用- beans.xml中,faces - config.xml中
我们有一个在新的情侣src /主/资源
persistence.xml的。不是太令人兴奋的。我们使用的数据源,AS7船舶与。它支持的H2数据库,纯粹是一个示例,在示例应用程序的数据源使用 。我们还告诉Hibernate自动创建表-
你总是有。
import.sql同样,你在Hibernate中使用相同的旧事-当应用程序启动时自动导入数据。
pom.xml的是相同的,只是增加了依赖关系的JPA,JTA和 EJB
点击
template.xhtml添加到JSF 2.0的更新之一是模板的能力。我们采取这个程序利用这一点,因为我们有多个视图
其实这里没有什么太重大,我们定义的应用程序“称号”,我们可以很容易地定义一个共同的页脚等(完成这件事,我们可以看到在kitchensink应用程序)
#home.xhtml UI:插入命令插入从模板页面的实际内容 。
使用模板
登录表单,按钮,登录和注销,添加用户链接到一些输入字段。
绑定字段凭据豆}}
按钮链接到登录豆这是控制器
users.xhtml
使用模板
显示所有用户使用一个表
与输入字段的形式,添加用户。
绑定字段NEWUSER豆
方法调用userManager豆
豆类
Credentials.java backing bean的登录表单字段,非常简单。它的请求范围(登录域的自然)和命名,因此,我们可以从 JSF。
Login.java
是会话作用域(一个用户登录,在他们的会话的长度,直到他们登出}}
从El访问
注入当前的凭据
使用userManager服务加载的用户,和需要的任何消息发送到JSF
使用一个生产者方法暴露@ LoggedIn来用户(生产方法,使用的,因为我们不知道用户在开发时)
User.java是一个非常简单的JPA实体 。与映射@实体,有一个天然的ID 。
UserManager.java这是一个接口,默认情况下,我们使用ManagedBean版本,这就需要手动TX控制
ManagedBeanUserManager.java -从El访问,请求范围。
注入一个记录器(我们会看到这是如何在一分钟内产生)
注入实体管理器(再次,只是一个分)
注入的UserTransaction(这是由课程发展处提供)
getUsers()标准JPA - QL的,我们知道和爱-但很多丑陋的TX处理代码。
相同的adduser()和findUser()方法-很简单的JPA,但...
了几个制作方法。
getUsers()是显而易见的-加载 所有的数据库中的用户。毫不含糊- CDI考虑泛型类型时注射。另外还要注意,处名称方面的JavaBean命名约定
getNewUser()是用于绑定到新用户的形式,从视图层-非常好,因为它降低耦合-我们完全可以改变在服务器端接线(不同的方法来创建新用户豆),并没有需要改变的观点层。
EJBUserManager.java
它的一个选择 - 解释的替代品,它们允许在部署时选择的豆类
许多简单的,现在我们已经声明TX控制。
开始,看看我们如何能够引入EJB来得到有用的企业服务,如声明TX控制
Resources.java
{EntityManager的} - 解释资源的生产者模式