﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>语源科技BlogJava-雪山飞鹄</title><link>http://www.blogjava.net/sxyx2008/</link><description>温馨提示：您的每一次转载,体现了我写此文的意义!!!烦请您在转载时注明出处http://www.blogjava.net/sxyx2008/谢谢合作!!!
</description><language>zh-cn</language><lastBuildDate>Tue, 21 Apr 2026 06:41:59 GMT</lastBuildDate><pubDate>Tue, 21 Apr 2026 06:41:59 GMT</pubDate><ttl>60</ttl><item><title>基于maven的多框架和多视图融合技术(Struts1、Struts2、Spring、SpringMVC、Hibernate、Ibatis、MyBatis、Spring Data JPA、DWR)</title><link>http://www.blogjava.net/sxyx2008/archive/2012/09/25/388490.html</link><dc:creator>雪山飞鹄</dc:creator><author>雪山飞鹄</author><pubDate>Tue, 25 Sep 2012 03:40:00 GMT</pubDate><guid>http://www.blogjava.net/sxyx2008/archive/2012/09/25/388490.html</guid><wfw:comment>http://www.blogjava.net/sxyx2008/comments/388490.html</wfw:comment><comments>http://www.blogjava.net/sxyx2008/archive/2012/09/25/388490.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/sxyx2008/comments/commentRss/388490.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sxyx2008/services/trackbacks/388490.html</trackback:ping><description><![CDATA[<p style="text-align: left; padding-bottom: 0px; widows: 2; text-transform: none; background-color: #ffffff; text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/26px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: #000000; word-spacing: 0px; padding-top: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">该项目基于maven3.0构建的，项目中融合了Struts1、Struts2、Spring、SpringMVC、Hibernate、Ibatis、MyBatis、Spring Data JPA、Spring JDBC、Spring DWR。页面展现这里使用Struts1、Struts2、SpringMVC（jsp视图、velocity视图、freemarker视图、pdf视图、excel视图、xml视图、json视图等）。是一个综合性行的项目。该项目后期会陆续集成Spring的一些好的框架进来比如说Spring Web Flow、Spring Security 、Jbpm、WebService、Compass、Solr、nutch等。总之是一个综合性的项目。该项目不处理业务，主要是把目前自己工作中用到过的各种框架糅合到一个项目中。纯粹是一个jee框架的糅合，主要是介绍各种技术。</p>
<p style="text-align: left; padding-bottom: 0px; widows: 2; text-transform: none; background-color: #ffffff; text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/26px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: #000000; word-spacing: 0px; padding-top: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">介绍下目前使用的各个框架的版本信息</p>
<p style="text-align: left; padding-bottom: 0px; widows: 2; text-transform: none; background-color: #ffffff; text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/26px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: #000000; word-spacing: 0px; padding-top: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"></p>
<p style="text-align: left; padding-bottom: 0px; widows: 2; text-transform: none; background-color: #ffffff; text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/26px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: #000000; word-spacing: 0px; padding-top: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">Struts1 1.3.10</p>
<p style="text-align: left; padding-bottom: 0px; widows: 2; text-transform: none; background-color: #ffffff; text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/26px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: #000000; word-spacing: 0px; padding-top: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">Struts2 2.3.8</p>
<p style="text-align: left; padding-bottom: 0px; widows: 2; text-transform: none; background-color: #ffffff; text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/26px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: #000000; word-spacing: 0px; padding-top: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">Spring 3.2.0.RELEASE</p>
<p style="text-align: left; padding-bottom: 0px; widows: 2; text-transform: none; background-color: #ffffff; text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/26px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: #000000; word-spacing: 0px; padding-top: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">Hibernate 4.2.0.Final</p>
<p style="text-align: left; padding-bottom: 0px; widows: 2; text-transform: none; background-color: #ffffff; text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/26px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: #000000; word-spacing: 0px; padding-top: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">Ibatis 2.3.4.726</p>
<p style="text-align: left; padding-bottom: 0px; widows: 2; text-transform: none; background-color: #ffffff; text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/26px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: #000000; word-spacing: 0px; padding-top: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">MyBatis 3.1.1</p>
<p style="text-align: left; padding-bottom: 0px; widows: 2; text-transform: none; background-color: #ffffff; text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/26px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: #000000; word-spacing: 0px; padding-top: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">Spring Data JPA 1.3.0.RELEASE</p>
<p style="text-align: left; padding-bottom: 0px; widows: 2; text-transform: none; background-color: #ffffff; text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/26px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: #000000; word-spacing: 0px; padding-top: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">DWR 3.0.M1</p>
<p style="text-align: left; padding-bottom: 0px; widows: 2; text-transform: none; background-color: #ffffff; text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/26px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: #000000; word-spacing: 0px; padding-top: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"></p>
<p style="text-align: left; padding-bottom: 0px; widows: 2; text-transform: none; background-color: #ffffff; text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/26px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: #000000; word-spacing: 0px; padding-top: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">项目中的持久化框架sql语句的跟踪采用了log4jdbc4结合log4j，在控制台可以看到完整的sql语句。</p>
<p style="text-align: left; padding-bottom: 0px; widows: 2; text-transform: none; background-color: #ffffff; text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/26px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: #000000; word-spacing: 0px; padding-top: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">该项目中使用到的技术均与Spring已集成。除了DWR与Spring集成使用xml文件中配置bean外 其他的bean均使用注解完善。每一个与数据库有关的都有事务处理。</p>
<p style="text-align: left; padding-bottom: 0px; widows: 2; text-transform: none; background-color: #ffffff; text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/26px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: #000000; word-spacing: 0px; padding-top: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">项目结构图</p>
<p style="text-align: left; padding-bottom: 0px; widows: 2; text-transform: none; background-color: #ffffff; text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/26px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: #000000; word-spacing: 0px; padding-top: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"><img style="border-bottom: medium none; border-left: medium none; border-top: medium none; border-right: medium none" alt="" src="https://maven-framework-project.googlecode.com/files/project-map.jpg" /><br />
</p>
<p style="text-align: left; padding-bottom: 0px; widows: 2; text-transform: none; background-color: #ffffff; text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/26px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: #000000; word-spacing: 0px; padding-top: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"><span style="orphans: auto; widows: auto;">项目托管SVN地址：</span><a href="http://maven-framework-project.googlecode.com/svn/trunk/" style="color: #ca0000; text-decoration: none; orphans: auto; widows: auto;">http://maven-framework-project.googlecode.com/svn/trunk/</a>&nbsp;<span style="orphans: auto; widows: auto; color: #ff0000;">(限于大陆google code 不稳定,导致经常无法访问,该地址已不在同步,建议使用github地址)</span><br style="orphans: auto; widows: auto;" />
<span style="orphans: auto; widows: auto;">项目托管GitHub地址：</span><a href="https://github.com/sxyx2008/maven-framework-project/" style="color: #ca0000; text-decoration: none; orphans: auto; widows: auto;">https://github.com/sxyx2008/maven-framework-project/</a><span style="orphans: auto; widows: auto; color: #ff0000;">（推荐使用）</span><br />
</p>
<p style="text-align: left; padding-bottom: 0px; widows: 2; text-transform: none; background-color: #ffffff; text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/26px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: #000000; word-spacing: 0px; padding-top: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">最后希望有兴趣的朋友可以加入进来，大家一起完善他。把自己的技术分享出来。如有任何问题可以与我联系</p>
<p style="text-align: left; padding-bottom: 0px; widows: 2; text-transform: none; background-color: #ffffff; text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/26px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: #000000; word-spacing: 0px; padding-top: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">联系方式</p>
<p style="text-align: left; padding-bottom: 0px; widows: 2; text-transform: none; background-color: #ffffff; text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/26px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: #000000; word-spacing: 0px; padding-top: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">QQ：184675420</p>
<p style="text-align: left; padding-bottom: 0px; widows: 2; text-transform: none; background-color: #ffffff; text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/26px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: #000000; word-spacing: 0px; padding-top: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">Email：sxyx2008@gmail.com</p><img src ="http://www.blogjava.net/sxyx2008/aggbug/388490.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sxyx2008/" target="_blank">雪山飞鹄</a> 2012-09-25 11:40 <a href="http://www.blogjava.net/sxyx2008/archive/2012/09/25/388490.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>使用Ant构建web项目 从编译到测试 生成测试报告 打包 邮件发送 远程下载tomcat 部署运行一条龙服务之ant脚本</title><link>http://www.blogjava.net/sxyx2008/archive/2012/09/05/387111.html</link><dc:creator>雪山飞鹄</dc:creator><author>雪山飞鹄</author><pubDate>Wed, 05 Sep 2012 08:26:00 GMT</pubDate><guid>http://www.blogjava.net/sxyx2008/archive/2012/09/05/387111.html</guid><wfw:comment>http://www.blogjava.net/sxyx2008/comments/387111.html</wfw:comment><comments>http://www.blogjava.net/sxyx2008/archive/2012/09/05/387111.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/sxyx2008/comments/commentRss/387111.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sxyx2008/services/trackbacks/387111.html</trackback:ping><description><![CDATA[<div>build.xml</div><div>&lt;?xml version="1.0" encoding="UTF-8"?&gt;<br />&lt;project default="run" name="build-project-with-ant"&gt;<br />&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp; &nbsp;&lt;!-- 最终编译后的jar包名称 --&gt;<br />&nbsp;&nbsp; &nbsp;&lt;property name="jar.prefix-name" value="cms"&gt;&lt;/property&gt;<br />&nbsp;&nbsp; &nbsp;&lt;property name="jar.version" value="1.0"&gt;&lt;/property&gt;<br />&nbsp;&nbsp; &nbsp;&lt;property name="tomcat.version" value="6.0.18" /&gt;<br />&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp; &nbsp;&lt;property name="mailhost" value="smtp.qq.com"&gt;&lt;/property&gt;<br />&nbsp;&nbsp; &nbsp;&lt;property name="username" value="**********" /&gt;<br />&nbsp;&nbsp; &nbsp;&lt;property name="password" value="**********"&gt;&lt;/property&gt;<br />&nbsp;&nbsp; &nbsp;&lt;property name="mailfrom" value="184675420@qq.com" /&gt;<br />&nbsp;&nbsp; &nbsp;&lt;property name="mailto" value="184675420@qq.com"&gt;&lt;/property&gt;<br />&nbsp;&nbsp; &nbsp;&lt;property name="mailsubject" value="使用Ant自助构建项目测试打包文档"&gt;&lt;/property&gt;<br />&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp; &nbsp;&lt;!-- 项目构建时所需要的lib --&gt;<br />&nbsp;&nbsp; &nbsp;&lt;property name="project.lib.dir" value="${basedir}/WebRoot/WEB-INF/lib"&gt;&lt;/property&gt;<br /><br />&nbsp;&nbsp; &nbsp;&lt;!-- 项目构建时tomcat的home目录 --&gt;<br />&nbsp;&nbsp; &nbsp;&lt;property name="tomcat.download.url" value="http://archive.apache.org/dist/tomcat/tomcat-6/v${tomcat.version}/bin/apache-tomcat-${tomcat.version}.zip"&gt;&lt;/property&gt;<br />&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp; &nbsp;&lt;!-- 项目构建时下载tomcat的存放目录 --&gt;<br />&nbsp;&nbsp; &nbsp;&lt;property name="tomcat.dir" value="${basedir}/dist/"&gt;&lt;/property&gt;<br />&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp; &nbsp;&lt;!-- 定义项目的当前目录 --&gt;<br />&nbsp;&nbsp; &nbsp;&lt;property name="basedir" value="."/&gt;<br />&nbsp;&nbsp; &nbsp;&lt;!-- 定义项目源码目录 --&gt;<br />&nbsp;&nbsp; &nbsp;&lt;property name="src.dir" value="${basedir}/src"&gt;&lt;/property&gt;<br />&nbsp;&nbsp; &nbsp;&lt;!-- 定义项目源码编译后的目录 --&gt;<br />&nbsp;&nbsp; &nbsp;&lt;property name="build.dir" value="${basedir}/classes"&gt;&lt;/property&gt;<br />&nbsp;&nbsp; &nbsp;&lt;!-- 定义项目最终编译生成的目录 --&gt;<br />&nbsp;&nbsp; &nbsp;&lt;property name="dist.dir" value="${basedir}/dist"&gt;&lt;/property&gt;<br />&nbsp;&nbsp; &nbsp;&lt;!-- 定义项目文档的目录 --&gt;<br />&nbsp;&nbsp; &nbsp;&lt;property name="doc.dir" value="${basedir}/doc"&gt;&lt;/property&gt;<br />&nbsp;&nbsp; &nbsp;&lt;!-- 定义项目文档api的目录 --&gt;<br />&nbsp;&nbsp; &nbsp;&lt;property name="doc.dir.api" value="${doc.dir}/api"&gt;&lt;/property&gt;<br />&nbsp;&nbsp; &nbsp;&lt;!-- 定义项目单元测试文档的目录 --&gt;<br />&nbsp;&nbsp; &nbsp;&lt;property name="junit.doc.dir" value="${basedir}/doc/api/junit"&gt;&lt;/property&gt;<br />&nbsp;&nbsp; &nbsp;&lt;!-- 定义项目单元测试源码的目录 --&gt;&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp; &nbsp;&lt;property name="junit.src.dir" value="${basedir}/test"&gt;&lt;/property&gt;<br />&nbsp;&nbsp; &nbsp;&lt;!-- 定义项目单元测试编译的目录 --&gt;&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp; &nbsp;&lt;property name="junit.dir" value="${basedir}/junit"&gt;&lt;/property&gt;<br />&nbsp;&nbsp; &nbsp;&lt;property name="junit.build.dir" value="${junit.dir}/classes"&gt;&lt;/property&gt;<br />&nbsp;&nbsp; &nbsp;&lt;!-- 定义项目单元测试测试报告的目录 --&gt;&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp; &nbsp;&lt;property name="junit.report.dir" value="${junit.dir}/report"&gt;&lt;/property&gt;<br />&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp; &nbsp;&lt;target name="init" description="init"&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;echo&gt;项目初始化设置&lt;/echo&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;delete dir="${build.dir}"&gt;&lt;/delete&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;delete dir="${dist.dir}"&gt;&lt;/delete&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;delete dir="${doc.dir}"&gt;&lt;/delete&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;delete dir="${junit.dir}"&gt;&lt;/delete&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;mkdir dir="${build.dir}"/&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;mkdir dir="${dist.dir}"/&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;mkdir dir="${doc.dir}"/&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;mkdir dir="${junit.build.dir}"/&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;mkdir dir="${junit.report.dir}"/&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp; &nbsp;&lt;/target&gt;<br />&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp; &nbsp;&lt;target name="compile" depends="init" description="compile source"&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;echo&gt;编译源码&lt;/echo&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;javac srcdir="${src.dir}" includeantruntime="false" destdir="${build.dir}" verbose="true"&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;classpath&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;fileset dir="${project.lib.dir}"&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;include name="*.jar"/&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &lt;/fileset&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;/classpath&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;/javac&gt;<br />&nbsp;&nbsp; &nbsp;&lt;/target&gt;<br /><br /><br />&nbsp;&nbsp; &nbsp;&lt;target name="api-doc" depends="compile" description="build javadoc"&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;echo&gt;生成api-doc帮助文档&lt;/echo&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;javadoc<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; destdir="${doc.dir.api}"<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; author="true"<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; version="true"<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; use="true"<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; windowtitle="${jar.prefix-name} API"<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; sourcepath="${src.dir}"&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;doctitle&gt;&lt;![CDATA[&lt;h1&gt;Test&lt;/h1&gt;]]&gt;&lt;/doctitle&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;bottom&gt;&lt;![CDATA[&lt;i&gt;Copyright &#169; 2012 Dummy Corp. All Rights Reserved.&lt;/i&gt;]]&gt;&lt;/bottom&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;classpath&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;fileset dir="${project.lib.dir}"&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;include name="*.jar"/&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &lt;/fileset&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;/classpath&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;/javadoc&gt;<br />&nbsp;&nbsp; &nbsp;&lt;/target&gt;<br />&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp; &nbsp;&lt;target name="junit-javac" depends="api-doc" description="junit test case compile"&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;echo&gt;编译junit&lt;/echo&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;javac destdir="${junit.build.dir}" srcdir="${junit.src.dir}" fork="false" includeantruntime="false"&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;classpath&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;fileset dir="${project.lib.dir}"&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;include name="*.jar"/&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &lt;/fileset&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;/classpath&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;/javac&gt;<br />&nbsp;&nbsp; &nbsp;&lt;/target&gt;<br />&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp; &nbsp;&lt;target name="junit-run" depends="junit-javac" description="junit test case execute"&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;echo&gt;运行单元测试&lt;/echo&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;junit printsummary="yes" haltonfailure="false"&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;classpath&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;pathelement location="${junit.build.dir}"/&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;fileset dir="${project.lib.dir}"&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;include name="*.jar"/&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &lt;/fileset&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;/classpath&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;formatter type="xml"/&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;batchtest todir="${junit.report.dir}"&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;fileset dir="${junit.src.dir}"&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;include name="**/*Test.java"/&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;/fileset&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;/batchtest&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;/junit&gt;<br />&nbsp;&nbsp; &nbsp;&lt;/target&gt;<br />&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp; &nbsp;&lt;target name="junit-report" depends="junit-run" description="junit test case report"&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;echo&gt;生成单元测试报告&lt;/echo&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;junitreport todir="${junit.report.dir}"&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;fileset dir="${junit.report.dir}"&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;include name="**/*.xml"/&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;/fileset&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;report format="frames" todir="${junit.report.dir}/html"/&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;/junitreport&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp; &nbsp;&lt;/target&gt;<br />&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp; &nbsp;&lt;target name="junit-doc" depends="junit-report" description="build javadoc"&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;echo&gt;生成junit-doc帮助文档&lt;/echo&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;javadoc<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; destdir="${junit.doc.dir}"<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; author="true"<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; version="true"<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; use="true"<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; windowtitle="Junit Test API"<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; sourcepath="${junit.src.dir}"&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;classpath&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;fileset dir="${project.lib.dir}"&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;include name="*.jar"/&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &lt;/fileset&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;/classpath&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;doctitle&gt;&lt;![CDATA[&lt;h1&gt;Test&lt;/h1&gt;]]&gt;&lt;/doctitle&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;bottom&gt;&lt;![CDATA[&lt;i&gt;Copyright &#169; 2012 Dummy Corp. All Rights Reserved.&lt;/i&gt;]]&gt;&lt;/bottom&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;/javadoc&gt;<br />&nbsp;&nbsp; &nbsp;&lt;/target&gt;<br />&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp; &nbsp;&lt;target name="package" depends="api-doc" description="package"&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;echo&gt;使用jar打包编译后的class文件&lt;/echo&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;jar destfile="${dist.dir}/${jar.prefix-name}-${jar.version}.jar" includes="**/*.class" basedir="${build.dir}"&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;/jar&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;echo&gt;使用zip打包源码&lt;/echo&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;zip destfile="${dist.dir}/${jar.prefix-name}-source.zip" basedir="${src.dir}"&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;exclude name="**/*.class"/&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;/zip&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;echo&gt;使用zip打包javadoc&lt;/echo&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;zip destfile="${dist.dir}/${jar.prefix-name}-doc.zip" basedir="${doc.dir.api}"&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;/zip&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;echo&gt;使用war打war包&lt;/echo&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;war destfile="${dist.dir}/${jar.prefix-name}.war" webxml="${basedir}/WebRoot/WEB-INF/web.xml"&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;fileset dir="${basedir}/WebRoot"&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;include name="**/*.*"/&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;/fileset&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;!--<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;lib dir="${basedir}/WebRoot/WEB-INF/lib"&gt;&lt;/lib&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;classes dir="${basedir}/WebRoot/WEB-INF/classes"&gt;&lt;/classes&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;--&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;/war&gt;<br />&nbsp;&nbsp; &nbsp;&lt;/target&gt;<br />&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp; &nbsp;&lt;target name="junit-package" depends="junit-doc" description="junit-package"&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;echo&gt;打包&lt;/echo&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;echo&gt;使用jar打包编译后的class文件&lt;/echo&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;jar destfile="${dist.dir}/${jar.prefix-name}-${jar.version}.jar" includes="**/*.class" basedir="${build.dir}"&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;/jar&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;echo&gt;使用zip打包源码&lt;/echo&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;zip destfile="${dist.dir}/${jar.prefix-name}-source.zip" basedir="${src.dir}"&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;exclude name="**/*.class"/&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;/zip&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;echo&gt;使用zip打包javadoc&lt;/echo&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;zip destfile="${dist.dir}/${jar.prefix-name}-doc.zip" basedir="${doc.dir.api}"&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;/zip&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;echo&gt;使用war打war包&lt;/echo&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;war destfile="${dist.dir}/${jar.prefix-name}.war" webxml="${basedir}/WebRoot/WEB-INF/web.xml"&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;fileset dir="${basedir}/WebRoot"&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;include name="**/*.*"/&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;/fileset&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;!--<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;lib dir="${basedir}/WebRoot/WEB-INF/lib"&gt;&lt;/lib&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;classes dir="${basedir}/WebRoot/WEB-INF/classes"&gt;&lt;/classes&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;--&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;/war&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;echo&gt;使用jar打junit单元测试编译好的class文件&lt;/echo&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;jar destfile="${dist.dir}/${jar.prefix-name}-junit-${jar.version}.jar" includes="**/*.class" basedir="${junit.build.dir}"&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;/jar&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;echo&gt;使用zip打junit单元测试源文件&lt;/echo&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;zip destfile="${dist.dir}/${jar.prefix-name}-junit-source.zip" basedir="${junit.src.dir}"&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;exclude name="**/*.class"/&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;/zip&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;echo&gt;使用zip打junit单元测试测试报告&lt;/echo&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;zip destfile="${dist.dir}/junit-report.zip" basedir="${junit.report.dir}/html"&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;/zip&gt;<br />&nbsp;&nbsp; &nbsp;&lt;/target&gt;<br />&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp; &nbsp;&lt;target name="clean"&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;echo&gt;清理项目&lt;/echo&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;delete dir="${build.dir}" includeemptydirs="true"&gt;&lt;/delete&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;delete dir="${doc.dir}" includeemptydirs="true"&gt;&lt;/delete&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;delete dir="${junit.dir}" includeemptydirs="true"&gt;&lt;/delete&gt;<br />&nbsp;&nbsp; &nbsp;&lt;/target&gt;<br />&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp; &nbsp;&lt;target name="mail"&nbsp; description="use java mail send mail message" depends="clean"&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;echo&gt;将打包的文件email发送&lt;/echo&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;mail <br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;mailhost="${mailhost}" <br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;mailport="25" <br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;subject="${mailsubject}" &nbsp;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;charset="utf-8"<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;user="${username}"<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;password="${password}"<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &lt;from address="${mailfrom}"/&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &lt;to address="${mailto}"/&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &lt;message&gt;使用Ant自助构建项目测试打包文档&lt;/message&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &lt;attachments&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &lt;fileset dir="${dist.dir}"&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;include name="*.*"/&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &lt;/fileset&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &lt;/attachments&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;/mail&gt;<br />&nbsp;&nbsp; &nbsp;&lt;/target&gt;<br />&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp; &nbsp;&lt;target name="wget" depends="mail"&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;echo&gt;下载tomcat&lt;/echo&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;get dest="${tomcat.dir}" verbose="true"&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &lt;url url="${tomcat.download.url}"/&gt; <br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;/get&gt;<br />&nbsp;&nbsp; &nbsp;&lt;/target&gt;<br />&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp; &nbsp;&lt;target name="unzip" depends="wget"&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;echo&gt;解压tomcat&lt;/echo&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;unzip src="${tomcat.dir}/apache-tomcat-${tomcat.version}.zip" dest="${tomcat.dir}"&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;/unzip&gt;<br />&nbsp;&nbsp; &nbsp;&lt;/target&gt;<br />&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp; &nbsp;&lt;target name="copy" depends="unzip"&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;echo&gt;拷贝war包到tomcat中部署&lt;/echo&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &lt;copy file="${dist.dir}/${jar.prefix-name}.war" tofile="${tomcat.dir}/apache-tomcat-${tomcat.version}/webapps/${jar.prefix-name}.war"/&gt;<br />&nbsp;&nbsp; &nbsp;&lt;/target&gt;<br />&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp; &nbsp;&lt;target name="startup" depends="copy"&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;echo&gt;启动tomcat web容器&lt;/echo&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;exec executable="${tomcat.dir}/apache-tomcat-${tomcat.version}/bin/startup.bat"&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &lt;env key="CATALINA_HOME" path="${tomcat.dir}/apache-tomcat-${tomcat.version}/"/&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;/exec&gt;<br />&nbsp;&nbsp; &nbsp;&lt;/target&gt;<br />&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp; &nbsp;&lt;target name="run" depends="package,startup" description="不存在单元测试时执行的任务"&gt;<br />&nbsp;&nbsp; &nbsp;&lt;/target&gt;<br />&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp; &nbsp;&lt;target name="junitrun" depends="junit-package,startup" description="存在单元测试时执行的任务"&gt;<br />&nbsp;&nbsp; &nbsp;&lt;/target&gt;<br />&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp; &nbsp;<br />&lt;/project&gt;</div><div>构建控制台日志<br /><div>init:<br />&nbsp;&nbsp;&nbsp;&nbsp; [echo] 项目初始化设置<br />&nbsp;&nbsp; [delete] Deleting directory D:\workspace\Ant1\classes<br />&nbsp;&nbsp; [delete] Deleting directory D:\workspace\Ant1\dist<br />&nbsp;&nbsp; [delete] Deleting directory D:\workspace\Ant1\doc<br />&nbsp;&nbsp; [delete] Deleting directory D:\workspace\Ant1\junit<br />&nbsp;&nbsp;&nbsp; [mkdir] Created dir: D:\workspace\Ant1\classes<br />&nbsp;&nbsp;&nbsp; [mkdir] Created dir: D:\workspace\Ant1\dist<br />&nbsp;&nbsp;&nbsp; [mkdir] Created dir: D:\workspace\Ant1\doc<br />&nbsp;&nbsp;&nbsp; [mkdir] Created dir: D:\workspace\Ant1\junit\classes<br />&nbsp;&nbsp;&nbsp; [mkdir] Created dir: D:\workspace\Ant1\junit\report<br />compile:<br />&nbsp;&nbsp;&nbsp;&nbsp; [echo] 编译源码<br />&nbsp;&nbsp;&nbsp; [javac] Compiling 3 source files to D:\workspace\Ant1\classes<br />junit-javac:<br />&nbsp;&nbsp;&nbsp;&nbsp; [echo] 编译junit<br />&nbsp;&nbsp;&nbsp; [javac] Compiling 1 source file to D:\workspace\Ant1\junit\classes<br />junit-run:<br />&nbsp;&nbsp;&nbsp;&nbsp; [echo] 运行单元测试<br />&nbsp;&nbsp;&nbsp; [junit] Running com.junit.test.OtherTest<br />&nbsp;&nbsp;&nbsp; [junit] Tests run: 2, Failures: 0, Errors: 0, Time elapsed: 0.027 sec<br />junit-report:<br />&nbsp;&nbsp;&nbsp;&nbsp; [echo] 生成单元测试报告<br />[junitreport] Processing D:\workspace\Ant1\junit\report\TESTS-TestSuites.xml to C:\Users\scott\AppData\Local\Temp\null1056173236<br />[junitreport] Loading stylesheet jar:file:/E:/apache-ant-1.8.4/lib/ant-junit.jar!/org/apache/tools/ant/taskdefs/optional/junit/xsl/junit-frames.xsl<br />[junitreport] Transform time: 334ms<br />[junitreport] Deleting: C:\Users\scott\AppData\Local\Temp\null1056173236<br />doc:<br />&nbsp;&nbsp;&nbsp;&nbsp; [echo] 生成帮助文档<br />&nbsp; [javadoc] Generating Javadoc<br />&nbsp; [javadoc] Javadoc execution<br />&nbsp; [javadoc] 正在创建目标目录： "D:\workspace\Ant1\doc\api\"<br />&nbsp; [javadoc] 正在装入软件包 com.ant.lesson1 的源文件...<br />&nbsp; [javadoc] 正在构造 Javadoc 信息...<br />&nbsp; [javadoc] 标准 Doclet 版本 1.6.0_25<br />&nbsp; [javadoc] 正在构建所有软件包和类的树...<br />&nbsp; [javadoc] 正在生成 D:\workspace\Ant1\doc\api\com/ant/lesson1/\Main.html...<br />&nbsp; [javadoc] 正在生成 D:\workspace\Ant1\doc\api\com/ant/lesson1/\MyHttpServlet.html...<br />&nbsp; [javadoc] 正在生成 D:\workspace\Ant1\doc\api\com/ant/lesson1/\SimpleTask.html...<br />&nbsp; [javadoc] 正在生成 D:\workspace\Ant1\doc\api\com/ant/lesson1/\package-frame.html...<br />&nbsp; [javadoc] 正在生成 D:\workspace\Ant1\doc\api\com/ant/lesson1/\package-summary.html...<br />&nbsp; [javadoc] 正在生成 D:\workspace\Ant1\doc\api\com/ant/lesson1/\package-tree.html...<br />&nbsp; [javadoc] 正在生成 D:\workspace\Ant1\doc\api\constant-values.html...<br />&nbsp; [javadoc] 正在生成 D:\workspace\Ant1\doc\api\serialized-form.html...<br />&nbsp; [javadoc] 正在生成 D:\workspace\Ant1\doc\api\com/ant/lesson1/\class-use\SimpleTask.html...<br />&nbsp; [javadoc] 正在生成 D:\workspace\Ant1\doc\api\com/ant/lesson1/\class-use\MyHttpServlet.html...<br />&nbsp; [javadoc] 正在生成 D:\workspace\Ant1\doc\api\com/ant/lesson1/\class-use\Main.html...<br />&nbsp; [javadoc] 正在生成 D:\workspace\Ant1\doc\api\com/ant/lesson1/\package-use.html...<br />&nbsp; [javadoc] 正在构建所有软件包和类的索引...<br />&nbsp; [javadoc] 正在生成 D:\workspace\Ant1\doc\api\overview-tree.html...<br />&nbsp; [javadoc] 正在生成 D:\workspace\Ant1\doc\api\index-all.html...<br />&nbsp; [javadoc] 正在生成 D:\workspace\Ant1\doc\api\deprecated-list.html...<br />&nbsp; [javadoc] 正在构建所有类的索引...<br />&nbsp; [javadoc] 正在生成 D:\workspace\Ant1\doc\api\allclasses-frame.html...<br />&nbsp; [javadoc] 正在生成 D:\workspace\Ant1\doc\api\allclasses-noframe.html...<br />&nbsp; [javadoc] 正在生成 D:\workspace\Ant1\doc\api\index.html...<br />&nbsp; [javadoc] 正在生成 D:\workspace\Ant1\doc\api\help-doc.html...<br />&nbsp; [javadoc] 正在生成 D:\workspace\Ant1\doc\api\stylesheet.css...<br />&nbsp; [javadoc] Generating Javadoc<br />&nbsp; [javadoc] Javadoc execution<br />&nbsp; [javadoc] 正在创建目标目录： "D:\workspace\Ant1\doc\api\junit\"<br />&nbsp; [javadoc] 正在装入软件包 com.junit.test 的源文件...<br />&nbsp; [javadoc] 正在构造 Javadoc 信息...<br />&nbsp; [javadoc] 标准 Doclet 版本 1.6.0_25<br />&nbsp; [javadoc] 正在构建所有软件包和类的树...<br />&nbsp; [javadoc] 正在生成 D:\workspace\Ant1\doc\api\junit\com/junit/test/\OtherTest.html...<br />&nbsp; [javadoc] 正在生成 D:\workspace\Ant1\doc\api\junit\com/junit/test/\package-frame.html...<br />&nbsp; [javadoc] 正在生成 D:\workspace\Ant1\doc\api\junit\com/junit/test/\package-summary.html...<br />&nbsp; [javadoc] 正在生成 D:\workspace\Ant1\doc\api\junit\com/junit/test/\package-tree.html...<br />&nbsp; [javadoc] 正在生成 D:\workspace\Ant1\doc\api\junit\constant-values.html...<br />&nbsp; [javadoc] 正在生成 D:\workspace\Ant1\doc\api\junit\com/junit/test/\class-use\OtherTest.html...<br />&nbsp; [javadoc] 正在生成 D:\workspace\Ant1\doc\api\junit\com/junit/test/\package-use.html...<br />&nbsp; [javadoc] 正在构建所有软件包和类的索引...<br />&nbsp; [javadoc] 正在生成 D:\workspace\Ant1\doc\api\junit\overview-tree.html...<br />&nbsp; [javadoc] 正在生成 D:\workspace\Ant1\doc\api\junit\index-all.html...<br />&nbsp; [javadoc] 正在生成 D:\workspace\Ant1\doc\api\junit\deprecated-list.html...<br />&nbsp; [javadoc] 正在构建所有类的索引...<br />&nbsp; [javadoc] 正在生成 D:\workspace\Ant1\doc\api\junit\allclasses-frame.html...<br />&nbsp; [javadoc] 正在生成 D:\workspace\Ant1\doc\api\junit\allclasses-noframe.html...<br />&nbsp; [javadoc] 正在生成 D:\workspace\Ant1\doc\api\junit\index.html...<br />&nbsp; [javadoc] 正在生成 D:\workspace\Ant1\doc\api\junit\help-doc.html...<br />&nbsp; [javadoc] 正在生成 D:\workspace\Ant1\doc\api\junit\stylesheet.css...<br />package:<br />&nbsp;&nbsp;&nbsp;&nbsp; [echo] 打包<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [jar] Building jar: D:\workspace\Ant1\dist\cms-1.0.jar<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [zip] Building zip: D:\workspace\Ant1\dist\cms-source.zip<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [zip] Building zip: D:\workspace\Ant1\dist\cms-doc.zip<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [jar] Building jar: D:\workspace\Ant1\dist\cms-junit-1.0.jar<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [zip] Building zip: D:\workspace\Ant1\dist\cms-junit-source.zip<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [zip] Building zip: D:\workspace\Ant1\dist\junit-report.zip<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [war] Building war: D:\workspace\Ant1\dist\cms.war<br />clean:<br />&nbsp;&nbsp;&nbsp;&nbsp; [echo] 清理项目<br />&nbsp;&nbsp; [delete] Deleting directory D:\workspace\Ant1\classes<br />&nbsp;&nbsp; [delete] Deleting directory D:\workspace\Ant1\doc<br />&nbsp;&nbsp; [delete] Deleting directory D:\workspace\Ant1\junit<br />mail:<br />&nbsp;&nbsp;&nbsp;&nbsp; [echo] 将打包的文件email发送<br />&nbsp;&nbsp;&nbsp;&nbsp; [mail] Sending email: Test build</div></div><div>最终编译后的目录为 <br /><img src="http://img.my.csdn.net/uploads/201209/05/1346813687_5013.jpg" alt="" /></div><img src ="http://www.blogjava.net/sxyx2008/aggbug/387111.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sxyx2008/" target="_blank">雪山飞鹄</a> 2012-09-05 16:26 <a href="http://www.blogjava.net/sxyx2008/archive/2012/09/05/387111.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Android之快捷方式</title><link>http://www.blogjava.net/sxyx2008/archive/2012/04/01/373188.html</link><dc:creator>雪山飞鹄</dc:creator><author>雪山飞鹄</author><pubDate>Sun, 01 Apr 2012 05:34:00 GMT</pubDate><guid>http://www.blogjava.net/sxyx2008/archive/2012/04/01/373188.html</guid><wfw:comment>http://www.blogjava.net/sxyx2008/comments/373188.html</wfw:comment><comments>http://www.blogjava.net/sxyx2008/archive/2012/04/01/373188.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/sxyx2008/comments/commentRss/373188.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sxyx2008/services/trackbacks/373188.html</trackback:ping><description><![CDATA[
<p>&nbsp;</p><div style="padding: 4px 5px 4px 4px; border: 1px solid rgb(204, 204, 204); width: 98%; font-size: 13px; word-break: break-all; background-color: rgb(238, 238, 238);"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /><span style="color: rgb(0, 0, 255);">package</span><span style="color: rgb(0, 0, 0);">&nbsp;com.shortcut;<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="color: rgb(0, 0, 255);">import</span><span style="color: rgb(0, 0, 0);">&nbsp;android.app.Activity;<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="color: rgb(0, 0, 255);">import</span><span style="color: rgb(0, 0, 0);">&nbsp;android.content.ContentResolver;<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="color: rgb(0, 0, 255);">import</span><span style="color: rgb(0, 0, 0);">&nbsp;android.content.Intent;<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="color: rgb(0, 0, 255);">import</span><span style="color: rgb(0, 0, 0);">&nbsp;android.content.Intent.ShortcutIconResource;<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="color: rgb(0, 0, 255);">import</span><span style="color: rgb(0, 0, 0);">&nbsp;android.database.Cursor;<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="color: rgb(0, 0, 255);">import</span><span style="color: rgb(0, 0, 0);">&nbsp;android.net.Uri;<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="color: rgb(0, 0, 255);">import</span><span style="color: rgb(0, 0, 0);">&nbsp;android.os.Bundle;<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /><br /><img id="Codehighlighter1_307_2087_Open_Image" onclick="this.style.display='none'; Codehighlighter1_307_2087_Open_Text.style.display='none'; Codehighlighter1_307_2087_Closed_Image.style.display='inline'; Codehighlighter1_307_2087_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif"><img style="display: none;" id="Codehighlighter1_307_2087_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_307_2087_Closed_Text.style.display='none'; Codehighlighter1_307_2087_Open_Image.style.display='inline'; Codehighlighter1_307_2087_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif"></span><span style="color: rgb(0, 0, 255);">public</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">class</span><span style="color: rgb(0, 0, 0);">&nbsp;AddShortCutActivity&nbsp;</span><span style="color: rgb(0, 0, 255);">extends</span><span style="color: rgb(0, 0, 0);">&nbsp;Activity&nbsp;</span><span style="border: 1px solid rgb(128, 128, 128); display: none; background-color: rgb(255, 255, 255);" id="Codehighlighter1_307_2087_Closed_Text"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_307_2087_Open_Text"><span style="color: rgb(0, 0, 0);">{<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;@Override<br /><img id="Codehighlighter1_369_539_Open_Image" onclick="this.style.display='none'; Codehighlighter1_369_539_Open_Text.style.display='none'; Codehighlighter1_369_539_Closed_Image.style.display='inline'; Codehighlighter1_369_539_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none;" id="Codehighlighter1_369_539_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_369_539_Closed_Text.style.display='none'; Codehighlighter1_369_539_Open_Image.style.display='inline'; Codehighlighter1_369_539_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">public</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">void</span><span style="color: rgb(0, 0, 0);">&nbsp;onCreate(Bundle&nbsp;savedInstanceState)&nbsp;</span><span style="border: 1px solid rgb(128, 128, 128); display: none; background-color: rgb(255, 255, 255);" id="Codehighlighter1_369_539_Closed_Text"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_369_539_Open_Text"><span style="color: rgb(0, 0, 0);">{<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">super</span><span style="color: rgb(0, 0, 0);">.onCreate(savedInstanceState);<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;setContentView(R.layout.main);<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">boolean</span><span style="color: rgb(0, 0, 0);">&nbsp;flag&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;IfaddShortCut();</span><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);">&nbsp;如果已经创建，则不需要在创建</span><span style="color: rgb(0, 128, 0);"><br /><img id="Codehighlighter1_514_536_Open_Image" onclick="this.style.display='none'; Codehighlighter1_514_536_Open_Text.style.display='none'; Codehighlighter1_514_536_Closed_Image.style.display='inline'; Codehighlighter1_514_536_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none;" id="Codehighlighter1_514_536_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_514_536_Closed_Text.style.display='none'; Codehighlighter1_514_536_Open_Image.style.display='inline'; Codehighlighter1_514_536_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif"></span><span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">if</span><span style="color: rgb(0, 0, 0);">&nbsp;(flag&nbsp;</span><span style="color: rgb(0, 0, 0);">==</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">false</span><span style="color: rgb(0, 0, 0);">)&nbsp;</span><span style="border: 1px solid rgb(128, 128, 128); display: none; background-color: rgb(255, 255, 255);" id="Codehighlighter1_514_536_Closed_Text"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_514_536_Open_Text"><span style="color: rgb(0, 0, 0);">{<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;addShortCut();<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: rgb(0, 0, 0);"><br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: rgb(0, 0, 0);"><br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" /><br /><img id="Codehighlighter1_569_1447_Open_Image" onclick="this.style.display='none'; Codehighlighter1_569_1447_Open_Text.style.display='none'; Codehighlighter1_569_1447_Closed_Image.style.display='inline'; Codehighlighter1_569_1447_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none;" id="Codehighlighter1_569_1447_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_569_1447_Closed_Text.style.display='none'; Codehighlighter1_569_1447_Open_Image.style.display='inline'; Codehighlighter1_569_1447_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">public</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">void</span><span style="color: rgb(0, 0, 0);">&nbsp;addShortCut()&nbsp;</span><span style="border: 1px solid rgb(128, 128, 128); display: none; background-color: rgb(255, 255, 255);" id="Codehighlighter1_569_1447_Closed_Text"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_569_1447_Open_Text"><span style="color: rgb(0, 0, 0);">{<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Intent&nbsp;shortcut&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">new</span><span style="color: rgb(0, 0, 0);">&nbsp;Intent(</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">com.android.launcher.action.INSTALL_SHORTCUT</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">);<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);">&nbsp;设置属性</span><span style="color: rgb(0, 128, 0);"><br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" /></span><span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;shortcut.putExtra(Intent.EXTRA_SHORTCUT_NAME,getResources().getString(R.string.app_name));<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ShortcutIconResource&nbsp;iconRes&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;Intent.ShortcutIconResource.fromContext(AddShortCutActivity.</span><span style="color: rgb(0, 0, 255);">this</span><span style="color: rgb(0, 0, 0);">,&nbsp;R.drawable.ic_launcher);<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;shortcut.putExtra(Intent.EXTRA_SHORTCUT_ICON,&nbsp;iconRes);<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" /><br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);">&nbsp;是否允许重复创建</span><span style="color: rgb(0, 128, 0);"><br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" /></span><span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;shortcut.putExtra(</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">duplicate</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">,&nbsp;</span><span style="color: rgb(0, 0, 255);">false</span><span style="color: rgb(0, 0, 0);">);<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Intent&nbsp;intent&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">new</span><span style="color: rgb(0, 0, 0);">&nbsp;Intent(Intent.ACTION_MAIN);<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;intent.setFlags(Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;intent.addFlags(Intent.FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY);<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;intent.addCategory(Intent.CATEGORY_LAUNCHER);<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;intent.setClass(AddShortCutActivity.</span><span style="color: rgb(0, 0, 255);">this</span><span style="color: rgb(0, 0, 0);">,&nbsp;AddShortCutActivity.</span><span style="color: rgb(0, 0, 255);">class</span><span style="color: rgb(0, 0, 0);">);<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);">&nbsp;设置启动程序</span><span style="color: rgb(0, 128, 0);"><br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" /></span><span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">createIcon</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">);<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;shortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT,&nbsp;intent);<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AddShortCutActivity.</span><span style="color: rgb(0, 0, 255);">this</span><span style="color: rgb(0, 0, 0);">.sendBroadcast(shortcut);<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: rgb(0, 0, 0);"><br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" /><br /><img id="Codehighlighter1_1482_2085_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1482_2085_Open_Text.style.display='none'; Codehighlighter1_1482_2085_Closed_Image.style.display='inline'; Codehighlighter1_1482_2085_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none;" id="Codehighlighter1_1482_2085_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_1482_2085_Closed_Text.style.display='none'; Codehighlighter1_1482_2085_Open_Image.style.display='inline'; Codehighlighter1_1482_2085_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">public</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">boolean</span><span style="color: rgb(0, 0, 0);">&nbsp;IfaddShortCut()&nbsp;</span><span style="border: 1px solid rgb(128, 128, 128); display: none; background-color: rgb(255, 255, 255);" id="Codehighlighter1_1482_2085_Closed_Text"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_1482_2085_Open_Text"><span style="color: rgb(0, 0, 0);">{<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">boolean</span><span style="color: rgb(0, 0, 0);">&nbsp;isInstallShortcut&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">false</span><span style="color: rgb(0, 0, 0);">;<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">final</span><span style="color: rgb(0, 0, 0);">&nbsp;ContentResolver&nbsp;cr&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;AddShortCutActivity.</span><span style="color: rgb(0, 0, 255);">this</span><span style="color: rgb(0, 0, 0);">.getContentResolver();<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);">&nbsp;本人的2.2系统是&#8221;com.android.launcher2.settings&#8221;,网上见其他的为"com.android.launcher.settings"</span><span style="color: rgb(0, 128, 0);"><br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" /></span><span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">final</span><span style="color: rgb(0, 0, 0);">&nbsp;String&nbsp;AUTHORITY&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">com.android.launcher2.settings</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">;<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">final</span><span style="color: rgb(0, 0, 0);">&nbsp;Uri&nbsp;CONTENT_URI&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;Uri.parse(</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">content://</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 0);">+</span><span style="color: rgb(0, 0, 0);">&nbsp;AUTHORITY&nbsp;</span><span style="color: rgb(0, 0, 0);">+</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">/favorites?notify=true</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">);<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Cursor&nbsp;c&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;cr.query(CONTENT_URI,<br /><img id="Codehighlighter1_1886_1912_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1886_1912_Open_Text.style.display='none'; Codehighlighter1_1886_1912_Closed_Image.style.display='inline'; Codehighlighter1_1886_1912_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none;" id="Codehighlighter1_1886_1912_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_1886_1912_Closed_Text.style.display='none'; Codehighlighter1_1886_1912_Open_Image.style.display='inline'; Codehighlighter1_1886_1912_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">new</span><span style="color: rgb(0, 0, 0);">&nbsp;String[]&nbsp;</span><span style="border: 1px solid rgb(128, 128, 128); display: none; background-color: rgb(255, 255, 255);" id="Codehighlighter1_1886_1912_Closed_Text"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_1886_1912_Open_Text"><span style="color: rgb(0, 0, 0);">{&nbsp;</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">title</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">,&nbsp;</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">iconResource</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">&nbsp;}</span></span><span style="color: rgb(0, 0, 0);">,&nbsp;</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">title=?</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">,<br /><img id="Codehighlighter1_1943_1974_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1943_1974_Open_Text.style.display='none'; Codehighlighter1_1943_1974_Closed_Image.style.display='inline'; Codehighlighter1_1943_1974_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none;" id="Codehighlighter1_1943_1974_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_1943_1974_Closed_Text.style.display='none'; Codehighlighter1_1943_1974_Open_Image.style.display='inline'; Codehighlighter1_1943_1974_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">new</span><span style="color: rgb(0, 0, 0);">&nbsp;String[]&nbsp;</span><span style="border: 1px solid rgb(128, 128, 128); display: none; background-color: rgb(255, 255, 255);" id="Codehighlighter1_1943_1974_Closed_Text"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_1943_1974_Open_Text"><span style="color: rgb(0, 0, 0);">{&nbsp;getString(R.string.app_name)&nbsp;}</span></span><span style="color: rgb(0, 0, 0);">,&nbsp;</span><span style="color: rgb(0, 0, 255);">null</span><span style="color: rgb(0, 0, 0);">);<br /><img id="Codehighlighter1_2021_2054_Open_Image" onclick="this.style.display='none'; Codehighlighter1_2021_2054_Open_Text.style.display='none'; Codehighlighter1_2021_2054_Closed_Image.style.display='inline'; Codehighlighter1_2021_2054_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none;" id="Codehighlighter1_2021_2054_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_2021_2054_Closed_Text.style.display='none'; Codehighlighter1_2021_2054_Open_Image.style.display='inline'; Codehighlighter1_2021_2054_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">if</span><span style="color: rgb(0, 0, 0);">&nbsp;(c&nbsp;</span><span style="color: rgb(0, 0, 0);">!=</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">null</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 0);">&amp;&amp;</span><span style="color: rgb(0, 0, 0);">&nbsp;c.getCount()&nbsp;</span><span style="color: rgb(0, 0, 0);">&gt;</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 0);">0</span><span style="color: rgb(0, 0, 0);">)&nbsp;</span><span style="border: 1px solid rgb(128, 128, 128); display: none; background-color: rgb(255, 255, 255);" id="Codehighlighter1_2021_2054_Closed_Text"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_2021_2054_Open_Text"><span style="color: rgb(0, 0, 0);">{<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;isInstallShortcut&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">true</span><span style="color: rgb(0, 0, 0);">;<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: rgb(0, 0, 0);"><br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">return</span><span style="color: rgb(0, 0, 0);">&nbsp;isInstallShortcut;<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: rgb(0, 0, 0);"><br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" />}</span></span></div><p>&nbsp;</p><div style="padding: 4px 5px 4px 4px; border: 1px solid rgb(204, 204, 204); width: 98%; font-size: 13px; word-break: break-all; background-color: rgb(238, 238, 238);"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: rgb(0, 0, 255);">&lt;?</span><span style="color: rgb(255, 0, 255);">xml&nbsp;version="1.0"&nbsp;encoding="utf-8"</span><span style="color: rgb(0, 0, 255);">?&gt;</span><span style="color: rgb(0, 0, 0);"><br /></span><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">manifest&nbsp;</span><span style="color: rgb(255, 0, 0);">xmlns:android</span><span style="color: rgb(0, 0, 255);">="http://schemas.android.com/apk/res/android"</span><span style="color: rgb(255, 0, 0);"><br />&nbsp;&nbsp;&nbsp;&nbsp;package</span><span style="color: rgb(0, 0, 255);">="com.shortcut"</span><span style="color: rgb(255, 0, 0);"><br />&nbsp;&nbsp;&nbsp;&nbsp;android:versionCode</span><span style="color: rgb(0, 0, 255);">="1"</span><span style="color: rgb(255, 0, 0);"><br />&nbsp;&nbsp;&nbsp;&nbsp;android:versionName</span><span style="color: rgb(0, 0, 255);">="1.0"</span><span style="color: rgb(255, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">uses-sdk&nbsp;</span><span style="color: rgb(255, 0, 0);">android:minSdkVersion</span><span style="color: rgb(0, 0, 255);">="8"</span><span style="color: rgb(255, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">/&gt;</span><span style="color: rgb(0, 0, 0);"><br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">application<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(255, 0, 0);">android:icon</span><span style="color: rgb(0, 0, 255);">="@drawable/ic_launcher"</span><span style="color: rgb(255, 0, 0);"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:label</span><span style="color: rgb(0, 0, 255);">="@string/app_name"</span><span style="color: rgb(255, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">activity<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(255, 0, 0);">android:label</span><span style="color: rgb(0, 0, 255);">="@string/app_name"</span><span style="color: rgb(255, 0, 0);"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:name</span><span style="color: rgb(0, 0, 255);">=".AddShortCutActivity"</span><span style="color: rgb(255, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">intent-filter&nbsp;</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">action&nbsp;</span><span style="color: rgb(255, 0, 0);">android:name</span><span style="color: rgb(0, 0, 255);">="android.intent.action.MAIN"</span><span style="color: rgb(255, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">/&gt;</span><span style="color: rgb(0, 0, 0);"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">category&nbsp;</span><span style="color: rgb(255, 0, 0);">android:name</span><span style="color: rgb(0, 0, 255);">="android.intent.category.LAUNCHER"</span><span style="color: rgb(255, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">/&gt;</span><span style="color: rgb(0, 0, 0);"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">&lt;/</span><span style="color: rgb(128, 0, 0);">intent-filter</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">intent-filter</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">action&nbsp;</span><span style="color: rgb(255, 0, 0);">android:name</span><span style="color: rgb(0, 0, 255);">="android.intent.action.CREATE_SHORTCUT"</span><span style="color: rgb(0, 0, 255);">&gt;&lt;/</span><span style="color: rgb(128, 0, 0);">action</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">&lt;/</span><span style="color: rgb(128, 0, 0);">intent-filter</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">&lt;/</span><span style="color: rgb(128, 0, 0);">activity</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">&lt;/</span><span style="color: rgb(128, 0, 0);">application</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">uses-permission&nbsp;</span><span style="color: rgb(255, 0, 0);">android:name</span><span style="color: rgb(0, 0, 255);">="com.android.launcher.permission.READ_SETTINGS"</span><span style="color: rgb(0, 0, 255);">/&gt;</span><span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">uses-permission&nbsp;</span><span style="color: rgb(255, 0, 0);">android:name</span><span style="color: rgb(0, 0, 255);">="com.android.launcher.permission.INSTALL_SHORTCUT"</span><span style="color: rgb(0, 0, 255);">/&gt;</span><span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;<br /></span><span style="color: rgb(0, 0, 255);">&lt;/</span><span style="color: rgb(128, 0, 0);">manifest</span><span style="color: rgb(0, 0, 255);">&gt;</span></div><p>&nbsp;</p>Android Shortcut操作（一）<br /><a href="http://www.eoeandroid.com/thread-92125-1-1.html">http://www.eoeandroid.com/thread-92125-1-1.html</a><br /><br />&nbsp;Android Shortcut操作（二）<br /><a href="http://www.eoeandroid.com/thread-92128-1-1.html">http://www.eoeandroid.com/thread-92128-1-1.html</a><br />
<img src ="http://www.blogjava.net/sxyx2008/aggbug/373188.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sxyx2008/" target="_blank">雪山飞鹄</a> 2012-04-01 13:34 <a href="http://www.blogjava.net/sxyx2008/archive/2012/04/01/373188.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Linux下Jboss启动、关闭、端口配置等常见问题FAQ </title><link>http://www.blogjava.net/sxyx2008/archive/2012/03/28/372880.html</link><dc:creator>雪山飞鹄</dc:creator><author>雪山飞鹄</author><pubDate>Wed, 28 Mar 2012 02:58:00 GMT</pubDate><guid>http://www.blogjava.net/sxyx2008/archive/2012/03/28/372880.html</guid><wfw:comment>http://www.blogjava.net/sxyx2008/comments/372880.html</wfw:comment><comments>http://www.blogjava.net/sxyx2008/archive/2012/03/28/372880.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/sxyx2008/comments/commentRss/372880.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sxyx2008/services/trackbacks/372880.html</trackback:ping><description><![CDATA[
<ol><li><strong>单台Linux服务器中如何部署多个独立应用，即多个应用不能run在一个jboss实例中？<br /></strong>换言之，这个问题也可以这样描述：在单台Linux服务器中服务启动多个Jboss实例？<br />默认情况下，jboss启动时加载server/default/目录下的配置，要实现多个实例的启动，主要是解决端口冲突的问题，因为一套端口只能被一个应用占有；<br />一般来说，我们可以在Jboss启动时<strong><span style="color: rgb(255, 0, 0);">通过-Djboss.server.home设置当前实例启动</span></strong>时加载不同的目录来实现；<br />比如Jboss主程序安装在/usr/xx/jboss/，应用放在/home/admin/app/；那此时就可以cp一份default目录到当前应用app目录下，通过-Djboss.server.home=/home/admin/app/default来启动该实例；<br />若直接在/usr/xx/jboss/server/下复制default目录并改名为yy，则可以用更简单的参数-c yy来启动； <br />对于多应用的情况，我们仍然要解决端口冲突的问题，有两种方式：<br />其一，直接修改各应用对应的default目录下的所有配置端口，主要涉及配置文件conf/jboss-service.xml、tomcat下的server.xml；该方法比较土，很容易出错，因为端口众多，只要有一项端口没有改，jboss就将无法正常启动；若应用较少，比如就只有2个，那这种方式勉强可以用用；<br />其二，在jboss-service.xml中<strong><span style="color: rgb(255, 0, 0);">启用jboss.system:service=ServiceBindingManager这个mbean服务</span></strong>，设置ServerName、StoreURL属性；将各套应用对应的端口全部配置在同一个文件中；推荐采用该方案，具体可参考：</li></ol><p><div class="dp-highlighter bg_xhtml"><ol><li><div class="tools"><strong>[xhtml]</strong> <a class="ViewSource" title="view plain" href="http://blog.csdn.net/sfdev/article/details/4266728#"><u><font color="#0066cc">view plain</font></u></a><a class="CopyToClipboard" title="copy" href="http://blog.csdn.net/sfdev/article/details/4266728#"><u><font color="#0066cc">copy</font></u></a><a class="PrintSource" title="print" href="http://blog.csdn.net/sfdev/article/details/4266728#"><u><font color="#0066cc">print</font></u></a><a class="About" title="?" href="http://blog.csdn.net/sfdev/article/details/4266728#"><u><font color="#0066cc">?</font></u></a></div></li><li class="alt"><span class="tag">&lt;</span><span class="tag-name">mbean</span><span> </span><span class="attribute">code</span><span>=</span><span class="attribute-value">"org.jboss.services.binding.ServiceBindingManager"</span><span>&nbsp; </span></li><li><span>&nbsp; <span class="attribute">name</span><span>=</span><span class="attribute-value">"jboss.system:service=ServiceBindingManager"</span><span class="tag">&gt;</span><span>&nbsp; </span></span></li><li class="alt"><span>&nbsp; <span class="tag">&lt;</span><span class="tag-name">attribute</span><span> </span><span class="attribute">name</span><span>=</span><span class="attribute-value">"ServerName"</span><span class="tag">&gt;</span><span>ports-01</span><span class="tag">&lt;/</span><span class="tag-name">attribute</span><span class="tag">&gt;</span><span>&nbsp; </span></span></li><li><span>&nbsp; <span class="tag">&lt;</span><span class="tag-name">attribute</span><span> </span><span class="attribute">name</span><span>=</span><span class="attribute-value">"StoreURL"</span><span class="tag">&gt;</span><span>${jboss.home.url}/docs/examples/binding-manager/sample-bindings.xml</span><span class="tag">&lt;/</span><span class="tag-name">attribute</span><span class="tag">&gt;</span><span>&nbsp; </span></span></li><li class="alt"><span>&nbsp; <span class="tag">&lt;</span><span class="tag-name">attribute</span><span> </span><span class="attribute">name</span><span>=</span><span class="attribute-value">"StoreFactoryClassName"</span><span class="tag">&gt;</span><span>&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp; org.jboss.services.binding.XMLServicesStoreFactory&nbsp; </span></li><li class="alt"><span>&nbsp; <span class="tag">&lt;/</span><span class="tag-name">attribute</span><span class="tag">&gt;</span><span>&nbsp; </span></span></li><li><span class="tag">&lt;/</span><span class="tag-name">mbean</span><span class="tag">&gt;</span><span>&nbsp; </span></li></ol></div><p>&nbsp;</p><p><textarea style="display: none;" class="xhtml" cols="73" rows="9" name="code">&lt;mbean code="org.jboss.services.binding.ServiceBindingManager"
  name="jboss.system:service=ServiceBindingManager"&gt;
  &lt;attribute name="ServerName"&gt;ports-01&lt;/attribute&gt;
  &lt;attribute name="StoreURL"&gt;${jboss.home.url}/docs/examples/binding-manager/sample-bindings.xml&lt;/attribute&gt;
  &lt;attribute name="StoreFactoryClassName"&gt;
    org.jboss.services.binding.XMLServicesStoreFactory
  &lt;/attribute&gt;
&lt;/mbean&gt;</textarea> </p></li><li><strong>Jboss无法正常启动，报异常javax.management.MBeanRegistrationException: preRegister() failed？</strong><br />一般来说，上面的异常出现在4.2及其以后的版本中，比较详细的异常如下：<div class="dp-highlighter bg_java"><div class="bar"><div class="tools"><strong>[java]</strong> <a class="ViewSource" title="view plain" href="http://blog.csdn.net/sfdev/article/details/4266728#"><u><font color="#0066cc">view plain</font></u></a><a class="CopyToClipboard" title="copy" href="http://blog.csdn.net/sfdev/article/details/4266728#"><u><font color="#0066cc">copy</font></u></a><a class="PrintSource" title="print" href="http://blog.csdn.net/sfdev/article/details/4266728#"><u><font color="#0066cc">print</font></u></a><a class="About" title="?" href="http://blog.csdn.net/sfdev/article/details/4266728#"><u><font color="#0066cc">?</font></u></a></div></div><ol class="dp-j"><li class="alt"><span>javax.management.MBeanRegistrationException: preRegister() failed: [ObjectName=</span><span class="string">'jboss.remoting:service=NetworkRegistry'</span><span>, Class=org.jboss.remoting.network.NetworkRegistry (org.jboss.remoting.network.NetworkRegistry</span><span class="annotation">@16b6c55</span><span>)]&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at org.jboss.mx.server.registry.BasicMBeanRegistry.invokePreRegister(BasicMBeanRegistry.java:<span class="number">713</span><span>)&nbsp; </span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at org.jboss.mx.server.registry.BasicMBeanRegistry.registerMBean(BasicMBeanRegistry.java:<span class="number">211</span><span>)&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source)&nbsp; </span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:<span class="number">25</span><span>)&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at java.lang.reflect.Method.invoke(Method.java:<span class="number">585</span><span>)&nbsp; </span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:<span class="number">155</span><span>)&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ... <span class="number">51</span><span> more&nbsp; </span></span></li><li class="alt"><span>Caused by: java.lang.RuntimeException: Exception creating identity: mall_dev4: mall_dev4&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at org.jboss.remoting.ident.Identity.get(Identity.java:<span class="number">211</span><span>)&nbsp; </span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at org.jboss.remoting.network.NetworkRegistry.preRegister(NetworkRegistry.java:<span class="number">268</span><span>)&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at org.jboss.mx.server.AbstractMBeanInvoker.invokePreRegister(AbstractMBeanInvoker.java:<span class="number">966</span><span>)&nbsp; </span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at org.jboss.mx.modelmbean.ModelMBeanInvoker.invokePreRegister(ModelMBeanInvoker.java:<span class="number">489</span><span>)&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at org.jboss.mx.server.AbstractMBeanInvoker.preRegister(AbstractMBeanInvoker.java:<span class="number">654</span><span>)&nbsp; </span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at org.jboss.mx.server.registry.BasicMBeanRegistry.invokePreRegister(BasicMBeanRegistry.java:<span class="number">697</span><span>)&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ... <span class="number">56</span><span> more&nbsp; </span></span></li></ol></div><textarea style="display: none;" class="java" cols="73" rows="15" name="code">javax.management.MBeanRegistrationException: preRegister() failed: [ObjectName='jboss.remoting:service=NetworkRegistry', Class=org.jboss.remoting.network.NetworkRegistry (org.jboss.remoting.network.NetworkRegistry@16b6c55)]
        at org.jboss.mx.server.registry.BasicMBeanRegistry.invokePreRegister(BasicMBeanRegistry.java:713)
        at org.jboss.mx.server.registry.BasicMBeanRegistry.registerMBean(BasicMBeanRegistry.java:211)
        at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
        ... 51 more
Caused by: java.lang.RuntimeException: Exception creating identity: mall_dev4: mall_dev4
        at org.jboss.remoting.ident.Identity.get(Identity.java:211)
        at org.jboss.remoting.network.NetworkRegistry.preRegister(NetworkRegistry.java:268)
        at org.jboss.mx.server.AbstractMBeanInvoker.invokePreRegister(AbstractMBeanInvoker.java:966)
        at org.jboss.mx.modelmbean.ModelMBeanInvoker.invokePreRegister(ModelMBeanInvoker.java:489)
        at org.jboss.mx.server.AbstractMBeanInvoker.preRegister(AbstractMBeanInvoker.java:654)
        at org.jboss.mx.server.registry.BasicMBeanRegistry.invokePreRegister(BasicMBeanRegistry.java:697)
        ... 56 more</textarea><br />这主要是因为Jboss启动了一个jboss.remoting:service=NetworkRegistry的mbean服务，启动时却又无法根据当前hostname找到IP！<br />解决方案为<strong><span style="color: rgb(255, 0, 0);">在/etc/hosts中绑定当前服务器的主机名和IP</span></strong>，比如10.2.224.214 mall_dev4； <br />对于4.2系列之前的版本，如果没有绑定主机名和IP，虽然会出现以下的异常，但并不一定会影响应用的正常启动；<div class="dp-highlighter bg_java"><div class="bar"><div class="tools"><strong>[java]</strong> <a class="ViewSource" title="view plain" href="http://blog.csdn.net/sfdev/article/details/4266728#"><u><font color="#0066cc">view plain</font></u></a><a class="CopyToClipboard" title="copy" href="http://blog.csdn.net/sfdev/article/details/4266728#"><u><font color="#0066cc">copy</font></u></a><a class="PrintSource" title="print" href="http://blog.csdn.net/sfdev/article/details/4266728#"><u><font color="#0066cc">print</font></u></a><a class="About" title="?" href="http://blog.csdn.net/sfdev/article/details/4266728#"><u><font color="#0066cc">?</font></u></a></div></div><ol class="dp-j"><li class="alt"><span class="number">11</span><span>:</span><span class="number">32</span><span>:</span><span class="number">12</span><span>,</span><span class="number">427</span><span> WARN&nbsp; [ServiceController] Problem starting service jboss:service=invoker,type=http&nbsp; </span></li><li><span>java.net.UnknownHostException: mall_dev4: mall_dev4&nbsp; </span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at java.net.InetAddress.getLocalHost(InetAddress.java:<span class="number">1308</span><span>)&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at org.jboss.invocation.http.server.HttpInvoker.checkInvokerURL(HttpInvoker.java:<span class="number">204</span><span>)&nbsp; </span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at org.jboss.invocation.http.server.HttpInvoker.startService(HttpInvoker.java:<span class="number">101</span><span>)&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanSupport.java:<span class="number">289</span><span>)&nbsp; </span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMBeanSupport.java:<span class="number">245</span><span>)&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at sun.reflect.GeneratedMethodAccessor2.invoke(Unknown Source)&nbsp; </span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:<span class="number">25</span><span>)&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at java.lang.reflect.Method.invoke(Method.java:<span class="number">585</span><span>)&nbsp; </span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:<span class="number">155</span><span>)&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at org.jboss.mx.server.Invocation.dispatch(Invocation.java:<span class="number">94</span><span>)&nbsp; </span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at org.jboss.mx.server.Invocation.invoke(Invocation.java:<span class="number">86</span><span>)&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:<span class="number">264</span><span>)&nbsp; </span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:<span class="number">659</span><span>)&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.java:<span class="number">978</span><span>)&nbsp; </span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at $Proxy0.start(Unknown Source)&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at org.jboss.system.ServiceController.start(ServiceController.java:<span class="number">417</span><span>)&nbsp; </span></span></li></ol></div><textarea style="display: none;" class="java" cols="73" rows="15" name="code">11:32:12,427 WARN  [ServiceController] Problem starting service jboss:service=invoker,type=http
java.net.UnknownHostException: mall_dev4: mall_dev4
        at java.net.InetAddress.getLocalHost(InetAddress.java:1308)
        at org.jboss.invocation.http.server.HttpInvoker.checkInvokerURL(HttpInvoker.java:204)
        at org.jboss.invocation.http.server.HttpInvoker.startService(HttpInvoker.java:101)
        at org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanSupport.java:289)
        at org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMBeanSupport.java:245)
        at sun.reflect.GeneratedMethodAccessor2.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
        at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
        at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
        at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
        at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
        at org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.java:978)
        at $Proxy0.start(Unknown Source)
        at org.jboss.system.ServiceController.start(ServiceController.java:417)</textarea> </li><li><strong>Jboss已经正常启动，但是无法用IP或者绑定IP访问应用？<br /></strong>熟悉Linux相关知识的筒靴都知道一个端口是绑定在某个地址上的，可以是一个，也可以是多个，一个端口在同一个地址上不能被两个应用占有；<br />出现这个问题一般是因为你使用的是4.2系列及其之后的版本，因为从这个系列开始，<strong><span style="color: rgb(255, 0, 0);">Jboss默认绑定的端口由之前的0.0.0.0变成了127.0.0.1</span></strong>；前者表示绑定当前服务器下所有地址，包括自身的IP、127.0.0.1；而后者只绑定了127.0.0.1，而没有绑定本机IP，通过IP去访问应用自然也就无法成功了，因为访问的IP地址没有开放对应的端口；<br />对于默认的这种情况，一般来说jboss是要和apache搭配使用的，apache暴露应用外部访问的端口，然后apache再监听本地（也就是127.0.0.1）的端口；<br />当然这个默认配置也是可以修改的，方式也比较多，比如：<br />方式1，启动脚本中通过参数-b, --host=&lt;host or ip&gt;指定地址，比如-b 0.0.0.0就表示绑定所有地址；<br />方式2，启动脚本中通过参数-Djboss.bind.address指定地址，比如-Djboss.bind.address=0.0.0.0；<br />方式3，直接修改需要对外暴露的端口绑定地址，比如tomcat/server.xml中的http端口绑定address信息；</li><li><strong>Jboss正常启动，但是用shutdown脚本无法关闭应用？<br /></strong>对于jboss的关闭，shutdown命令允许好几种方式的关闭，可以参考该命令的帮助：<div class="dp-highlighter bg_java"><div class="bar"><div class="tools"><strong>[java]</strong> <a class="ViewSource" title="view plain" href="http://blog.csdn.net/sfdev/article/details/4266728#"><u><font color="#0066cc">view plain</font></u></a><a class="CopyToClipboard" title="copy" href="http://blog.csdn.net/sfdev/article/details/4266728#"><u><font color="#0066cc">copy</font></u></a><a class="PrintSource" title="print" href="http://blog.csdn.net/sfdev/article/details/4266728#"><u><font color="#0066cc">print</font></u></a><a class="About" title="?" href="http://blog.csdn.net/sfdev/article/details/4266728#"><u><font color="#0066cc">?</font></u></a></div></div><ol class="dp-j"><li class="alt"><span>usage: shutdown [options] &lt;operation&gt;&nbsp; </span></li><li><span>options:&nbsp; </span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp; -h, --help&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Show <span class="keyword">this</span><span> help message (</span><span class="keyword">default</span><span>)&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp; -D&lt;name&gt;[=&lt;value&gt;]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Set a system property&nbsp; </span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp; --&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Stop processing options&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp; -s, --server=&lt;url&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Specify the JNDI URL of the remote server&nbsp; </span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp; -n, --serverName=&lt;url&gt;&nbsp;&nbsp;&nbsp; Specify the JMX name of the ServerImpl&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp; -a, --adapter=&lt;name&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Specify JNDI name of the MBeanServerConnection to use&nbsp; </span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp; -u, --user=&lt;name&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Specify the username <span class="keyword">for</span><span> authentication&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp; -p, --password=&lt;name&gt;&nbsp;&nbsp;&nbsp;&nbsp; Specify the password <span class="keyword">for</span><span> authentication&nbsp; </span></span></li><li class="alt"><span>operations:&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp; -S, --shutdown&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Shutdown the server&nbsp; </span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp; -e, --exit=&lt;code&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Force the VM to exit with a status code&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp; -H, --halt=&lt;code&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Force the VM to halt with a status code&nbsp; </span></li></ol></div><textarea style="display: none;" class="java" cols="74" rows="15" name="code">usage: shutdown [options] &lt;operation&gt;
options:
    -h, --help                Show this help message (default)
    -D&lt;name&gt;[=&lt;value&gt;]        Set a system property
    --                        Stop processing options
    -s, --server=&lt;url&gt;        Specify the JNDI URL of the remote server
    -n, --serverName=&lt;url&gt;    Specify the JMX name of the ServerImpl
    -a, --adapter=&lt;name&gt;      Specify JNDI name of the MBeanServerConnection to use
    -u, --user=&lt;name&gt;         Specify the username for authentication
    -p, --password=&lt;name&gt;     Specify the password for authentication
operations:
    -S, --shutdown            Shutdown the server
    -e, --exit=&lt;code&gt;         Force the VM to exit with a status code
    -H, --halt=&lt;code&gt;         Force the VM to halt with a status code</textarea> 一般来说，我们使用-s参数来关闭，也即通过JNDI URL；<br />若是基于JNDI URL的方式出现这种情况一般有三种可能：<br />其一，<strong>当前应用所使用的default目录内的内容与当前运行jboss自身的default内容不一致</strong>，比如当前jboss版本为4.0.5，而启动时指定的default却是从jboss 4.2.1中cp过来的；这种情况在搭建环境时经常出现，因为一般直接从另外一台linux服务器中scp过来，但其实两台服务器自身安装的jboss版本不一致；<br />其二，shutdown命令中<strong><span style="color: rgb(255, 0, 0);">指定的JNDI端口与实际应用启动的JNDI端口不一致</span></strong>；<br />其三，/etc/<strong>hosts中对当前主机名绑定的IP地址不正确</strong>，比如当前服务器实际的IP地址为10.2.224.214，而hosts中绑定的却是10.0.0.1；<br />总之，出现此类情况都是因为jboss自身无法正确接收到正确的关闭命令所致，一般来说在jboss的server.log中会抛如下的异常信息：<br /><div class="dp-highlighter bg_java"><div class="bar"><div class="tools"><strong>[java]</strong> <a class="ViewSource" title="view plain" href="http://blog.csdn.net/sfdev/article/details/4266728#"><u><font color="#0066cc">view plain</font></u></a><a class="CopyToClipboard" title="copy" href="http://blog.csdn.net/sfdev/article/details/4266728#"><u><font color="#0066cc">copy</font></u></a><a class="PrintSource" title="print" href="http://blog.csdn.net/sfdev/article/details/4266728#"><u><font color="#0066cc">print</font></u></a><a class="About" title="?" href="http://blog.csdn.net/sfdev/article/details/4266728#"><u><font color="#0066cc">?</font></u></a></div></div><ol class="dp-j"><li class="alt"><span>Exception in thread </span><span class="string">"main"</span><span> javax.naming.CommunicationException [Root exception is java.rmi.ConnectException: Connection refused to host: </span><span class="number">10.0</span><span>.</span><span class="number">0.1</span><span>; nested exception is:&nbsp;&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; java.net.ConnectException: Connection timed out]&nbsp;&nbsp; </span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:<span class="number">707</span><span>)&nbsp;&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:<span class="number">572</span><span>)&nbsp;&nbsp; </span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at javax.naming.InitialContext.lookup(InitialContext.java:<span class="number">351</span><span>)&nbsp;&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at org.jboss.Shutdown.main(Shutdown.java:<span class="number">202</span><span>)&nbsp;&nbsp; </span></span></li><li class="alt"><span>Caused by: java.rmi.ConnectException: Connection refused to host: <span class="number">10.0</span><span>.</span><span class="number">0.1</span><span>; nested exception is:&nbsp;&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; java.net.ConnectException: Connection timed out&nbsp;&nbsp; </span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:<span class="number">574</span><span>)&nbsp;&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:<span class="number">185</span><span>)&nbsp;&nbsp; </span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:<span class="number">171</span><span>)&nbsp;&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:<span class="number">94</span><span>)&nbsp;&nbsp; </span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at org.jnp.server.NamingServer_Stub.lookup(Unknown Source)&nbsp;&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:<span class="number">610</span><span>)&nbsp;&nbsp; </span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ... <span class="number">3</span><span> more&nbsp;&nbsp; </span></span></li></ol></div><textarea style="display: none;" class="java" cols="74" rows="15" name="code">Exception in thread "main" javax.naming.CommunicationException [Root exception is java.rmi.ConnectException: Connection refused to host: 10.0.0.1; nested exception is: 
        java.net.ConnectException: Connection timed out] 
        at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:707) 
        at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:572) 
        at javax.naming.InitialContext.lookup(InitialContext.java:351) 
        at org.jboss.Shutdown.main(Shutdown.java:202) 
Caused by: java.rmi.ConnectException: Connection refused to host: 10.0.0.1; nested exception is: 
        java.net.ConnectException: Connection timed out 
        at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:574) 
        at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:185) 
        at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:171) 
        at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:94) 
        at org.jnp.server.NamingServer_Stub.lookup(Unknown Source) 
        at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:610) 
        ... 3 more </textarea> </li><li><strong>如何对Linux下的Jboss应用进行debug？<br /></strong>其实这个问题和Jboss是否部署在Linux下没有直接关系，可以在jboss启动时<strong><span style="color: rgb(255, 0, 0);">指定远程debug端口</span></strong>即可，比如：<br /><div class="dp-highlighter bg_java"><div class="bar"><div class="tools"><strong>[java]</strong> <a class="ViewSource" title="view plain" href="http://blog.csdn.net/sfdev/article/details/4266728#"><u><font color="#0066cc">view plain</font></u></a><a class="CopyToClipboard" title="copy" href="http://blog.csdn.net/sfdev/article/details/4266728#"><u><font color="#0066cc">copy</font></u></a><a class="PrintSource" title="print" href="http://blog.csdn.net/sfdev/article/details/4266728#"><u><font color="#0066cc">print</font></u></a><a class="About" title="?" href="http://blog.csdn.net/sfdev/article/details/4266728#"><u><font color="#0066cc">?</font></u></a></div></div><ol class="dp-j"><li class="alt"><span>-Xrunjdwp:transport=dt_socket,address=</span><span class="number">8787</span><span>,server=y,suspend=n&nbsp; </span></li></ol></div><textarea style="display: none;" class="java" cols="74" rows="1" name="code">-Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n</textarea><br />然后在eclipse中新建remote debug时指定对应的端口即可； </li><br /><a title="Linux下Jboss启动、关闭、端口配置等常见问题FAQ " href="http://blog.csdn.net/sfdev/article/details/4266728">Linux下Jboss启动、关闭、端口配置等常见问题FAQ&nbsp;</a><br /> 
 
<a title="关于JBOSS端口被占用的问题" href="http://blog.csdn.net/sfdev/article/details/2034296">关于JBOSS端口被占用的问题</a><img src ="http://www.blogjava.net/sxyx2008/aggbug/372880.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sxyx2008/" target="_blank">雪山飞鹄</a> 2012-03-28 10:58 <a href="http://www.blogjava.net/sxyx2008/archive/2012/03/28/372880.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>linux jboss 部署时优化设置</title><link>http://www.blogjava.net/sxyx2008/archive/2012/03/27/372825.html</link><dc:creator>雪山飞鹄</dc:creator><author>雪山飞鹄</author><pubDate>Tue, 27 Mar 2012 09:00:00 GMT</pubDate><guid>http://www.blogjava.net/sxyx2008/archive/2012/03/27/372825.html</guid><wfw:comment>http://www.blogjava.net/sxyx2008/comments/372825.html</wfw:comment><comments>http://www.blogjava.net/sxyx2008/archive/2012/03/27/372825.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/sxyx2008/comments/commentRss/372825.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sxyx2008/services/trackbacks/372825.html</trackback:ping><description><![CDATA[<p><a title="Jboss 4.2.3配置与优化" href="http://blog.csdn.net/zhangjunfangkaixin/article/details/5939993">Jboss 4.2.3配置与优化</a><br /><a title="Linux下安装jboss并设置自启动服务" href="http://blog.csdn.net/lanyunit/article/details/6751276">Linux下安装jboss并设置自启动服务</a><br /><a title="windows下JBOSS4.2的安装配置说明" href="http://www.iteye.com/topic/157935">windows下JBOSS4.2的安装配置说明</a><br /><a title="linux下部署jboss " href="http://hx100.blog.51cto.com/44326/337931">linux下部署jboss </a><br /><a title="在LINUX下配置JBOSS " href="http://www.blogjava.net/paulwong/archive/2011/10/28/362221.html">在LINUX下配置JBOSS </a><br /><a title="linux jboss 部署时优化设置" href="http://blog.csdn.net/shine0181/article/details/6372367">linux jboss 部署时优化设置</a><br /></p><img src ="http://www.blogjava.net/sxyx2008/aggbug/372825.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sxyx2008/" target="_blank">雪山飞鹄</a> 2012-03-27 17:00 <a href="http://www.blogjava.net/sxyx2008/archive/2012/03/27/372825.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>linux下启动jboss前注意事项</title><link>http://www.blogjava.net/sxyx2008/archive/2012/03/27/372806.html</link><dc:creator>雪山飞鹄</dc:creator><author>雪山飞鹄</author><pubDate>Tue, 27 Mar 2012 07:44:00 GMT</pubDate><guid>http://www.blogjava.net/sxyx2008/archive/2012/03/27/372806.html</guid><wfw:comment>http://www.blogjava.net/sxyx2008/comments/372806.html</wfw:comment><comments>http://www.blogjava.net/sxyx2008/archive/2012/03/27/372806.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/sxyx2008/comments/commentRss/372806.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sxyx2008/services/trackbacks/372806.html</trackback:ping><description><![CDATA[<div>在linux下启动jboss需要配置JBOSS_HOME环境变量和jdk环境变量<br />其次需要编辑/etc/hosts文件<br />大概如下所示：<br /><pre style="background-image: none; border-bottom: rgb(238,238,238) 1px solid; text-align: left; border-left: rgb(204,204,204) 2px solid; padding-bottom: 10px; overflow-x: auto; overflow-y: auto; widows: 2; text-transform: none; background-color: rgb(255,255,255); list-style-type: none; text-indent: 0px; margin: 10px 20px; padding-left: 10px; outline-width: 0px; width: auto; padding-right: 10px; display: block; border-collapse: collapse; font: 12px 'Droid Sans Mono', monospace; white-space: pre; orphans: 2; letter-spacing: normal; color: rgb(51,51,51); border-top: rgb(238,238,238) 1px solid; border-right: rgb(238,238,238) 1px solid; word-spacing: 0px; padding-top: 10px; background-origin: initial; background-clip: initial; border-image: initial; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" class="jive-pre"><code style="padding-bottom: 0px; border-right-width: 0px; background-color: transparent; list-style-type: none; margin: 0px; padding-left: 0px; outline-width: 0px; padding-right: 0px; border-collapse: collapse; font-family: 'Droid Sans Mono', monospace !important; border-top-width: 0px; border-bottom-width: 0px; color: rgb(51,51,51); font-size: 1em; border-left-width: 0px; padding-top: 0px; background-origin: initial; background-clip: initial; border-image: initial; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px" class="jive-code jive-java">127.0.0.1 localhost locahost.localdomian
192.168.1.12 hostname</code></pre>其中192.168.1.12为机器的IP地址后面的hostname为机器的名称。<br />其次要使用具体的IP地址访问jboss而不使用localhost或127.0.0.1访问需要修改JBOSS_HOME\server\default\deploy\jboss-web.deployer\server.xml中的${jboss.bind.address}为具体的IP地址。在该文件中，具体有两处地方。同样修改端口也在该目录下。<br />&nbsp;&nbsp;&nbsp;&nbsp;启动后用ps -ef |grep -i jboss 查看下进程。确保端口号正确。如果外网还是无法访问，请注意检查防火墙。</div><img src ="http://www.blogjava.net/sxyx2008/aggbug/372806.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sxyx2008/" target="_blank">雪山飞鹄</a> 2012-03-27 15:44 <a href="http://www.blogjava.net/sxyx2008/archive/2012/03/27/372806.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>linux下安装mysql</title><link>http://www.blogjava.net/sxyx2008/archive/2012/03/27/372773.html</link><dc:creator>雪山飞鹄</dc:creator><author>雪山飞鹄</author><pubDate>Tue, 27 Mar 2012 03:18:00 GMT</pubDate><guid>http://www.blogjava.net/sxyx2008/archive/2012/03/27/372773.html</guid><wfw:comment>http://www.blogjava.net/sxyx2008/comments/372773.html</wfw:comment><comments>http://www.blogjava.net/sxyx2008/archive/2012/03/27/372773.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/sxyx2008/comments/commentRss/372773.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sxyx2008/services/trackbacks/372773.html</trackback:ping><description><![CDATA[<p><a title=" CentOS 5.3上yum安装Apache+php+Mysql+phpMyAdmin&#13;&#10;" href="http://yoozhu.com/?p=1457">CentOS 5.3上yum安装Apache+php+Mysql+phpMyAdmin </a><br /><a title="红帽中出现&#8221;This system is not registered with RHN&#8221;的解决方案&#13;&#10;" href="http://www.liuhuadong.com/archives/1152/index.html">红帽中出现&#8221;This system is not registered with RHN&#8221;的解决方案 </a><br /><a title="http://mirrors.163.com/centos/5/os/i386/CentOS/" href="http://mirrors.163.com/centos/5/os/i386/CentOS/">http://mirrors.163.com/centos/5/os/i386/CentOS/</a><br /><a title="yum安装MySQL并设置密码" href="http://51hired.com/questions/3300/yum安装MySQL并设置密码">yum安装MySQL并设置密码</a></p><img src ="http://www.blogjava.net/sxyx2008/aggbug/372773.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sxyx2008/" target="_blank">雪山飞鹄</a> 2012-03-27 11:18 <a href="http://www.blogjava.net/sxyx2008/archive/2012/03/27/372773.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>jboss上部署应用的一处错误</title><link>http://www.blogjava.net/sxyx2008/archive/2012/03/26/372696.html</link><dc:creator>雪山飞鹄</dc:creator><author>雪山飞鹄</author><pubDate>Mon, 26 Mar 2012 03:38:00 GMT</pubDate><guid>http://www.blogjava.net/sxyx2008/archive/2012/03/26/372696.html</guid><wfw:comment>http://www.blogjava.net/sxyx2008/comments/372696.html</wfw:comment><comments>http://www.blogjava.net/sxyx2008/archive/2012/03/26/372696.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/sxyx2008/comments/commentRss/372696.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sxyx2008/services/trackbacks/372696.html</trackback:ping><description><![CDATA[<div>Caused by: java.lang.IllegalArgumentException: Filter mapping must specify either a &lt;url-pattern&gt; or a &lt;servlet-name&gt;</div><div><span style="white-space:pre">	</span>at org.apache.catalina.core.StandardContext.addFilterMap(StandardContext.java:2186)</div><div><span style="white-space:pre">	</span>... 159 more</div><div>11:34:00,579 ERROR [ContextConfig] Parse error in application web.xml file at jndi:/localhost/WEB-INF/web.xml</div><div>java.lang.IllegalArgumentException: Filter mapping must specify either a &lt;url-pattern&gt; or a &lt;servlet-name&gt;</div><div><span style="white-space:pre">	</span>at org.apache.tomcat.util.digester.Digester.createSAXException(Digester.java:2807)</div><div><span style="white-space:pre">	</span>at org.apache.tomcat.util.digester.Digester.createSAXException(Digester.java:2833)</div><div><span style="white-space:pre">	</span>at org.apache.tomcat.util.digester.Digester.endElement(Digester.java:1139)</div><div><span style="white-space:pre">	</span>at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)<br /><span style="color: red; ">产生此错误的原因是filter中的</span><span style="color: red; ">&lt;url-pattern&gt;*&lt;/url-pattern&gt;应改为</span><span style="color: red; ">&lt;url-pattern&gt;/*&lt;/url-pattern&gt;</span></div><img src ="http://www.blogjava.net/sxyx2008/aggbug/372696.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sxyx2008/" target="_blank">雪山飞鹄</a> 2012-03-26 11:38 <a href="http://www.blogjava.net/sxyx2008/archive/2012/03/26/372696.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JBOSS只能用localhost或127.0.0.1访问的解决办法</title><link>http://www.blogjava.net/sxyx2008/archive/2012/03/26/372695.html</link><dc:creator>雪山飞鹄</dc:creator><author>雪山飞鹄</author><pubDate>Mon, 26 Mar 2012 03:30:00 GMT</pubDate><guid>http://www.blogjava.net/sxyx2008/archive/2012/03/26/372695.html</guid><wfw:comment>http://www.blogjava.net/sxyx2008/comments/372695.html</wfw:comment><comments>http://www.blogjava.net/sxyx2008/archive/2012/03/26/372695.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/sxyx2008/comments/commentRss/372695.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sxyx2008/services/trackbacks/372695.html</trackback:ping><description><![CDATA[<div>今天配置了一下新版本的JBOSS，启动后发现只能使用localhost访问了，ip访问不到，查找了一下发现，4.2以上的版本不对所有本机ip进行监听了，解决办法是增加启动参数-b 192.168.x.x或-b 0.0.0.0，或者增加Djboss.bind.address=0.0.0.0参数，或者修改jboss\server\default\deploy\jboss-web.deployer\server.xml里的Connector 下面的address，把变量改成对应的IP或者0.0.0.0。</div><img src ="http://www.blogjava.net/sxyx2008/aggbug/372695.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sxyx2008/" target="_blank">雪山飞鹄</a> 2012-03-26 11:30 <a href="http://www.blogjava.net/sxyx2008/archive/2012/03/26/372695.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Egit 插件更新地址</title><link>http://www.blogjava.net/sxyx2008/archive/2012/03/21/372384.html</link><dc:creator>雪山飞鹄</dc:creator><author>雪山飞鹄</author><pubDate>Wed, 21 Mar 2012 09:29:00 GMT</pubDate><guid>http://www.blogjava.net/sxyx2008/archive/2012/03/21/372384.html</guid><wfw:comment>http://www.blogjava.net/sxyx2008/comments/372384.html</wfw:comment><comments>http://www.blogjava.net/sxyx2008/archive/2012/03/21/372384.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/sxyx2008/comments/commentRss/372384.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sxyx2008/services/trackbacks/372384.html</trackback:ping><description><![CDATA[<div>eclipse之git插件egit<br />在线安装地址:<a href="http://download.eclipse.org/egit/updates">http://download.eclipse.org/egit/updates</a></div><img src ="http://www.blogjava.net/sxyx2008/aggbug/372384.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sxyx2008/" target="_blank">雪山飞鹄</a> 2012-03-21 17:29 <a href="http://www.blogjava.net/sxyx2008/archive/2012/03/21/372384.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>