使用Ant生成JBoss上部署项目的脚本
用Ant脚本打包部署项目,生成Jboss上部署后的文件信息.(跟MyEclipse部署到Jboss的效果一样)
搞了一天多..Ant不是很熟..贴个备忘下..
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
<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下成功的将想要的信息写到文件里去了~~
贴个相关配置以及解释~~
<!-- ### ### 输出方式是 文件 的形式输出 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
样例如下:
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
如图: