用Maven打包成EAR部署JBoss
基于原理的架构里面,考虑这次升级版本,可谓是一步一个脚印的向上走啊,可以说步步为坎,别人的知识,和自己的知识,相差很多啊,什么都懂点,但是具体没有使用,就理解不深刻了,心有余而力不足,所以一切我们自己来操作吧,可谓是体会深刻了,各种错,各种bug,是最好的学习进步的见证吧,
最近的升级Jboss版本到EAP6.2,所谓是版本升级,内容新增很多啊,比5.1改观不少,现在我们遇到的问题是注入到EJB容器内部的实体在最后的持久化的数据库的时候报错了,实体找不到,报错如下:
<span style="font-size:18px;">JBWEB000065: HTTP Status 500 - Request processing failed; nested exception is javax.ejb.EJBTransactionRolledbackException: Unknown entity: Jc.entity.Student
</span>
在尝试几种方法解决,我做了使用达成EAR包的形成测试,具体步骤总结分享(0、1、2加载顺序)
0:封装了mgr接口和实体
1:
2:web层
我要把这三个包打成一个ear包,把相互的依赖关系打到一起,参考官网
新建一个Maven Project,写入pom文件内容
<span style="font-size:18px;"><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.tgb</groupId>
<artifactId>lishehetestear</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>ear</packaging>
<build>
<plugins>
<plugin>
<artifactId>maven-ear-plugin</artifactId>
<version>2.9</version>
</plugin>
</plugins>
</build>
</project></span>
如果pom文件报错,那么安装一下 m2e-wtp这个插件,插件地址
插件装好之后,需要把需要打入的jar和war包都添加到里面来
<span style="font-size:18px;"><dependencies>
<dependency>
<groupId>com.tgb</groupId>
<artifactId>lishehe_api</artifactId>
<version>0.0.1-SNAPSHOT</version>
<type>jar</type>
</dependency> <dependency>
<groupId>com.tgb</groupId>
<artifactId>lishehe_core</artifactId>
<version>0.0.1-SNAPSHOT</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>com.tgb</groupId>
<artifactId>lishehe_war</artifactId>
<version>0.0.1-SNAPSHOT</version>
<type>war</type>
</dependency>
</dependencies></span>
然后运行mvn的命令 ear: generate-application-xml,此命令是用来生成ear中的部署描述符的。
成功之后运行mvn的命令,ear:ear,,成功后,从target开发打包好的ear,发现要打包的几个包外,几个依赖的包也都在里面,ear提供的插件Creatin Skinny WARS,
<span style="font-size:18px;"><span style="font-size:18px;"><plugin>
<artifactId>maven-ear-plugin</artifactId>
<version>2.9</version>
<configuration>
<packagingIncludes>META-INF/**,**/lishehe_*.jar,**/lishehe_*.war</packagingIncludes>
</configuration>
</plugin></span></span>
注:上面这句话是说要将META-INF下(有application.xml等)及所有的lishehe开头的jar、war都打包进来。
现在再来看,这样生成的ear包如下,现在就只剩下我们需要部署的jar及war。
现在可以打成EAR包了,当我加载的时候出现了问题,空指针,Jboss按照字母加载,需要改成按照一定的依赖关系加载
只是在pom中对JBoss进行配置,还得将那些jar加载顺序写到application.xml文件(用ear:generate-application-xml生成的)里面。
<span style="font-size:18px;"><span style="font-size:18px;"><plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-ear-plugin</artifactId>
<version>2.9</version>
<configuration>
<packagingIncludes>META-INF/**,**/lishehe_*.jar,**/lihehe_*.war</packagingIncludes> <modules>
<jarModule>
<groupId>com.tgb</groupId>
<artifactId>lishehe_api</artifactId>
<includeInApplicationXml>true</includeInApplicationXml>
</jarModule>
<jarModule>
<groupId>com.tgb</groupId>
<artifactId>lishehe_core</artifactId>
<includeInApplicationXml>true</includeInApplicationXml>
</jarModule>
<webModule>
<groupId>com.tgb</groupId>
<artifactId>lishehe_war</artifactId> </webModule>
</modules> </configuration> </plugin>
</plugins></span></span>
application.xml中文件生成是
<span style="font-size:18px;"><span style="font-size:18px;"><?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE application PUBLIC
"-//Sun Microsystems, Inc.//DTD J2EE Application 1.3//EN"
"http://java.sun.com/dtd/application_1_3.dtd">
<application>
<display-name>lishehetestear</display-name>
<module>
<java>lishehe_api-0.0.1-SNAPSHOT.jar</java>
</module>
<module>
<java>lishehe_core-0.0.1-SNAPSHOT.jar</java>
</module>
<module>
<web>
<web-uri>lishehe_war-0.0.1-SNAPSHOT.war</web-uri>
<context-root>/lishehe_war</context-root>
</web>
</module>
</application></span></span>
全的pom内容
<span style="font-size:18px;"><span style="font-size:18px;"><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.tgb</groupId>
<artifactId>lishehetestear</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>ear</packaging>
<url>http://maven.apache.org</url> <dependencies>
<dependency>
<groupId>com.tgb</groupId>
<artifactId>lishehe_api</artifactId>
<version>0.0.1-SNAPSHOT</version>
<type>jar</type>
</dependency> <dependency>
<groupId>com.tgb</groupId>
<artifactId>lishehe_core</artifactId>
<version>0.0.1-SNAPSHOT</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>com.tgb</groupId>
<artifactId>lishehe_war</artifactId>
<version>0.0.1-SNAPSHOT</version>
<type>war</type>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-ear-plugin</artifactId>
<version>2.9</version>
<configuration>
<packagingIncludes>META-INF/**,**/lishehe_*.jar,**/lihehe_*.war</packagingIncludes>
<jboss>
<version>5</version>
<module-order>strict</module-order>
</jboss>
<modules>
<jarModule>
<groupId>com.tgb</groupId>
<artifactId>lishehe_api</artifactId>
<includeInApplicationXml>true</includeInApplicationXml>
</jarModule>
<jarModule>
<groupId>com.tgb</groupId>
<artifactId>lishehe_core</artifactId>
<includeInApplicationXml>true</includeInApplicationXml>
</jarModule>
<webModule>
<groupId>com.tgb</groupId>
<artifactId>lishehe_war</artifactId> </webModule>
</modules> </configuration> </plugin>
</plugins>
</build> </project></span></span>
剩下的就是部署了,直接扔到Jboss里面即可,
总结
这个时候深刻体会到英语很重要啊,细心的深入的去学习,查资料(外网的靠谱)。
用Maven打包成EAR部署JBoss的更多相关文章
- 用Maven打包成EAR远程部署JBoss(二)——部署到远程JBoss
用Maven打包成EAR远程部署JBoss(一)讲了如何使用Maven打包,可是在文章的最后也留下了一个问题,那就是如何将包部署到远程的JBoss中呢?近期在对之前的学习进行总结,发现少了这样一篇重要 ...
- uniapp打包成H5部署到服务器教程
当前端uniapp写的项目开发完成的时候,需要将页面打包出来,生成H5的静态文件,部署在服务器上,通过服务器链接地址,就可以直接在手机上点开访问 了. 在网上看了一圈,好像没有找到十分详细的教程,这里 ...
- spirng boot打包成war部署
最近一段时间一直在研究和学习springboot,感觉其十分便利好用.以前使用spring搭建项目都整好多繁琐的配置,使用了springboot后这些繁琐的配置统统都不要了.但就是对springboo ...
- maven打包成第三方jar包且把pom依赖包打入进来
<build> <plugins> <plugin> <artifactId>maven-assembly-plugin</artifactId& ...
- Maven打包成Jar文件时依赖包的问题
我们项目中使用到第三方的库文件,这些jar库文件并没有放到Maven中央库上,导致我们需要在项目中自己配置使用.我们的两三个开发人员对Java都是很熟,因此在使用中遇到了一些问题,表现在:在本地中引入 ...
- [DEBUG] spring boot在eclipse中用maven打包成jar访问templates报500错误
更新:打war包的话只要把html文件放在resources/templates下即可,根本不需要放外面. 配置application.yml和templates放外面这种做法,打war包确实不行. ...
- Spring Boot 使用maven打包成jar
1.application.properties加入如下配置 server.port= 2.修改pom.xml <?xml version="1.0" encoding=&q ...
- maven打包成jar
maven pom.xml中添加依赖 <build> <plugins> <plugin> <groupId>org.apache.maven.plug ...
- maven打包成可运行的jar
在pom.xml添加 <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</ ...
随机推荐
- [测试题]gentree
Description 给你一个有向连通图G,每点有个权值Di(0<Di),要求生成一棵树根为1号节点的有根树T.对于树中边E,E的代价为所有从根出发的且包含E的路径的终点权值的和.现求生成树T ...
- [3.19FJ四校联考]
来自FallDream的博客.未经允许,请勿转载,谢谢. ---------------------------------------------------- A.积分,不会 以后补 B.给定一 ...
- ES6(数组)
ES6数组新增特性 1. 空数组 2.将伪数组转换成真正的数组 将 p 标签集合转换成真正数组 类似于map的用法,转换数组同时还在遍历. 3.填充数组(将所有数组换成一个值) 1代表起始位置,3代表 ...
- 关于惠普hp服务器开机时F10菜单变成F10 Function Disabled的解决方法
今天笔者由于在Intelligent Provisioning智能配置里不小心将"启动Intelligent Provisioning"选项钩选成禁用了,如下 结果就造成,在之后服 ...
- # electron-vue 尝试做个网易云音乐
当跑起来electron第一刻 我发现这个浏览器头是不是有点丑 是不是可以隐藏起来呢,答案当然是可以的 src/main/index.js mainWindow = new BrowserWindow ...
- day07 Cookie 和 Session(非常重要)
day07 Cookie 和 Session 1. 会话技术 2. cookie 的方法和 cookie 案例-显示用户上次访问网站的时间 3. cookie 的细节 - 删除 cookie 4. S ...
- 通过AIDL在两个APP之间Service通信
一.项目介绍 [知识准备] ①Android Interface definition language(aidl,android接口定义语言),其目的实现跨进程的调用.进程是程序在os中执行的载体, ...
- 深入理解Lambda函数及其用法
Lambda函数又称匿名函数,匿名函数就是没有名字的函数,函数没有名字也行?当然可以啦.有些函数如果只是临时一用,而且它的业务逻辑也很简单时,就没必要非给它取个名字不可. 先来看个简单lambda函数 ...
- DotnetSpider (二) Downloader的设置 Request自定义数据字典
本篇主要分享自定义Downloader和Request信息,实现自定义请求内容,及将自定义内容存储. ** 温馨提示:如需转载本文,请注明内容出处.** 本文连接:http://www.cnb ...
- CF | Alyona and Numbers
After finishing eating her bun, Alyona came up with two integers n and m. She decided to write down ...