溫馨提示:您的每一次轉載,體現了我寫此文的意義!!!煩請您在轉載時注明出處http://www.aygfsteel.com/sxyx2008/謝謝合作!!!

          雪山飛鵠

          溫馨提示:您的每一次轉載,體現了我寫此文的意義!!!煩請您在轉載時注明出處http://www.aygfsteel.com/sxyx2008/謝謝合作!!!

          BlogJava 首頁 新隨筆 聯系 聚合 管理
            215 Posts :: 1 Stories :: 674 Comments :: 0 Trackbacks

          公告

          Locations of visitors to this page

          常用鏈接

          留言簿(18)

          隨筆分類(222)

          隨筆檔案(214)

          文章檔案(1)

          收藏夾(67)

          我的鏈接

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          置頂隨筆 #

               摘要:   jsvalidation客戶端JavaScript驗證框架使用手冊 jsvalidation.pdf  jsvalidationdemo.zip 1.       JSValidation是什么?        官方地址:http:/...  閱讀全文
          posted @ 2009-11-26 14:31 雪山飛鵠 閱讀(4135) | 評論 (6)編輯 收藏

          2012年9月25日 #

          該項目基于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框架的糅合,主要是介紹各種技術。

          介紹下目前使用的各個框架的版本信息

          Struts1 1.3.10

          Struts2 2.3.8

          Spring 3.2.0.RELEASE

          Hibernate 4.2.0.Final

          Ibatis 2.3.4.726

          MyBatis 3.1.1

          Spring Data JPA 1.3.0.RELEASE

          DWR 3.0.M1

          項目中的持久化框架sql語句的跟蹤采用了log4jdbc4結合log4j,在控制臺可以看到完整的sql語句。

          該項目中使用到的技術均與Spring已集成。除了DWR與Spring集成使用xml文件中配置bean外 其他的bean均使用注解完善。每一個與數據庫有關的都有事務處理。

          項目結構圖


          項目托管SVN地址:http://maven-framework-project.googlecode.com/svn/trunk/ (限于大陸google code 不穩定,導致經常無法訪問,該地址已不在同步,建議使用github地址)
          項目托管GitHub地址:https://github.com/sxyx2008/maven-framework-project/(推薦使用)

          最后希望有興趣的朋友可以加入進來,大家一起完善他。把自己的技術分享出來。如有任何問題可以與我聯系

          聯系方式

          QQ:184675420

          Email:sxyx2008@gmail.com

          posted @ 2012-09-25 11:40 雪山飛鵠 閱讀(5101) | 評論 (2)編輯 收藏

          2012年9月5日 #

          build.xml
          <?xml version="1.0" encoding="UTF-8"?>
          <project default="run" name="build-project-with-ant">
              
              <!-- 最終編譯后的jar包名稱 -->
              <property name="jar.prefix-name" value="cms"></property>
              <property name="jar.version" value="1.0"></property>
              <property name="tomcat.version" value="6.0.18" />
              
              <property name="mailhost" value="smtp.qq.com"></property>
              <property name="username" value="**********" />
              <property name="password" value="**********"></property>
              <property name="mailfrom" value="184675420@qq.com" />
              <property name="mailto" value="184675420@qq.com"></property>
              <property name="mailsubject" value="使用Ant自助構建項目測試打包文檔"></property>
              
              <!-- 項目構建時所需要的lib -->
              <property name="project.lib.dir" value="${basedir}/WebRoot/WEB-INF/lib"></property>

              <!-- 項目構建時tomcat的home目錄 -->
              <property name="tomcat.download.url" value="http://archive.apache.org/dist/tomcat/tomcat-6/v${tomcat.version}/bin/apache-tomcat-${tomcat.version}.zip"></property>
              
              <!-- 項目構建時下載tomcat的存放目錄 -->
              <property name="tomcat.dir" value="${basedir}/dist/"></property>
              
              <!-- 定義項目的當前目錄 -->
              <property name="basedir" value="."/>
              <!-- 定義項目源碼目錄 -->
              <property name="src.dir" value="${basedir}/src"></property>
              <!-- 定義項目源碼編譯后的目錄 -->
              <property name="build.dir" value="${basedir}/classes"></property>
              <!-- 定義項目最終編譯生成的目錄 -->
              <property name="dist.dir" value="${basedir}/dist"></property>
              <!-- 定義項目文檔的目錄 -->
              <property name="doc.dir" value="${basedir}/doc"></property>
              <!-- 定義項目文檔api的目錄 -->
              <property name="doc.dir.api" value="${doc.dir}/api"></property>
              <!-- 定義項目單元測試文檔的目錄 -->
              <property name="junit.doc.dir" value="${basedir}/doc/api/junit"></property>
              <!-- 定義項目單元測試源碼的目錄 -->    
              <property name="junit.src.dir" value="${basedir}/test"></property>
              <!-- 定義項目單元測試編譯的目錄 -->    
              <property name="junit.dir" value="${basedir}/junit"></property>
              <property name="junit.build.dir" value="${junit.dir}/classes"></property>
              <!-- 定義項目單元測試測試報告的目錄 -->    
              <property name="junit.report.dir" value="${junit.dir}/report"></property>
              
              
              <target name="init" description="init">
                  
                  <echo>項目初始化設置</echo>
                  
                  <delete dir="${build.dir}"></delete>
                  <delete dir="${dist.dir}"></delete>
                  <delete dir="${doc.dir}"></delete>
                  <delete dir="${junit.dir}"></delete>
                  
                  <mkdir dir="${build.dir}"/>
                  <mkdir dir="${dist.dir}"/>
                  <mkdir dir="${doc.dir}"/>
                  <mkdir dir="${junit.build.dir}"/>
                  <mkdir dir="${junit.report.dir}"/>
                  
              </target>
              
              
              <target name="compile" depends="init" description="compile source">
                  <echo>編譯源碼</echo>
                  <javac srcdir="${src.dir}" includeantruntime="false" destdir="${build.dir}" verbose="true">
                  <classpath>
                      <fileset dir="${project.lib.dir}">
                          <include name="*.jar"/>
                      </fileset>
                  </classpath>
                  </javac>
              </target>


              <target name="api-doc" depends="compile" description="build javadoc">
                  <echo>生成api-doc幫助文檔</echo>
                  <javadoc
                         destdir="${doc.dir.api}"
                         author="true"
                         version="true"
                         use="true"
                         windowtitle="${jar.prefix-name} API"
                         sourcepath="${src.dir}">
                      <doctitle><![CDATA[<h1>Test</h1>]]></doctitle>
                      <bottom><![CDATA[<i>Copyright © 2012 Dummy Corp. All Rights Reserved.</i>]]></bottom>
                      
                      <classpath>
                          <fileset dir="${project.lib.dir}">
                              <include name="*.jar"/>
                          </fileset>
                      </classpath>
                  </javadoc>
              </target>
              
              <target name="junit-javac" depends="api-doc" description="junit test case compile">
                  <echo>編譯junit</echo>
                  <javac destdir="${junit.build.dir}" srcdir="${junit.src.dir}" fork="false" includeantruntime="false">
                  <classpath>
                      <fileset dir="${project.lib.dir}">
                          <include name="*.jar"/>
                      </fileset>
                  </classpath>
                  </javac>
              </target>
              
              <target name="junit-run" depends="junit-javac" description="junit test case execute">
                  <echo>運行單元測試</echo>
                  <junit printsummary="yes" haltonfailure="false">
                      <classpath>
                          <pathelement location="${junit.build.dir}"/>
                          <fileset dir="${project.lib.dir}">
                              <include name="*.jar"/>
                          </fileset>
                      </classpath>
                      <formatter type="xml"/>
                      <batchtest todir="${junit.report.dir}">
                          <fileset dir="${junit.src.dir}">
                              <include name="**/*Test.java"/>
                          </fileset>
                      </batchtest>
                  </junit>
              </target>
              
              <target name="junit-report" depends="junit-run" description="junit test case report">
                  <echo>生成單元測試報告</echo>
                  <junitreport todir="${junit.report.dir}">
                      <fileset dir="${junit.report.dir}">
                          <include name="**/*.xml"/>
                      </fileset>
                      <report format="frames" todir="${junit.report.dir}/html"/>
                  </junitreport>
                  
              </target>
              
              <target name="junit-doc" depends="junit-report" description="build javadoc">
                  <echo>生成junit-doc幫助文檔</echo>
                  <javadoc
                         destdir="${junit.doc.dir}"
                         author="true"
                         version="true"
                         use="true"
                         windowtitle="Junit Test API"
                         sourcepath="${junit.src.dir}">
                      <classpath>
                          <fileset dir="${project.lib.dir}">
                              <include name="*.jar"/>
                          </fileset>
                      </classpath>
                      <doctitle><![CDATA[<h1>Test</h1>]]></doctitle>
                      <bottom><![CDATA[<i>Copyright © 2012 Dummy Corp. All Rights Reserved.</i>]]></bottom>
                  </javadoc>
              </target>
              
              <target name="package" depends="api-doc" description="package">
                  <echo>使用jar打包編譯后的class文件</echo>
                  <jar destfile="${dist.dir}/${jar.prefix-name}-${jar.version}.jar" includes="**/*.class" basedir="${build.dir}">
                  </jar>
                  <echo>使用zip打包源碼</echo>
                  <zip destfile="${dist.dir}/${jar.prefix-name}-source.zip" basedir="${src.dir}">
                      <exclude name="**/*.class"/>
                  </zip>
                  <echo>使用zip打包javadoc</echo>
                  <zip destfile="${dist.dir}/${jar.prefix-name}-doc.zip" basedir="${doc.dir.api}">
                  </zip>
                  <echo>使用war打war包</echo>
                  <war destfile="${dist.dir}/${jar.prefix-name}.war" webxml="${basedir}/WebRoot/WEB-INF/web.xml">
                      <fileset dir="${basedir}/WebRoot">
                          <include name="**/*.*"/>
                      </fileset>
                      <!--
                      <lib dir="${basedir}/WebRoot/WEB-INF/lib"></lib>
                      <classes dir="${basedir}/WebRoot/WEB-INF/classes"></classes>
                      -->
                  </war>
              </target>
              
              <target name="junit-package" depends="junit-doc" description="junit-package">
                  <echo>打包</echo>
                  <echo>使用jar打包編譯后的class文件</echo>
                  <jar destfile="${dist.dir}/${jar.prefix-name}-${jar.version}.jar" includes="**/*.class" basedir="${build.dir}">
                  </jar>
                  <echo>使用zip打包源碼</echo>
                  <zip destfile="${dist.dir}/${jar.prefix-name}-source.zip" basedir="${src.dir}">
                      <exclude name="**/*.class"/>
                  </zip>
                  <echo>使用zip打包javadoc</echo>
                  <zip destfile="${dist.dir}/${jar.prefix-name}-doc.zip" basedir="${doc.dir.api}">
                  </zip>
                  <echo>使用war打war包</echo>
                  <war destfile="${dist.dir}/${jar.prefix-name}.war" webxml="${basedir}/WebRoot/WEB-INF/web.xml">
                      <fileset dir="${basedir}/WebRoot">
                          <include name="**/*.*"/>
                      </fileset>
                      <!--
                      <lib dir="${basedir}/WebRoot/WEB-INF/lib"></lib>
                      <classes dir="${basedir}/WebRoot/WEB-INF/classes"></classes>
                      -->
                  </war>
                  <echo>使用jar打junit單元測試編譯好的class文件</echo>
                  <jar destfile="${dist.dir}/${jar.prefix-name}-junit-${jar.version}.jar" includes="**/*.class" basedir="${junit.build.dir}">
                  </jar>
                  <echo>使用zip打junit單元測試源文件</echo>
                  <zip destfile="${dist.dir}/${jar.prefix-name}-junit-source.zip" basedir="${junit.src.dir}">
                      <exclude name="**/*.class"/>
                  </zip>
                  <echo>使用zip打junit單元測試測試報告</echo>
                  <zip destfile="${dist.dir}/junit-report.zip" basedir="${junit.report.dir}/html">
                  </zip>
              </target>
              
              
              
              <target name="clean">
                  <echo>清理項目</echo>
                  <delete dir="${build.dir}" includeemptydirs="true"></delete>
                  <delete dir="${doc.dir}" includeemptydirs="true"></delete>
                  <delete dir="${junit.dir}" includeemptydirs="true"></delete>
              </target>
              
              
              <target name="mail"  description="use java mail send mail message" depends="clean">
                  
                  <echo>將打包的文件email發送</echo>
                  <mail
                      mailhost="${mailhost}"
                      mailport="25"
                      subject="${mailsubject}"  
                      charset="utf-8"
                      user="${username}"
                      password="${password}"
                      >
                    <from address="${mailfrom}"/>
                    <to address="${mailto}"/>
                    <message>使用Ant自助構建項目測試打包文檔</message>
                    <attachments>
                      <fileset dir="${dist.dir}">
                        <include name="*.*"/>
                      </fileset>
                    </attachments>
                  </mail>
              </target>
              
              
              <target name="wget" depends="mail">
                  <echo>下載tomcat</echo>
                  <get dest="${tomcat.dir}" verbose="true">
                    <url url="${tomcat.download.url}"/>
                  </get>
              </target>
              
              
              <target name="unzip" depends="wget">
                  <echo>解壓tomcat</echo>
                  <unzip src="${tomcat.dir}/apache-tomcat-${tomcat.version}.zip" dest="${tomcat.dir}">
                  </unzip>
              </target>
              
              <target name="copy" depends="unzip">
                  <echo>拷貝war包到tomcat中部署</echo>
                   <copy file="${dist.dir}/${jar.prefix-name}.war" tofile="${tomcat.dir}/apache-tomcat-${tomcat.version}/webapps/${jar.prefix-name}.war"/>
              </target>
              
              <target name="startup" depends="copy">
                  <echo>啟動tomcat web容器</echo>
                  <exec executable="${tomcat.dir}/apache-tomcat-${tomcat.version}/bin/startup.bat">
                       <env key="CATALINA_HOME" path="${tomcat.dir}/apache-tomcat-${tomcat.version}/"/>
                  </exec>
              </target>
              
              
              <target name="run" depends="package,startup" description="不存在單元測試時執行的任務">
              </target>
              
              <target name="junitrun" depends="junit-package,startup" description="存在單元測試時執行的任務">
              </target>
              
              
              
              
          </project>
          構建控制臺日志
          init:
               [echo] 項目初始化設置
             [delete] Deleting directory D:\workspace\Ant1\classes
             [delete] Deleting directory D:\workspace\Ant1\dist
             [delete] Deleting directory D:\workspace\Ant1\doc
             [delete] Deleting directory D:\workspace\Ant1\junit
              [mkdir] Created dir: D:\workspace\Ant1\classes
              [mkdir] Created dir: D:\workspace\Ant1\dist
              [mkdir] Created dir: D:\workspace\Ant1\doc
              [mkdir] Created dir: D:\workspace\Ant1\junit\classes
              [mkdir] Created dir: D:\workspace\Ant1\junit\report
          compile:
               [echo] 編譯源碼
              [javac] Compiling 3 source files to D:\workspace\Ant1\classes
          junit-javac:
               [echo] 編譯junit
              [javac] Compiling 1 source file to D:\workspace\Ant1\junit\classes
          junit-run:
               [echo] 運行單元測試
              [junit] Running com.junit.test.OtherTest
              [junit] Tests run: 2, Failures: 0, Errors: 0, Time elapsed: 0.027 sec
          junit-report:
               [echo] 生成單元測試報告
          [junitreport] Processing D:\workspace\Ant1\junit\report\TESTS-TestSuites.xml to C:\Users\scott\AppData\Local\Temp\null1056173236
          [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
          [junitreport] Transform time: 334ms
          [junitreport] Deleting: C:\Users\scott\AppData\Local\Temp\null1056173236
          doc:
               [echo] 生成幫助文檔
            [javadoc] Generating Javadoc
            [javadoc] Javadoc execution
            [javadoc] 正在創建目標目錄: "D:\workspace\Ant1\doc\api\"
            [javadoc] 正在裝入軟件包 com.ant.lesson1 的源文件...
            [javadoc] 正在構造 Javadoc 信息...
            [javadoc] 標準 Doclet 版本 1.6.0_25
            [javadoc] 正在構建所有軟件包和類的樹...
            [javadoc] 正在生成 D:\workspace\Ant1\doc\api\com/ant/lesson1/\Main.html...
            [javadoc] 正在生成 D:\workspace\Ant1\doc\api\com/ant/lesson1/\MyHttpServlet.html...
            [javadoc] 正在生成 D:\workspace\Ant1\doc\api\com/ant/lesson1/\SimpleTask.html...
            [javadoc] 正在生成 D:\workspace\Ant1\doc\api\com/ant/lesson1/\package-frame.html...
            [javadoc] 正在生成 D:\workspace\Ant1\doc\api\com/ant/lesson1/\package-summary.html...
            [javadoc] 正在生成 D:\workspace\Ant1\doc\api\com/ant/lesson1/\package-tree.html...
            [javadoc] 正在生成 D:\workspace\Ant1\doc\api\constant-values.html...
            [javadoc] 正在生成 D:\workspace\Ant1\doc\api\serialized-form.html...
            [javadoc] 正在生成 D:\workspace\Ant1\doc\api\com/ant/lesson1/\class-use\SimpleTask.html...
            [javadoc] 正在生成 D:\workspace\Ant1\doc\api\com/ant/lesson1/\class-use\MyHttpServlet.html...
            [javadoc] 正在生成 D:\workspace\Ant1\doc\api\com/ant/lesson1/\class-use\Main.html...
            [javadoc] 正在生成 D:\workspace\Ant1\doc\api\com/ant/lesson1/\package-use.html...
            [javadoc] 正在構建所有軟件包和類的索引...
            [javadoc] 正在生成 D:\workspace\Ant1\doc\api\overview-tree.html...
            [javadoc] 正在生成 D:\workspace\Ant1\doc\api\index-all.html...
            [javadoc] 正在生成 D:\workspace\Ant1\doc\api\deprecated-list.html...
            [javadoc] 正在構建所有類的索引...
            [javadoc] 正在生成 D:\workspace\Ant1\doc\api\allclasses-frame.html...
            [javadoc] 正在生成 D:\workspace\Ant1\doc\api\allclasses-noframe.html...
            [javadoc] 正在生成 D:\workspace\Ant1\doc\api\index.html...
            [javadoc] 正在生成 D:\workspace\Ant1\doc\api\help-doc.html...
            [javadoc] 正在生成 D:\workspace\Ant1\doc\api\stylesheet.css...
            [javadoc] Generating Javadoc
            [javadoc] Javadoc execution
            [javadoc] 正在創建目標目錄: "D:\workspace\Ant1\doc\api\junit\"
            [javadoc] 正在裝入軟件包 com.junit.test 的源文件...
            [javadoc] 正在構造 Javadoc 信息...
            [javadoc] 標準 Doclet 版本 1.6.0_25
            [javadoc] 正在構建所有軟件包和類的樹...
            [javadoc] 正在生成 D:\workspace\Ant1\doc\api\junit\com/junit/test/\OtherTest.html...
            [javadoc] 正在生成 D:\workspace\Ant1\doc\api\junit\com/junit/test/\package-frame.html...
            [javadoc] 正在生成 D:\workspace\Ant1\doc\api\junit\com/junit/test/\package-summary.html...
            [javadoc] 正在生成 D:\workspace\Ant1\doc\api\junit\com/junit/test/\package-tree.html...
            [javadoc] 正在生成 D:\workspace\Ant1\doc\api\junit\constant-values.html...
            [javadoc] 正在生成 D:\workspace\Ant1\doc\api\junit\com/junit/test/\class-use\OtherTest.html...
            [javadoc] 正在生成 D:\workspace\Ant1\doc\api\junit\com/junit/test/\package-use.html...
            [javadoc] 正在構建所有軟件包和類的索引...
            [javadoc] 正在生成 D:\workspace\Ant1\doc\api\junit\overview-tree.html...
            [javadoc] 正在生成 D:\workspace\Ant1\doc\api\junit\index-all.html...
            [javadoc] 正在生成 D:\workspace\Ant1\doc\api\junit\deprecated-list.html...
            [javadoc] 正在構建所有類的索引...
            [javadoc] 正在生成 D:\workspace\Ant1\doc\api\junit\allclasses-frame.html...
            [javadoc] 正在生成 D:\workspace\Ant1\doc\api\junit\allclasses-noframe.html...
            [javadoc] 正在生成 D:\workspace\Ant1\doc\api\junit\index.html...
            [javadoc] 正在生成 D:\workspace\Ant1\doc\api\junit\help-doc.html...
            [javadoc] 正在生成 D:\workspace\Ant1\doc\api\junit\stylesheet.css...
          package:
               [echo] 打包
                [jar] Building jar: D:\workspace\Ant1\dist\cms-1.0.jar
                [zip] Building zip: D:\workspace\Ant1\dist\cms-source.zip
                [zip] Building zip: D:\workspace\Ant1\dist\cms-doc.zip
                [jar] Building jar: D:\workspace\Ant1\dist\cms-junit-1.0.jar
                [zip] Building zip: D:\workspace\Ant1\dist\cms-junit-source.zip
                [zip] Building zip: D:\workspace\Ant1\dist\junit-report.zip
                [war] Building war: D:\workspace\Ant1\dist\cms.war
          clean:
               [echo] 清理項目
             [delete] Deleting directory D:\workspace\Ant1\classes
             [delete] Deleting directory D:\workspace\Ant1\doc
             [delete] Deleting directory D:\workspace\Ant1\junit
          mail:
               [echo] 將打包的文件email發送
               [mail] Sending email: Test build
          最終編譯后的目錄為
          posted @ 2012-09-05 16:26 雪山飛鵠 閱讀(2809) | 評論 (0)編輯 收藏

          2012年4月1日 #

           

          package com.shortcut;
          import android.app.Activity;
          import android.content.ContentResolver;
          import android.content.Intent;
          import android.content.Intent.ShortcutIconResource;
          import android.database.Cursor;
          import android.net.Uri;
          import android.os.Bundle;

          public class AddShortCutActivity extends Activity {
              @Override
              
          public void onCreate(Bundle savedInstanceState) {
                  
          super.onCreate(savedInstanceState);
                  setContentView(R.layout.main);
                  
          boolean flag = IfaddShortCut();// 如果已經創建,則不需要在創建
                  if (flag == false{
                      addShortCut();
                  }

              }


              
          public void addShortCut() {
                  Intent shortcut 
          = new Intent("com.android.launcher.action.INSTALL_SHORTCUT");
                  
          // 設置屬性
                  shortcut.putExtra(Intent.EXTRA_SHORTCUT_NAME,getResources().getString(R.string.app_name));
                  ShortcutIconResource iconRes 
          = Intent.ShortcutIconResource.fromContext(AddShortCutActivity.this, R.drawable.ic_launcher);
                  shortcut.putExtra(Intent.EXTRA_SHORTCUT_ICON, iconRes);

                  
          // 是否允許重復創建
                  shortcut.putExtra("duplicate"false);
                  Intent intent 
          = new Intent(Intent.ACTION_MAIN);
                  intent.setFlags(Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
                  intent.addFlags(Intent.FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY);
                  intent.addCategory(Intent.CATEGORY_LAUNCHER);
                  intent.setClass(AddShortCutActivity.
          this, AddShortCutActivity.class);
                  
          // 設置啟動程序
                  System.out.println("createIcon");
                  shortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT, intent);
                  AddShortCutActivity.
          this.sendBroadcast(shortcut);
              }


              
          public boolean IfaddShortCut() {
                  
          boolean isInstallShortcut = false;
                  
          final ContentResolver cr = AddShortCutActivity.this.getContentResolver();
                  
          // 本人的2.2系統是”com.android.launcher2.settings”,網上見其他的為"com.android.launcher.settings"
                  final String AUTHORITY = "com.android.launcher2.settings";
                  
          final Uri CONTENT_URI = Uri.parse("content://" + AUTHORITY + "/favorites?notify=true");
                  Cursor c 
          = cr.query(CONTENT_URI,
                          
          new String[] "title""iconResource" }"title=?",
                          
          new String[] { getString(R.string.app_name) }null);
                  
          if (c != null && c.getCount() > 0{
                      isInstallShortcut 
          = true;
                  }

                  
          return isInstallShortcut;
              }

          }

           

          <?xml version="1.0" encoding="utf-8"?>
          <manifest xmlns:android="http://schemas.android.com/apk/res/android"
              package
          ="com.shortcut"
              android:versionCode
          ="1"
              android:versionName
          ="1.0" >

              
          <uses-sdk android:minSdkVersion="8" />

              
          <application
                  
          android:icon="@drawable/ic_launcher"
                  android:label
          ="@string/app_name" >
                  
          <activity
                      
          android:label="@string/app_name"
                      android:name
          =".AddShortCutActivity" >
                      
          <intent-filter >
                          
          <action android:name="android.intent.action.MAIN" />
                          
          <category android:name="android.intent.category.LAUNCHER" />
                      
          </intent-filter>
                      
          <intent-filter>  
                          
          <action android:name="android.intent.action.CREATE_SHORTCUT"></action>  
                      
          </intent-filter>  
                  
          </activity>
              
          </application>
              
          <uses-permission android:name="com.android.launcher.permission.READ_SETTINGS"/>   
              
          <uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"/>  
          </manifest>

           

          Android Shortcut操作(一)
          http://www.eoeandroid.com/thread-92125-1-1.html

           Android Shortcut操作(二)
          http://www.eoeandroid.com/thread-92128-1-1.html
          posted @ 2012-04-01 13:34 雪山飛鵠 閱讀(1958) | 評論 (1)編輯 收藏

          2012年3月28日 #

          1. 單臺Linux服務器中如何部署多個獨立應用,即多個應用不能run在一個jboss實例中?
            換言之,這個問題也可以這樣描述:在單臺Linux服務器中服務啟動多個Jboss實例?
            默認情況下,jboss啟動時加載server/default/目錄下的配置,要實現多個實例的啟動,主要是解決端口沖突的問題,因為一套端口只能被一個應用占有;
            一般來說,我們可以在Jboss啟動時通過-Djboss.server.home設置當前實例啟動時加載不同的目錄來實現;
            比如Jboss主程序安裝在/usr/xx/jboss/,應用放在/home/admin/app/;那此時就可以cp一份default目錄到當前應用app目錄下,通過-Djboss.server.home=/home/admin/app/default來啟動該實例;
            若直接在/usr/xx/jboss/server/下復制default目錄并改名為yy,則可以用更簡單的參數-c yy來啟動;
            對于多應用的情況,我們仍然要解決端口沖突的問題,有兩種方式:
            其一,直接修改各應用對應的default目錄下的所有配置端口,主要涉及配置文件conf/jboss-service.xml、tomcat下的server.xml;該方法比較土,很容易出錯,因為端口眾多,只要有一項端口沒有改,jboss就將無法正常啟動;若應用較少,比如就只有2個,那這種方式勉強可以用用;
            其二,在jboss-service.xml中啟用jboss.system:service=ServiceBindingManager這個mbean服務,設置ServerName、StoreURL屬性;將各套應用對應的端口全部配置在同一個文件中;推薦采用該方案,具體可參考:

          1. <mbean code="org.jboss.services.binding.ServiceBindingManager" 
          2.   name="jboss.system:service=ServiceBindingManager"> 
          3.   <attribute name="ServerName">ports-01</attribute> 
          4.   <attribute name="StoreURL">${jboss.home.url}/docs/examples/binding-manager/sample-bindings.xml</attribute> 
          5.   <attribute name="StoreFactoryClassName"> 
          6.     org.jboss.services.binding.XMLServicesStoreFactory 
          7.   </attribute> 
          8. </mbean> 

           

        1. Jboss無法正常啟動,報異常javax.management.MBeanRegistrationException: preRegister() failed?
          一般來說,上面的異常出現在4.2及其以后的版本中,比較詳細的異常如下:
          1. javax.management.MBeanRegistrationException: preRegister() failed: [ObjectName='jboss.remoting:service=NetworkRegistry', Class=org.jboss.remoting.network.NetworkRegistry (org.jboss.remoting.network.NetworkRegistry@16b6c55)] 
          2.         at org.jboss.mx.server.registry.BasicMBeanRegistry.invokePreRegister(BasicMBeanRegistry.java:713
          3.         at org.jboss.mx.server.registry.BasicMBeanRegistry.registerMBean(BasicMBeanRegistry.java:211
          4.         at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source) 
          5.         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25
          6.         at java.lang.reflect.Method.invoke(Method.java:585
          7.         at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155
          8.         ... 51 more 
          9. Caused by: java.lang.RuntimeException: Exception creating identity: mall_dev4: mall_dev4 
          10.         at org.jboss.remoting.ident.Identity.get(Identity.java:211
          11.         at org.jboss.remoting.network.NetworkRegistry.preRegister(NetworkRegistry.java:268
          12.         at org.jboss.mx.server.AbstractMBeanInvoker.invokePreRegister(AbstractMBeanInvoker.java:966
          13.         at org.jboss.mx.modelmbean.ModelMBeanInvoker.invokePreRegister(ModelMBeanInvoker.java:489
          14.         at org.jboss.mx.server.AbstractMBeanInvoker.preRegister(AbstractMBeanInvoker.java:654
          15.         at org.jboss.mx.server.registry.BasicMBeanRegistry.invokePreRegister(BasicMBeanRegistry.java:697
          16.         ... 56 more 

          這主要是因為Jboss啟動了一個jboss.remoting:service=NetworkRegistry的mbean服務,啟動時卻又無法根據當前hostname找到IP!
          解決方案為在/etc/hosts中綁定當前服務器的主機名和IP,比如10.2.224.214 mall_dev4;
          對于4.2系列之前的版本,如果沒有綁定主機名和IP,雖然會出現以下的異常,但并不一定會影響應用的正常啟動;
          1. 11:32:12,427 WARN  [ServiceController] Problem starting service jboss:service=invoker,type=http 
          2. java.net.UnknownHostException: mall_dev4: mall_dev4 
          3.         at java.net.InetAddress.getLocalHost(InetAddress.java:1308
          4.         at org.jboss.invocation.http.server.HttpInvoker.checkInvokerURL(HttpInvoker.java:204
          5.         at org.jboss.invocation.http.server.HttpInvoker.startService(HttpInvoker.java:101
          6.         at org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanSupport.java:289
          7.         at org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMBeanSupport.java:245
          8.         at sun.reflect.GeneratedMethodAccessor2.invoke(Unknown Source) 
          9.         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25
          10.         at java.lang.reflect.Method.invoke(Method.java:585
          11.         at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155
          12.         at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94
          13.         at org.jboss.mx.server.Invocation.invoke(Invocation.java:86
          14.         at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264
          15.         at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659
          16.         at org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.java:978
          17.         at $Proxy0.start(Unknown Source) 
          18.         at org.jboss.system.ServiceController.start(ServiceController.java:417
        2. Jboss已經正常啟動,但是無法用IP或者綁定IP訪問應用?
          熟悉Linux相關知識的筒靴都知道一個端口是綁定在某個地址上的,可以是一個,也可以是多個,一個端口在同一個地址上不能被兩個應用占有;
          出現這個問題一般是因為你使用的是4.2系列及其之后的版本,因為從這個系列開始,Jboss默認綁定的端口由之前的0.0.0.0變成了127.0.0.1;前者表示綁定當前服務器下所有地址,包括自身的IP、127.0.0.1;而后者只綁定了127.0.0.1,而沒有綁定本機IP,通過IP去訪問應用自然也就無法成功了,因為訪問的IP地址沒有開放對應的端口;
          對于默認的這種情況,一般來說jboss是要和apache搭配使用的,apache暴露應用外部訪問的端口,然后apache再監聽本地(也就是127.0.0.1)的端口;
          當然這個默認配置也是可以修改的,方式也比較多,比如:
          方式1,啟動腳本中通過參數-b, --host=<host or ip>指定地址,比如-b 0.0.0.0就表示綁定所有地址;
          方式2,啟動腳本中通過參數-Djboss.bind.address指定地址,比如-Djboss.bind.address=0.0.0.0;
          方式3,直接修改需要對外暴露的端口綁定地址,比如tomcat/server.xml中的http端口綁定address信息;
        3. Jboss正常啟動,但是用shutdown腳本無法關閉應用?
          對于jboss的關閉,shutdown命令允許好幾種方式的關閉,可以參考該命令的幫助:
          1. usage: shutdown [options] <operation> 
          2. options: 
          3.     -h, --help                Show this help message (default
          4.     -D<name>[=<value>]        Set a system property 
          5.     --                        Stop processing options 
          6.     -s, --server=<url>        Specify the JNDI URL of the remote server 
          7.     -n, --serverName=<url>    Specify the JMX name of the ServerImpl 
          8.     -a, --adapter=<name>      Specify JNDI name of the MBeanServerConnection to use 
          9.     -u, --user=<name>         Specify the username for authentication 
          10.     -p, --password=<name>     Specify the password for authentication 
          11. operations: 
          12.     -S, --shutdown            Shutdown the server 
          13.     -e, --exit=<code>         Force the VM to exit with a status code 
          14.     -H, --halt=<code>         Force the VM to halt with a status code 
          一般來說,我們使用-s參數來關閉,也即通過JNDI URL;
          若是基于JNDI URL的方式出現這種情況一般有三種可能:
          其一,當前應用所使用的default目錄內的內容與當前運行jboss自身的default內容不一致,比如當前jboss版本為4.0.5,而啟動時指定的default卻是從jboss 4.2.1中cp過來的;這種情況在搭建環境時經常出現,因為一般直接從另外一臺linux服務器中scp過來,但其實兩臺服務器自身安裝的jboss版本不一致;
          其二,shutdown命令中指定的JNDI端口與實際應用啟動的JNDI端口不一致;
          其三,/etc/hosts中對當前主機名綁定的IP地址不正確,比如當前服務器實際的IP地址為10.2.224.214,而hosts中綁定的卻是10.0.0.1;
          總之,出現此類情況都是因為jboss自身無法正確接收到正確的關閉命令所致,一般來說在jboss的server.log中會拋如下的異常信息:
          1. Exception in thread "main" javax.naming.CommunicationException [Root exception is java.rmi.ConnectException: Connection refused to host: 10.0.0.1; nested exception is:  
          2.         java.net.ConnectException: Connection timed out]  
          3.         at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:707)  
          4.         at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:572)  
          5.         at javax.naming.InitialContext.lookup(InitialContext.java:351)  
          6.         at org.jboss.Shutdown.main(Shutdown.java:202)  
          7. Caused by: java.rmi.ConnectException: Connection refused to host: 10.0.0.1; nested exception is:  
          8.         java.net.ConnectException: Connection timed out  
          9.         at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:574)  
          10.         at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:185)  
          11.         at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:171)  
          12.         at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:94)  
          13.         at org.jnp.server.NamingServer_Stub.lookup(Unknown Source)  
          14.         at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:610)  
          15.         ... 3 more  
        4. 如何對Linux下的Jboss應用進行debug?
          其實這個問題和Jboss是否部署在Linux下沒有直接關系,可以在jboss啟動時指定遠程debug端口即可,比如:
          1. -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n 

          然后在eclipse中新建remote debug時指定對應的端口即可;

        5. Linux下Jboss啟動、關閉、端口配置等常見問題FAQ 
          關于JBOSS端口被占用的問題
          posted @ 2012-03-28 10:58 雪山飛鵠 閱讀(5422) | 評論 (0)編輯 收藏

          2012年3月27日 #

          Jboss 4.2.3配置與優化
          Linux下安裝jboss并設置自啟動服務
          windows下JBOSS4.2的安裝配置說明
          linux下部署jboss
          在LINUX下配置JBOSS
          linux jboss 部署時優化設置

          posted @ 2012-03-27 17:00 雪山飛鵠 閱讀(831) | 評論 (0)編輯 收藏

          在linux下啟動jboss需要配置JBOSS_HOME環境變量和jdk環境變量
          其次需要編輯/etc/hosts文件
          大概如下所示:
          127.0.0.1 localhost locahost.localdomian
          192.168.1.12 hostname
          其中192.168.1.12為機器的IP地址后面的hostname為機器的名稱。
          其次要使用具體的IP地址訪問jboss而不使用localhost或127.0.0.1訪問需要修改JBOSS_HOME\server\default\deploy\jboss-web.deployer\server.xml中的${jboss.bind.address}為具體的IP地址。在該文件中,具體有兩處地方。同樣修改端口也在該目錄下。
              啟動后用ps -ef |grep -i jboss 查看下進程。確保端口號正確。如果外網還是無法訪問,請注意檢查防火墻。
          posted @ 2012-03-27 15:44 雪山飛鵠 閱讀(1183) | 評論 (0)編輯 收藏

          CentOS 5.3上yum安裝Apache+php+Mysql+phpMyAdmin
          紅帽中出現”This system is not registered with RHN”的解決方案
          http://mirrors.163.com/centos/5/os/i386/CentOS/
          yum安裝MySQL并設置密碼

          posted @ 2012-03-27 11:18 雪山飛鵠 閱讀(713) | 評論 (0)編輯 收藏

          2012年3月26日 #

          Caused by: java.lang.IllegalArgumentException: Filter mapping must specify either a <url-pattern> or a <servlet-name>
          at org.apache.catalina.core.StandardContext.addFilterMap(StandardContext.java:2186)
          ... 159 more
          11:34:00,579 ERROR [ContextConfig] Parse error in application web.xml file at jndi:/localhost/WEB-INF/web.xml
          java.lang.IllegalArgumentException: Filter mapping must specify either a <url-pattern> or a <servlet-name>
          at org.apache.tomcat.util.digester.Digester.createSAXException(Digester.java:2807)
          at org.apache.tomcat.util.digester.Digester.createSAXException(Digester.java:2833)
          at org.apache.tomcat.util.digester.Digester.endElement(Digester.java:1139)
          at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
          產生此錯誤的原因是filter中的<url-pattern>*</url-pattern>應改為<url-pattern>/*</url-pattern>
          posted @ 2012-03-26 11:38 雪山飛鵠 閱讀(2215) | 評論 (0)編輯 收藏

          今天配置了一下新版本的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。
          posted @ 2012-03-26 11:30 雪山飛鵠 閱讀(1472) | 評論 (0)編輯 收藏

          2012年3月21日 #

          eclipse之git插件egit
          在線安裝地址:http://download.eclipse.org/egit/updates
          posted @ 2012-03-21 17:29 雪山飛鵠 閱讀(999) | 評論 (0)編輯 收藏

          僅列出標題  下一頁
          主站蜘蛛池模板: 南汇区| 拜城县| 武邑县| 扎囊县| 扎兰屯市| 仙桃市| 屏东县| 临漳县| 雷山县| 县级市| 健康| 贡觉县| 东乡族自治县| 彰武县| 蓬莱市| 奎屯市| 昆山市| 建湖县| 沙洋县| 新安县| 东方市| 桓台县| 临猗县| 图片| 德江县| 定安县| 广州市| 桓台县| 左云县| 镇康县| 泗洪县| 英超| 岑溪市| 吉林市| 潼关县| 牙克石市| 武胜县| 锦屏县| 丰台区| 乐清市| 莱州市|