使用Ant生成JBoss上部署项目的脚本
用Ant脚本打包部署项目,生成Jboss上部署后的文件信息.(跟MyEclipse部署到Jboss的效果一样)
搞了一天多..Ant不是很熟..贴个备忘下..
1 2 3 4 5 6 | svn.lib.path=../../lib svn.dist.path=../../dist svn.target.lib=${svn.dist.path}/lib svn.target.deploy=${svn.dist.path}/deploy target.war.file=${svn.target.deploy}/EFrameWeb.war busi.jars=e_workflowclient.jar,jbpmengineclient.jar |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 | < project basedir = "." default = "deploy" name = "EFrameWeb" > < property environment = "env" /> <!-- 引用属性文件的属性定义 --> < property file = "build.properties" /> < property name = "debuglevel" value = "source,lines,vars" /> < property name = "target" value = "1.6" /> < property name = "source" value = "1.6" /> <!-- 定义WebRoot路径 --> < property name = "WebRoot.dir" value = "${basedir}/WebRoot" /> <!-- 定义编译路径 --> < property name = "compile.dir" value = "${WebRoot.dir}/WEB-INF/classes" /> <!-- 定义源代码路径 --> < property name = "src.dir" value = "${basedir}/src" /> <!-- 定义项目所用到的其他包 --> < property name = "lib.dir" value = "${WebRoot.dir}/WEB-INF/lib" /> <!-- 定义生成的war包的classes路径 --> < property name = "target.war.file.classes" value = "${target.war.file}/WEB-INF/classes" /> <!-- 定义生成的war包的lib路径--> < property name = "target.war.file.lib" value = "${target.war.file}/WEB-INF/lib" /> < path id = "appAPI.classpath" > <!-- 包含项目中涉及到的业务包和工具包 --> < fileset dir = "${svn.target.lib}" > < include name = "**/*.jar" /> </ fileset > <!-- 包含项目中涉及到第三方开源包 --> < fileset dir = "${svn.lib.path}" > < include name = "**/*.jar" /> </ fileset > <!-- 包含存在项目自身lib目录下的包 --> < fileset dir = "${lib.dir}" > < include name = "**/*.jar" /> </ fileset > </ path > < target name = "clean" > < delete dir = "${compile.dir}" /> < delete dir = "${target.war.file}/" /> </ target > < target name = "init" depends = "clean" > < mkdir dir = "${target.war.file}" /> < mkdir dir = "${compile.dir}" /> <!-- 属性信息 --> < echo message = "${ant.project.name}: ${ant.file}" /> <!-- 编译程序 --> < javac debug = "true" includeantruntime = "false" debuglevel = "${debuglevel}" encoding = "GBK" destdir = "${compile.dir}" source = "${source}" target = "${target}" > < src path = "${src.dir}" /> < classpath refid = "appAPI.classpath" /> </ javac > <!-- 拷贝WebRoot下的东西 --> < copy includeemptydirs = "false" todir = "${target.war.file}" > < fileset dir = "${WebRoot.dir}" > < exclude name = "**/.svn" /> < exclude name = "**/*.launch" /> </ fileset > </ copy > <!-- 拷贝项目classses非编译文件 --> < copy includeemptydirs = "false" todir = "${target.war.file.classes}" > < fileset dir = "${src.dir}" > < exclude name = "**/*.launch" /> < exclude name = "**/*.java" /> < exclude name = "**/.svn" /> </ fileset > </ copy > <!-- 拷贝项目所依赖的业务包 --> < copy includeemptydirs = "false" todir = "${target.war.file.lib}" > < fileset dir = "${svn.target.lib}" includes = "${busi.jars}" /> </ copy > </ target > < target name = "deploy" depends = "init" ></ target > </ project > |
关于Jboss4.3只能通过localhost访问不能通过IP访问的解决方法。
超郁闷的,搞了一个下午。来看看问题描述:
做两个东东之间实现对发的东西,结果总是报java.net.ConnectException: Connection refused: connect的错误,原先是Servlet地址有误,但是实在不知道是哪儿错了,于是就用IE访问了下,发现显示“网页无法显示”,难怪发数据给Servlet不成功,后来百度了许久,才发现原来Jboss4.3默认是不支持IP访问的,便得到方法:
方法一:如果你是用MyEclipse为开发工具的话,按照如下地址进行解决(还有以前有记录,换了个工作空间就忘记配置了,囧~~)http://cst.is-programmer.com/posts/16109.html
方法二:在你的Jboss中打开server\default\deploy\jboss-web.deployer\server.xml这个文件,把Connector结点的address地址改成0.0.0.0或者你自己的IP就可以了..
JBoss下的log4j 配置
搞了一个上午~~终于在Jboss下成功的将想要的信息写到文件里去了~~
贴个相关配置以及解释~~
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 | <!-- ### ### 输出方式是 文件 的形式输出 DailyRollingFileAppender 是每天一个文件 ### 拓展:log4j输出方式有5种,分别是: ### 1.org.apache.log4j.ConsoleAppender(控制台) ### 2.org.apache.log4j.FileAppender(文件) ### 3.org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件) ### 4.org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方) ### 5.org.apache.log4j.RollingFileAppender(每次都产生一个日志文件) ### --> < appender name = "FileRequest" class = "org.jboss.logging.appender.DailyRollingFileAppender" > < errorHandler class = "org.jboss.logging.util.OnlyOnceErrorHandler" /> <!-- ### 指定文件的路径 --> < param name = "File" value = "${jboss.server.log.dir}/sendRequest.log" /> <!-- ### 在重启服务时,设置是否往原有记录继续添加. ### true:继续添加 false:删除掉原来的再添加 --> < param name = "Append" value = "false" /> <!-- ### 类似于过滤器,把低于指定日志级别的日志不显示出来 ### 日志级别从高到低:OFF > FATAL > ERROR > WARN > INFO > DEBUG > ALL --> < param name = "Threshold" value = "DEBUG" /> <!-- Rollover at midnight each day --> < param name = "DatePattern" value = "'.'yyyy-MM-dd" /> <!-- ### 配置日志的输出格式 ###%m 输出代码中指定的消息 ###%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL ###%r 输出自应用启动到输出该log信息耗费的毫秒数 ###%c 输出所属的类目,通常就是所在类的全名 ###%t 输出产生该日志事件的线程名 ###%n 输出一个回车换行符 ###%d 输出日志时间点的日期或时间{yyyy-MM-dd HH:mm:ss,SSS} ###%l 输出日志事件的发生位置,包括类目名|发生线程|在代码中的行数 --> < layout class = "org.apache.log4j.PatternLayout" > < param name = "ConversionPattern" value = "%d{HH:mm:ss} %m%n" /> </ layout > </ appender > <!-- ### 定义日志名 ### additivity 是设置是否继承标志父类输出源的标志 ### true:会在父输出源中输出 false:只会在自己定义的输出源输出--> < category name = "com.shine.proxy.SendRequest" additivity = "false" > <!-- ###定义输出级别 --> < priority value = "DEBUG" /> <!-- ###定义引用的Appender --> < appender-ref ref = "FileRequest" /> </ category > <!-- ### 对于上一段,还可以有如下写法: <logger name="com.shine.proxy.SendRequest" additivity="false"> <level value="DEBUG" /> <appender-ref ref="FileRequest"/> </logger> --> |
英文操作系统Windows上Jboss控制台显示中文问题
在公司的服务器上(英文版widows Server 2003)跑Jboss(即运行run.bat)
因为日志输入带有中文日志,所以在显示的时候 显示乱码,榕哥找到的方法:解决方法如下:
在Jboss的run.bat文件中,编辑在设置Java参数(即SET_OPTS)后面加
-Ddefault.client.encoding=GBK -Dfile.encoding=GBK -Duser.language=Zh
样例如下:
1 2 | set JAVA_OPTS=%JAVA_OPTS% -Xms512m -Xmx1024m -XX:MaxPermSize=256m -Ddefault.client.encoding=GBK -Dfile.encoding=GBK -Duser.language=Zh -server |
MyEclipse中Jboss启动出现Java heap space解决方案
今日,在自己的电脑上跑公司的平台,在MyEclipse中启动JBOSS,结果报:
java.lang.OutOfMemoryError: Java heap space 异常,用jboss中的run.bat启动,则正常运行,而在MyEclipse中启动就报异常,百度之~~得解:
原因是对于很大的Web工程(公司的这个平台确实够大),jboss默认分配空间无法启动,因此出现了内存溢出,因此需要去设置Java虚拟机的堆栈大小,
所以解决方法如下:
1.设置环境变量:set JAVA_OPTS= -Xms512m -Xmx1024m
但是如果在MyEclipse中启动Jboss的话还要进行如下操作:
window>>preferences>>MyEclipse>>Application Servers>>JBoss>>JBoss x.x>>JDK中的【Optional Java VM arguments】中添加如下字符串:
-Xmx1024M -Xms512M -XX:MaxPermSize=256m
点击OK即可解决~~(偶是这么解决的~~)
如图:
如果还不行,继续如下操作:(良哥教的~~)
window>>preferences>>MyEclipse>>Application Servers>>JBoss>>JBoss x.x中的【Optional program arguments】中添加如下字符串:
-c default -b 0.0.0.0
如图: