JBOSS 7 热部署文件详解与jboss-as-web.Final-RECOMPILE.jar压缩包使用

需积分: 1 0 下载量 98 浏览量 更新于2024-11-05 收藏 422KB RAR 举报
资源摘要信息:"jboss-as-web.Final-RECOMPILE.jar.rar" JBOSS 7 热部署文件 "jboss-as-web.Final-RECOMPILE.jar.rar" 指的是一个压缩包文件,它包含了可以用于 JBOSS 7 应用服务器的热部署组件。为了深入理解这个文件所涉及的知识点,我们将从以下几个方面进行详细介绍: 1. JBOSS 应用服务器概述 2. 热部署的概念与意义 3. JAR 文件结构与作用 4. RAR 文件的定义及其用途 5. JBOSS 7 特定的部署机制 ### 1. JBOSS 应用服务器概述 JBOSS 是一款开源的应用服务器软件,它基于 Java EE 平台(现在称为Jakarta EE)进行开发。JBOSS 应用服务器支持多种服务和中间件组件,被广泛用于构建、部署和运行各种Java应用程序和服务。JBOSS 7 版本是该系列软件的一个重要版本,它主要针对性能、可用性和安全性进行了优化。 ### 2. 热部署的概念与意义 热部署是指在应用服务器运行时,无须停止服务器或重新启动服务即可部署、更新或卸载应用程序的能力。这项功能对于开发测试以及生产环境下的快速迭代和维护至关重要。它使得开发者能够更快地对应用程序进行更改并立即看到结果,而不影响用户的使用体验。 ### 3. JAR 文件结构与作用 JAR 文件是 Java Archive 的缩写,它是一种打包Java类文件、图像、声音和其他资源文件的压缩文件格式。JAR文件使得Java应用程序更加紧凑,并且可以包含一个清单文件(Manifest),其中可以指定主类的入口点,还可以添加元数据和其他属性信息。 在JBOSS中,JAR文件通常用于封装Web应用模块,使得这些模块可以被部署到服务器上。"jboss-as-web.Final-RECOMPILE.jar" 似乎是一个已经编译好的Web应用程序模块,其名称中的“Final-RECOMPILE”可能意味着这是一个已经完成重新编译的最终版本。 ### 4. RAR 文件的定义及其用途 RAR 文件是一种压缩文件格式,它由WinRAR软件支持。RAR文件通常具有比常见的ZIP文件更高的压缩比,但是它不支持跨平台的开放标准。在Java和JBOSS的上下文中,RAR文件可能被用作一种打包资源适配器(Resource Adapter Archive)的方式。资源适配器是一种组件,它允许Java EE应用与外部资源(如数据库、消息服务等)进行通信。 ### 5. JBOSS 7 特定的部署机制 JBOSS 7 中的部署机制与之前版本有所不同,它采用了更加模块化和轻量级的设计。它使用了域(domain)模式和独立(standalone)模式来支持不同的部署场景。在域模式中,可以实现多服务器管理,从而提供更高的可用性和可伸缩性。 部署时,JBOSS 7允许以JAR、WAR、EAR等标准Java EE包格式进行部署,也可以通过管理控制台或者命令行工具进行部署。热部署可以通过简单的复制JAR文件到部署目录完成,JBOSS将自动识别并部署新的或更新的资源。 结合以上知识点,"jboss-as-web.Final-RECOMPILE.jar.rar" 可能是一个包含有经过最终重新编译的Web应用程序模块的压缩包文件。这个模块可能被打包成RAR格式,以适应JBOSS的特定部署要求,使得部署过程更加便捷。开发者或运维人员可以通过将这个RAR文件解压并放置到JBOSS的部署目录中,实现快速热部署。这种方式提高了开发与部署的效率,降低了维护成本,是现代Java应用服务器的重要特性之一。
2014-07-22 上传
原文:http://andy-li-chn.iteye.com/blog/1966986 公司的网站系统使用的中间是jboss7.1.1 Final,由于有些数据和服务测试环境不具备,免不了要在测试环境调试些jsp页面,发现从jboss社区里下载的jboss应用有个问题,新增jsp页面会实时部署,修改过的jsp页面就无法正常部署。 最新查到了如下解决方式: 在jboss7\standalone\configuration\standalone.xml文件中找到<subsystem xmlns="urn:jboss:domain:web:1.0" default-virtual-server="default-host">做如下配置 Xml代码 收藏代码 <subsystem xmlns="urn:jboss:domain:web:1.0" default-virtual-server="default-host"> <configuration> <jsp-configuration development="true"/> </configuration> <connector name="http" protocol="HTTP/1.1" socket-binding="http" scheme="http"/> <virtual-server name="default-host" enable-welcome-root="true"> <alias name="localhost"/> <alias name="example.com"/> </virtual-server> </subsystem> 以打开开发模式。但是加上该代码后,发现不起作用。后面有到jboss社区里翻了无数帖子,发现了Tomaz Cerar如下描述: in 7.1.1 we have included much reworked web subsystem but unfortunaly I missed a bit that coused all jsp configuration to be ignored. That bug was fixed soon after 7.1.1 was released and is now part of 7.1.2 and 7.2.x development branch. 原味连接https://community.jboss.org/message/723813由此可见这是一个本版本的bug,说是要在后期修复的。但是为中间升级风险很大,很多业务都是基于老版本的开发的,为了稳妥,我想肯定有人不用通过升级已经解决了此问题。 灯火阑珊处,发现了答案: 1. Please make sure to add <configuration> <jsp-configuration development="true"/> </configuration> in standalone.xml under <subsystem xmlns="urn:jboss:domain:web:1.1" default-virtual-server="default-host" native="false"> 2. Go to jboss-as-7.1.1.Final/modules/org/jboss/as/web/main Place the jboss-as-web-7.1.1.Final-RECOMPILE.jar in there. You can download from http://www.datafilehost.com/download-2cb9ff04.html 3. Open module.xml (jboss-as-7.1.1.Final/modules/org/jboss/as/web/main) and add the following line <resource-root path="jboss-as-web-7.1.1.Final-RECOMPILE.jar"/> 叙述的都很简单,我就不翻译了 原文详见:https://community.jboss.org/message/723945#723945#723945 按照作者所讲的方法操作了,问题奇迹般解决了,当时由于jboss核心包被重新编译过了,是否存在什么隐患还有待深入测试。 另在附件中提供了解决方案提供者重新编译过的包,我测试了是没问题。 现与大家分享。
2014-11-02 上传
EJB3.1 JBoss7.0.2 EclipseJuno-helloworld实现 2013-01-06 02:59:54 分类: Java EJB3.1 JBoss7.1 Eclipse3.7---helloworld实现 一、环境配置: JDK:正常配置 Eclipse:正常下载,解压(V3.7) JBoss:正常下载,解压(V7.1) 二、JBoss Tools安装 在Eclipse里面安装JBoss Tools3.3 1、【Help】——>【Install New Software】——>【Add】 输入: Name: JBossTools Location: http://download.jboss.org/jbosstools/updates/development/indigo/ ——>【OK】——>【Select All】——>【Next】 ——>(中间的步骤一直NEXT,需要选择同意)——>【Finish】 2、【Help】——>【Install New Software】——>【Add】 输入: Name: JBossTools Aop Location: http://download.jboss.org/jbosstools/updates/development/indigo/soa-tooling/ ——>【OK】——>【Select All】——>【Next】 ——>(中间的步骤一直NEXT,需要选择同意)——>【Finish】 三、Eclipse里面配置JBoss 【File】——>【New】——>【Other】 (找到Server,并且选择)——>【Next】 (找到JBoss Community,选择JBoss AS 7.1)——>【Next】 (找到Home Directory)——>【Browse…】——> (选择JBoss解压的位置,即JBoss Home)——> (找到JRE,选择你安装的JRE)——>【Next】 ——>【Next】——>【Finish】 以上步骤完毕后,在Servers视图内会有JBoss服务器出现。 点击该视图内的启动按钮,JBoss服务器开始启动 浏览器可以访问http://127.0.0.1:8080/,就算配置成功。 四、第一个EJB工程 【File】——>【New】——>【Other】 (找到EJB,并且选择EJB Project)——>【Next】 输入: Project name:TestEJB Target runtime:选择JBoss7.1 EJB module version:选择3.1 ——>【Next】——>【Next】 (选择Generate ejb-jar.xml deployment descriptor) ——>【Finish】 生成的目录结构中,ejbModule目录为我们要写JAVA源代码的目录。 即EJB写在这里。 在ejbModule目录上右键【New】——>【Other】 (找到EJB,并且选择Session Bean(EJB 3.x))——>【Next】 输入:包名(com.ejb)、EJB类名(HelloWorld), State type部分:选择Stateless 然后选择Remote ——>【Finish】 自动生成代码如下: package com.ejb; import javax.ejb.Remote; @Remote public interface HelloWorldRemote { } package com.ejb; import javax.ejb.LocalBean; import javax.ejb.Stateless; /** * Session Bean implementation class HelloWorld */ @Stateless @LocalBean public class HelloWorld implements HelloWorldRemote { /** * Default constructor. */ public HelloWorld() { // TODO Auto-generated constructor stub } } 在接口里面增加以下方法 public String sayHello(String name); 类里面实现该方法 public String sayHello(String name){ return "Hello this is " + name + "!"; } 五、部署EJB 在工程上右键——>【Export】——>【EJB JAR file】 在Destination处:——>【Browse…】——> 选择JBoss服务器的部署目录,我的目录如下: D:\eclipse-jboss\jboss-as-7.1.1.Final\standalone\deployments\TestEJB.jar 然后——>【Finish】 在Console视图会出现详细部署信息 六、客户端代码 1、新建一个普通Java Project工程: 2、加入JBOSS运行库,及jboss\bin\client下的jboss-client.jar包 3、把EJB的接口拷贝到该工程内: 4、新建一个客户端类:类名(ClientTest) 代码如下: import java.util.Hashtable; import javax.naming.Context; import javax.naming.InitialContext; import javax.naming.NamingException; import com.ejb.HelloWorldRemote; public class ClientTest { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Hashtable<String, String> jndiProperties = new Hashtable<String, String>(); jndiProperties.put(Context.URL_PKG_PREFIXES, "org.jboss.ejb.client.naming"); try { Context context = new InitialContext(jndiProperties); final String appName = ""; final String moduleName = "TestEJB"; final String distinctName = ""; Object obj = context.lookup("ejb:" + appName + "/" + moduleName + "/" + distinctName + "/HelloWorld!com.ejb.HelloWorldRemote"); HelloWorldRemote hwr = (HelloWorldRemote)obj; String say = hwr.sayHello("hiyaSoft"); System.out.println(say); } catch (NamingException e) { e.printStackTrace(); } } } 5、在classPath下增加“jboss-ejb-client.properties”文件,内容如下 remote.connectionprovider.create.options.org.xnio.Options.SSL_ENABLED=false remote.connections=default remote.connection.default.host=localhost remote.connection.default.port = 4447 remote.connection.default.connect.options.org.xnio.Options.SASL_POLICY_NOANONYMOUS=false 6、运行该客户端,有如下结果: Hello hiyaSoft!