文档章节

Maven 远程部署项目到jboss-as-7

twentwo
 twentwo
发布于 2015/08/14 22:07
字数 1134
阅读 80
收藏 0
点赞 0
评论 0

最近在看许晓斌(Juven Xu)编写的《Maven实战》,书中提到Maven远程部署项目到服务器。刚好最近做的项目在测试阶段,不过测试环境用的服务器是Jboss(jboss-as-7.1.0.Final),遂开始折腾。以jboss-as-7.1.1.Final为例。


一、启动Jboss

安装Jboss在Linux下解压即可。启动包括standalone模式和domain模式。

  • standalone模式
  1. 简单开启服务器的命令:进入到 bin 目录下,执行命令。
    ./standalone.sh

这种开启服务器的方式有个缺点,当你的命令窗口关闭后,服务自动down了。

  1. 让服务器开启后在后台运行:进入到bin目录下,执行命令。
    nohup ./standalone.sh&
            或
    nohup ./standalone.sh run&

这样服务器就会在后台运行,即使关闭命令窗口,服务器依然运行。服务需关闭时,采用ps -ef | grep jboss,查看进程号,然后kill -9 进程号,再重启。

执行nohup命令,控制台logout后,进程仍然继续运行,起到守护进程的作用(虽然它不是严格意义上的守护进程)。原程序的的标准输出被自动改向到当前目录下的nohup.out文件,起到了log的作用,实现了完整的守护进程功能。 附:简单而有用的nohup命令

  • domain模式

该模式暂不叙述。

二、配置Jboss

默认Jboss只绑定在本地127.0.0.1外网无法访问。需配置standalone的配置文件。

第一步,打开${JBOSS_HOME}/standalone/configuration/standalone.xml

第二步,查找到如下配置

<interfaces>
    <interface name="management">
         <inet-address value="${jboss.bind.address.management:127.0.0.1}"/>
    </interface>
    <interface name="public">
        <inet-address value="${jboss.bind.address:127.0.0.1}"/>
    </interface>
</interfaces>

127.0.0.1改成0.0.0.0,这样外网就能访问Jboss,同时可以进入管理模式。

第三步,设置URI编码,将以下内容插入到standalone.xml文件中<extensions></extensions>节点之后。

<system-properties>
     <property name="org.apache.catalina.connector.URI_ENCODING" value="UTF-8"/>
     <property name="org.apache.catalina.connector.USE_BODY_ENCODING_FOR_QUERY_STRING" value="true"/>
</system-properties>

第四步,保存重启。

三、部署Jboss

如下图中描述了部署应用的四种方式:

20131005120052140.png

  • Administration UI Console
  • Command Line Console
  • Maven Plugin
  • copy

在此之前我们建立一个初始化管理账户,进入${JBOSS_HOME}/bin下,执行

    ./add-user.sh 

选择Management User,如下图

20131004220923734.jpg

如上,在提示输入username和password时输入相应的用户名和密码,我们随后会使用它登录管理控制台。

  1. Administration UI Console部署

访问http://127.0.0.1:9990/console(本地)或http://serverIP:9990/console(外网)进入管理界面,该模式是图形化界面,不再赘述。

  1. Command Line Console部署

执行./jboss-cli.sh进入到Command Line Console界面

[twen@localhost bin]$ ./jboss-cli.sh  
You are disconnected at the moment. Type 'connect' to connect to the server or 'help' for the list of supported commands.  
[disconnected /] connect   
[standalone@localhost:9999 /]

使用deploy命令部署XXX.war

[standalone@localhost:9999 /] deploy /dir/target/XXX.war

同样使用undeploy

[standalone@localhost:9999 /] undeploy XXX.war
  1. Maven Plugin

利用插件前先执行mvn clean package打包,确保在target目录下有war存在。

  • jboss-as-maven-plugin

配置Maven

<plugin>
  <groupId>org.jboss.as.plugins</groupId>
  <artifactId>jboss-as-maven-plugin</artifactId>
  <version>7.1.1.Final</version>
  <configuration>
	<hostname>serverIP</hostname>
	  <port>9999</port>
	  <username>user</username>
	<password>pass</password>
  </configuration>
</plugin>
  • cargo-maven2-plugin*荐

Maven配置

<plugin>
  <groupId>org.codehaus.cargo</groupId>
  <artifactId>cargo-maven2-plugin</artifactId>
  <version>1.4.14</version>
  <configuration>
	<!-- Container configuration -->
	<container>
		<timeout>60000</timeout> <!-- 1 minutes -->
		<containerId>jboss71x</containerId>
		<type>remote</type>
	</container>

	<!-- Configuration to use with the container -->
	<configuration>
		<type>runtime</type>
		<properties>
			<cargo.hostname>serverIP</cargo.hostname>
			<cargo.jboss.management-native.port>9999</cargo.jboss.management-native.port>
			<cargo.remote.username>user</cargo.remote.username>
			<cargo.remote.password>pass</cargo.remote.password>
		</properties>
	</configuration>
	<!-- Deployer configuration -->
	<deployer>
		<type>remote</type>
	</deployer>
  </configuration>
  <dependencies>
	<dependency>
		<groupId>org.jboss.as</groupId>
		<artifactId>jboss-as-controller-client</artifactId>
		<version>7.1.0.Final</version>
	</dependency>
  </dependencies>
</plugin>

这样利用Maven Plugin就可以执行mvn jboss-as:deploy(mvn cargo:deploy)等命令了。

  1. copy

拷贝war包到${JBOSS_HOME}/standalone/deployments目录,在该目录下会创建war包名.dodeploy文件,说明正执行部署,完成后会生成war包名.deployed文件,说明部署成功。


四、遇到的坑

  1. 没在配置文件中修改端口的时候执行mvn jboss-as:deploy,报错log如下:
    Could not connect to remote://serverIP:9999. The connection timed out...

解决方法见二、配置Jboss第二步。${jboss.bind.address.management:127.0.0.1}127.0.0.1改成0.0.0.0

  1. 远程部署后,当Jboss启动时,应用报错,但Jboss仍然启动了。这时候将XXX.war的文件删除,在此启动Jboss报错如下:
[Host Controller] 09:03:13,042 ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) JBAS014613: Operation ("deploy") failed - address: ([("deployment" => "XXX.war")]) - failure description: "JBAS010876: No deployment content with hash 5f870cae18c7f6f29b8964e18895199c3754de09 is available in the deployment content repository for deployment 'ez-message.war'. This is a fatal boot error. To correct the problem, either restart with the --admin-only switch set and use the CLI to install the missing content or remove it from the configuration, or remove the deployment from the xml configuraiton file and restart."

解决方法,修改${JBOSS_HOME}/standalone/configuration/standalone.xml配置文件,把<deployments/>内容删除。

<deployments>
     <deployment name="XXX.war" runtime-name="XXX.war"/>
</deployments>

注:远程部署时将war包上传至${JBOSS_HOME}/standalone/data/content目录下。

  

© 著作权归作者所有

共有 人打赏支持
twentwo
粉丝 1
博文 1
码字总数 1134
作品 0
杭州
程序员
J2EE进阶(二十四)JBoss Web和 Tomcat的区别

J2EE进阶(二十四)JBoss Web和 Tomcat的区别 在Web2.0的浪潮中,各种页面技术和框架不断涌现,为服务器端的基础架构提出了更高的稳定性和可扩展性的要求。近年来,作为开源中间件的全球领导者...

sunhuaqiang1 ⋅ 05/27 ⋅ 0

Tomcat,JBoss与JBoss Web

最近接触到应用服务器JBoss,此外JBoss Web与Tomcat也同为web服务器,便查阅资料对三者进行比较,供大家参考。 一、Tomcat Tomcat 服务器是免费开源的Web 应用服务器。支持最新的Servlet 和J...

thinkyoung ⋅ 2014/11/16 ⋅ 0

JBoss7.1.1 安装配置

一、下载安装 首先要注意安装jdk环境,笔者安装的是较新的jdk1.7版本 1、下载地址: http://www.jboss.org/jbossas/downloads ,下载Certified Java EE 6 Full Profile版本。 2、解压 jboss-...

zhangdiandong ⋅ 2014/08/18 ⋅ 0

【Ovirt 笔记】engine 用户扩展管理分析与整理

文前说明 作为码农中的一员,需要不断的学习,我工作之余将一些分析总结和学习笔记写成博客与大家一起交流,也希望采用这种方式记录自己的学习之旅。 本文仅供学习交流使用,侵权必删。 不用...

羽杰 ⋅ 06/13 ⋅ 0

Idea + jboss 4.0

IntelliJ IDEA + jboss 4.0启动报错,修改端口也没有用,已设置“shutdown script”为“E:spsoftptxjbossbinshutdown.bat -s jnp://localhost:8080 -S”,其它地方的端口也改成了“8080” Er...

Jerry2fish ⋅ 04/18 ⋅ 0

Hibernate Search 5.10.0.Beta2 发布,数据检索框架

Hibernate Search 5.10.0.Beta1 已发布,这是 5.10 分支的第二个测试版本,此版本主要包括升级到适用于JBoss模块的WildFly 12,但它也增加了一些错误修正和改进。 以下是自Hibernate Search ...

周其 ⋅ 04/16 ⋅ 0

在eclipse使用jboss6.1+部署项目后war包中无.class文件,有包路径和配置文件 [

在eclipse中导入项目(一个在其他环境可以正常部署的项目)之后,直接使用Jboss6.1部署,可以部署成功,一切正常。 在project->clean...清除缓存之后重新部署,服务器上的war包中就没有.clas...

神奇巴士 ⋅ 06/17 ⋅ 0

jboss规则引擎KIE Drools 6.3.0-集群篇

DROOLS集群的原理 Drools集群是架设在jboss集群之上的 Drools集群其实是WorkBench(WB)间的集群 KIE SERVER是JSON服务,它是架设在WB上的,一个WB可以挂1个、多个KIE SERVER WB除了HTTP间的...

lifetragedy ⋅ 2017/07/04 ⋅ 0

访问controller方法时报错:java.lang.NoSuchMethodError: javax.servlet.http.HttpServletResponse.getHeader(

Controller方法: 用jetty插件启动工程 点击run ,访问Controller 的export方法报错: 我的JAVA EE API版本: 我的jetty插件版本 解决办法(任意选一个即可): 1)、退回到Spring V4.0.7 2)、升...

沧海一刀 ⋅ 04/18 ⋅ 0

java.lang.AbstractMethodError: javax.ws.rs.core.UriBuilder.uri(Ljava/lang/String;)Ljavax/ws/rs/core/

java.lang.AbstractMethodError: javax.ws.rs.core.UriBuilder.uri(Ljava/lang/String;)Ljavax/ws/rs/core/UriBuilder; JAX-RS 1”,而jersey2中使用的是“JAX-RS 2” 找下项目中,是否存在“......

gsying1474 ⋅ 2017/01/09 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

windows profesional 2017 build problem

.net framework .... https://stackoverflow.com/questions/43330915/could-not-load-file-or-assembly-microsoft-build-frameworkvs-2017...

机油战士 ⋅ 14分钟前 ⋅ 0

python3中报错的解决方法(长期更新)

1、ImportError: No module named ‘DjangoUeditor’ 出错原因:安装DjangoUeditor库适用于python2,需要下载适用python3的 下载地址:https://github.com/twz915/DjangoUeditor3 2、python3......

xiaoge2016 ⋅ 19分钟前 ⋅ 0

数据结构与算法之双向链表

一、双向链表 1.双向链表的结点结构 typedef struct DualNode{ ElemType data; struct DualNode *prior; // 前驱结点 struct DualNode *next; // 后继结点}DualNode, *DuL...

aibinxiao ⋅ 39分钟前 ⋅ 0

五大最核心的大数据技术

大数据技术有5个核心部分,数据采集、数据存储、数据清洗、数据挖掘、数据可视化。关于这5个部分,有哪些核心技术?这些技术有哪些潜在价值?看完今天的文章就知道了。 大数据学习群:7165810...

董黎明 ⋅ 40分钟前 ⋅ 0

PhpStorm 头部注释、类注释和函数注释的设置

首先,PhpStorm中文件、类、函数等注释的设置在:setting-》Editor-》FIle and Code Template-》Includes下设置即可,其中方法的默认是这样的: /**${PARAM_DOC}#if (${TYPE_HINT} != "v...

nsns ⋅ 40分钟前 ⋅ 0

spring.net AOP

http://www.springframework.net/doc-latest/reference/html/aop-quickstart.html https://www.cnblogs.com/wujy/archive/2013/04/06/3003120.html...

whoisliang ⋅ 45分钟前 ⋅ 0

【HAVENT原创】创建 Dockerfile 生成新的镜像,并发布到 DockerHub

注意:Win7 与 Win10 的版本存在差异,Win7 版本使用 Docker Quickstart Terminal 进入控制台,Win10下面直接用管理员权限打开控制台或者 PowerShell 即可;另外 Win7 下面只能访问 C盘,/ap...

HAVENT ⋅ 45分钟前 ⋅ 0

pom.xml出现web.xml is missing ...解决方案

提示信息应该能看懂。也就是缺少了web.xml文件,<failOnMissingWebXml>被设置成true了。 搜索了一下,Stack Overflow上的答案解决了问题,分享一下。 目前被顶次数最多的回答原文如下: This...

源哥L ⋅ 46分钟前 ⋅ 0

js时间戳与日期格式之间相互转换

1. 将时间戳转换成日期格式 1 2 3 4 5 6 7 8 9 10 11 12 13 14 // 简单的一句代码 var date = new Date(时间戳); //获取一个时间对象 /** 1. 下面是获取时间日期的方法,需要什么样的格式自己...

Jack088 ⋅ 51分钟前 ⋅ 0

web添加log4j

添加xml配置log4j.properties # Global logging configuration---root日志设置#log4j.rootLogger=info,dailyRollingFile,stdoutlog4j.rootLogger=debug,stdout,dailyRollingFile---......

黄柳淞 ⋅ 52分钟前 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部