<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    溫馨提示:您的每一次轉(zhuǎn)載,體現(xiàn)了我寫此文的意義!!!煩請(qǐng)您在轉(zhuǎn)載時(shí)注明出處http://www.tkk7.com/sxyx2008/謝謝合作!!!

    雪山飛鵠

    溫馨提示:您的每一次轉(zhuǎn)載,體現(xiàn)了我寫此文的意義!!!煩請(qǐng)您在轉(zhuǎn)載時(shí)注明出處http://www.tkk7.com/sxyx2008/謝謝合作!!!

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

    置頂隨筆 #

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

    2012年9月25日 #

    該項(xiàng)目基于maven3.0構(gòu)建的,項(xiàng)目中融合了Struts1、Struts2、Spring、SpringMVC、Hibernate、Ibatis、MyBatis、Spring Data JPA、Spring JDBC、Spring DWR。頁面展現(xiàn)這里使用Struts1、Struts2、SpringMVC(jsp視圖、velocity視圖、freemarker視圖、pdf視圖、excel視圖、xml視圖、json視圖等)。是一個(gè)綜合性行的項(xiàng)目。該項(xiàng)目后期會(huì)陸續(xù)集成Spring的一些好的框架進(jìn)來比如說Spring Web Flow、Spring Security 、Jbpm、WebService、Compass、Solr、nutch等??傊且粋€(gè)綜合性的項(xiàng)目。該項(xiàng)目不處理業(yè)務(wù),主要是把目前自己工作中用到過的各種框架糅合到一個(gè)項(xiàng)目中。純粹是一個(gè)jee框架的糅合,主要是介紹各種技術(shù)。

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

    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

    項(xiàng)目中的持久化框架sql語句的跟蹤采用了log4jdbc4結(jié)合log4j,在控制臺(tái)可以看到完整的sql語句。

    該項(xiàng)目中使用到的技術(shù)均與Spring已集成。除了DWR與Spring集成使用xml文件中配置bean外 其他的bean均使用注解完善。每一個(gè)與數(shù)據(jù)庫有關(guān)的都有事務(wù)處理。

    項(xiàng)目結(jié)構(gòu)圖


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

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

    聯(lián)系方式

    QQ:184675420

    Email:sxyx2008@gmail.com

    posted @ 2012-09-25 11:40 雪山飛鵠 閱讀(5088) | 評(píng)論 (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自助構(gòu)建項(xiàng)目測(cè)試打包文檔"></property>
        
        <!-- 項(xiàng)目構(gòu)建時(shí)所需要的lib -->
        <property name="project.lib.dir" value="${basedir}/WebRoot/WEB-INF/lib"></property>

        <!-- 項(xiàng)目構(gòu)建時(shí)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>
        
        <!-- 項(xiàng)目構(gòu)建時(shí)下載tomcat的存放目錄 -->
        <property name="tomcat.dir" value="${basedir}/dist/"></property>
        
        <!-- 定義項(xiàng)目的當(dāng)前目錄 -->
        <property name="basedir" value="."/>
        <!-- 定義項(xiàng)目源碼目錄 -->
        <property name="src.dir" value="${basedir}/src"></property>
        <!-- 定義項(xiàng)目源碼編譯后的目錄 -->
        <property name="build.dir" value="${basedir}/classes"></property>
        <!-- 定義項(xiàng)目最終編譯生成的目錄 -->
        <property name="dist.dir" value="${basedir}/dist"></property>
        <!-- 定義項(xiàng)目文檔的目錄 -->
        <property name="doc.dir" value="${basedir}/doc"></property>
        <!-- 定義項(xiàng)目文檔api的目錄 -->
        <property name="doc.dir.api" value="${doc.dir}/api"></property>
        <!-- 定義項(xiàng)目單元測(cè)試文檔的目錄 -->
        <property name="junit.doc.dir" value="${basedir}/doc/api/junit"></property>
        <!-- 定義項(xiàng)目單元測(cè)試源碼的目錄 -->    
        <property name="junit.src.dir" value="${basedir}/test"></property>
        <!-- 定義項(xiàng)目單元測(cè)試編譯的目錄 -->    
        <property name="junit.dir" value="${basedir}/junit"></property>
        <property name="junit.build.dir" value="${junit.dir}/classes"></property>
        <!-- 定義項(xiàng)目單元測(cè)試測(cè)試報(bào)告的目錄 -->    
        <property name="junit.report.dir" value="${junit.dir}/report"></property>
        
        
        <target name="init" description="init">
            
            <echo>項(xiàng)目初始化設(shè)置</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>運(yùn)行單元測(cè)試</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>生成單元測(cè)試報(bào)告</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單元測(cè)試編譯好的class文件</echo>
            <jar destfile="${dist.dir}/${jar.prefix-name}-junit-${jar.version}.jar" includes="**/*.class" basedir="${junit.build.dir}">
            </jar>
            <echo>使用zip打junit單元測(cè)試源文件</echo>
            <zip destfile="${dist.dir}/${jar.prefix-name}-junit-source.zip" basedir="${junit.src.dir}">
                <exclude name="**/*.class"/>
            </zip>
            <echo>使用zip打junit單元測(cè)試測(cè)試報(bào)告</echo>
            <zip destfile="${dist.dir}/junit-report.zip" basedir="${junit.report.dir}/html">
            </zip>
        </target>
        
        
        
        <target name="clean">
            <echo>清理項(xiàng)目</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發(fā)送</echo>
            <mail
                mailhost="${mailhost}"
                mailport="25"
                subject="${mailsubject}"  
                charset="utf-8"
                user="${username}"
                password="${password}"
                >
              <from address="${mailfrom}"/>
              <to address="${mailto}"/>
              <message>使用Ant自助構(gòu)建項(xiàng)目測(cè)試打包文檔</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>啟動(dòng)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="不存在單元測(cè)試時(shí)執(zhí)行的任務(wù)">
        </target>
        
        <target name="junitrun" depends="junit-package,startup" description="存在單元測(cè)試時(shí)執(zhí)行的任務(wù)">
        </target>
        
        
        
        
    </project>
    構(gòu)建控制臺(tái)日志
    init:
         [echo] 項(xiàng)目初始化設(shè)置
       [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] 運(yùn)行單元測(cè)試
        [junit] Running com.junit.test.OtherTest
        [junit] Tests run: 2, Failures: 0, Errors: 0, Time elapsed: 0.027 sec
    junit-report:
         [echo] 生成單元測(cè)試報(bào)告
    [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] 正在創(chuàng)建目標(biāo)目錄: "D:\workspace\Ant1\doc\api\"
      [javadoc] 正在裝入軟件包 com.ant.lesson1 的源文件...
      [javadoc] 正在構(gòu)造 Javadoc 信息...
      [javadoc] 標(biāo)準(zhǔn) Doclet 版本 1.6.0_25
      [javadoc] 正在構(gòu)建所有軟件包和類的樹...
      [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] 正在構(gòu)建所有軟件包和類的索引...
      [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] 正在構(gòu)建所有類的索引...
      [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] 正在創(chuàng)建目標(biāo)目錄: "D:\workspace\Ant1\doc\api\junit\"
      [javadoc] 正在裝入軟件包 com.junit.test 的源文件...
      [javadoc] 正在構(gòu)造 Javadoc 信息...
      [javadoc] 標(biāo)準(zhǔn) Doclet 版本 1.6.0_25
      [javadoc] 正在構(gòu)建所有軟件包和類的樹...
      [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] 正在構(gòu)建所有軟件包和類的索引...
      [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] 正在構(gòu)建所有類的索引...
      [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] 清理項(xiàng)目
       [delete] Deleting directory D:\workspace\Ant1\classes
       [delete] Deleting directory D:\workspace\Ant1\doc
       [delete] Deleting directory D:\workspace\Ant1\junit
    mail:
         [echo] 將打包的文件email發(fā)送
         [mail] Sending email: Test build
    最終編譯后的目錄為
    posted @ 2012-09-05 16:26 雪山飛鵠 閱讀(2789) | 評(píng)論 (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();// 如果已經(jīng)創(chuàng)建,則不需要在創(chuàng)建
            if (flag == false{
                addShortCut();
            }

        }


        
    public void addShortCut() {
            Intent shortcut 
    = new Intent("com.android.launcher.action.INSTALL_SHORTCUT");
            
    // 設(shè)置屬性
            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);

            
    // 是否允許重復(fù)創(chuàng)建
            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);
            
    // 設(shè)置啟動(dòng)程序
            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系統(tǒng)是”com.android.launcher2.settings”,網(wǎng)上見其他的為"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 雪山飛鵠 閱讀(1944) | 評(píng)論 (1)編輯 收藏

    2012年3月28日 #

    1. 單臺(tái)Linux服務(wù)器中如何部署多個(gè)獨(dú)立應(yīng)用,即多個(gè)應(yīng)用不能run在一個(gè)jboss實(shí)例中?
      換言之,這個(gè)問題也可以這樣描述:在單臺(tái)Linux服務(wù)器中服務(wù)啟動(dòng)多個(gè)Jboss實(shí)例?
      默認(rèn)情況下,jboss啟動(dòng)時(shí)加載server/default/目錄下的配置,要實(shí)現(xiàn)多個(gè)實(shí)例的啟動(dòng),主要是解決端口沖突的問題,因?yàn)橐惶锥丝谥荒鼙灰粋€(gè)應(yīng)用占有;
      一般來說,我們可以在Jboss啟動(dòng)時(shí)通過-Djboss.server.home設(shè)置當(dāng)前實(shí)例啟動(dòng)時(shí)加載不同的目錄來實(shí)現(xiàn);
      比如Jboss主程序安裝在/usr/xx/jboss/,應(yīng)用放在/home/admin/app/;那此時(shí)就可以cp一份default目錄到當(dāng)前應(yīng)用app目錄下,通過-Djboss.server.home=/home/admin/app/default來啟動(dòng)該實(shí)例;
      若直接在/usr/xx/jboss/server/下復(fù)制default目錄并改名為yy,則可以用更簡(jiǎn)單的參數(shù)-c yy來啟動(dòng);
      對(duì)于多應(yīng)用的情況,我們?nèi)匀灰鉀Q端口沖突的問題,有兩種方式:
      其一,直接修改各應(yīng)用對(duì)應(yīng)的default目錄下的所有配置端口,主要涉及配置文件conf/jboss-service.xml、tomcat下的server.xml;該方法比較土,很容易出錯(cuò),因?yàn)槎丝诒姸啵灰幸豁?xiàng)端口沒有改,jboss就將無法正常啟動(dòng);若應(yīng)用較少,比如就只有2個(gè),那這種方式勉強(qiáng)可以用用;
      其二,在jboss-service.xml中啟用jboss.system:service=ServiceBindingManager這個(gè)mbean服務(wù),設(shè)置ServerName、StoreURL屬性;將各套應(yīng)用對(duì)應(yīng)的端口全部配置在同一個(gè)文件中;推薦采用該方案,具體可參考:

    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> 

     

  • Jboss無法正常啟動(dòng),報(bào)異常javax.management.MBeanRegistrationException: preRegister() failed?
    一般來說,上面的異常出現(xiàn)在4.2及其以后的版本中,比較詳細(xì)的異常如下:
    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 

    這主要是因?yàn)镴boss啟動(dòng)了一個(gè)jboss.remoting:service=NetworkRegistry的mbean服務(wù),啟動(dòng)時(shí)卻又無法根據(jù)當(dāng)前hostname找到IP!
    解決方案為在/etc/hosts中綁定當(dāng)前服務(wù)器的主機(jī)名和IP,比如10.2.224.214 mall_dev4;
    對(duì)于4.2系列之前的版本,如果沒有綁定主機(jī)名和IP,雖然會(huì)出現(xiàn)以下的異常,但并不一定會(huì)影響應(yīng)用的正常啟動(dòng);
    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
  • Jboss已經(jīng)正常啟動(dòng),但是無法用IP或者綁定IP訪問應(yīng)用?
    熟悉Linux相關(guān)知識(shí)的筒靴都知道一個(gè)端口是綁定在某個(gè)地址上的,可以是一個(gè),也可以是多個(gè),一個(gè)端口在同一個(gè)地址上不能被兩個(gè)應(yīng)用占有;
    出現(xiàn)這個(gè)問題一般是因?yàn)槟闶褂玫氖?.2系列及其之后的版本,因?yàn)閺倪@個(gè)系列開始,Jboss默認(rèn)綁定的端口由之前的0.0.0.0變成了127.0.0.1;前者表示綁定當(dāng)前服務(wù)器下所有地址,包括自身的IP、127.0.0.1;而后者只綁定了127.0.0.1,而沒有綁定本機(jī)IP,通過IP去訪問應(yīng)用自然也就無法成功了,因?yàn)樵L問的IP地址沒有開放對(duì)應(yīng)的端口;
    對(duì)于默認(rèn)的這種情況,一般來說jboss是要和apache搭配使用的,apache暴露應(yīng)用外部訪問的端口,然后apache再監(jiān)聽本地(也就是127.0.0.1)的端口;
    當(dāng)然這個(gè)默認(rèn)配置也是可以修改的,方式也比較多,比如:
    方式1,啟動(dòng)腳本中通過參數(shù)-b, --host=<host or ip>指定地址,比如-b 0.0.0.0就表示綁定所有地址;
    方式2,啟動(dòng)腳本中通過參數(shù)-Djboss.bind.address指定地址,比如-Djboss.bind.address=0.0.0.0;
    方式3,直接修改需要對(duì)外暴露的端口綁定地址,比如tomcat/server.xml中的http端口綁定address信息;
  • Jboss正常啟動(dòng),但是用shutdown腳本無法關(guān)閉應(yīng)用?
    對(duì)于jboss的關(guān)閉,shutdown命令允許好幾種方式的關(guān)閉,可以參考該命令的幫助:
    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參數(shù)來關(guān)閉,也即通過JNDI URL;
    若是基于JNDI URL的方式出現(xiàn)這種情況一般有三種可能:
    其一,當(dāng)前應(yīng)用所使用的default目錄內(nèi)的內(nèi)容與當(dāng)前運(yùn)行jboss自身的default內(nèi)容不一致,比如當(dāng)前jboss版本為4.0.5,而啟動(dòng)時(shí)指定的default卻是從jboss 4.2.1中cp過來的;這種情況在搭建環(huán)境時(shí)經(jīng)常出現(xiàn),因?yàn)橐话阒苯訌牧硗庖慌_(tái)linux服務(wù)器中scp過來,但其實(shí)兩臺(tái)服務(wù)器自身安裝的jboss版本不一致;
    其二,shutdown命令中指定的JNDI端口與實(shí)際應(yīng)用啟動(dòng)的JNDI端口不一致
    其三,/etc/hosts中對(duì)當(dāng)前主機(jī)名綁定的IP地址不正確,比如當(dāng)前服務(wù)器實(shí)際的IP地址為10.2.224.214,而hosts中綁定的卻是10.0.0.1;
    總之,出現(xiàn)此類情況都是因?yàn)閖boss自身無法正確接收到正確的關(guān)閉命令所致,一般來說在jboss的server.log中會(huì)拋如下的異常信息:
    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  
  • 如何對(duì)Linux下的Jboss應(yīng)用進(jìn)行debug?
    其實(shí)這個(gè)問題和Jboss是否部署在Linux下沒有直接關(guān)系,可以在jboss啟動(dòng)時(shí)指定遠(yuǎn)程debug端口即可,比如:
    1. -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n 

    然后在eclipse中新建remote debug時(shí)指定對(duì)應(yīng)的端口即可;

  • Linux下Jboss啟動(dòng)、關(guān)閉、端口配置等常見問題FAQ 
    關(guān)于JBOSS端口被占用的問題
    posted @ 2012-03-28 10:58 雪山飛鵠 閱讀(5407) | 評(píng)論 (0)編輯 收藏

    2012年3月27日 #

    Jboss 4.2.3配置與優(yōu)化
    Linux下安裝jboss并設(shè)置自啟動(dòng)服務(wù)
    windows下JBOSS4.2的安裝配置說明
    linux下部署jboss
    在LINUX下配置JBOSS
    linux jboss 部署時(shí)優(yōu)化設(shè)置

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

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

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

    posted @ 2012-03-27 11:18 雪山飛鵠 閱讀(703) | 評(píng)論 (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)
    產(chǎn)生此錯(cuò)誤的原因是filter中的<url-pattern>*</url-pattern>應(yīng)改為<url-pattern>/*</url-pattern>
    posted @ 2012-03-26 11:38 雪山飛鵠 閱讀(2204) | 評(píng)論 (0)編輯 收藏

    今天配置了一下新版本的JBOSS,啟動(dòng)后發(fā)現(xiàn)只能使用localhost訪問了,ip訪問不到,查找了一下發(fā)現(xiàn),4.2以上的版本不對(duì)所有本機(jī)ip進(jìn)行監(jiān)聽了,解決辦法是增加啟動(dòng)參數(shù)-b 192.168.x.x或-b 0.0.0.0,或者增加Djboss.bind.address=0.0.0.0參數(shù),或者修改jboss\server\default\deploy\jboss-web.deployer\server.xml里的Connector 下面的address,把變量改成對(duì)應(yīng)的IP或者0.0.0.0。
    posted @ 2012-03-26 11:30 雪山飛鵠 閱讀(1459) | 評(píng)論 (0)編輯 收藏

    2012年3月21日 #

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

    僅列出標(biāo)題  下一頁
    主站蜘蛛池模板: 免费一级特黄特色大片在线观看| 又粗又硬又黄又爽的免费视频| 高清国语自产拍免费视频国产| 亚洲国产精品日韩专区AV| 亚洲人成在线免费观看| 成**人免费一级毛片| 国产91精品一区二区麻豆亚洲| 亚洲视频在线免费观看| 亚洲乱妇熟女爽到高潮的片| yellow免费网站| 免费无遮挡无遮羞在线看| 男女作爱免费网站| 免费国产黄网站在线观看可以下载 | 亚洲AV永久无码精品一福利| 久久久久久亚洲精品影院| 亚洲综合色丁香婷婷六月图片| 一边摸一边爽一边叫床免费视频| 人妻丰满熟妇无码区免费| 免费欧洲毛片A级视频无风险| 亚洲国产精品一区二区久久| 亚洲av日韩av永久在线观看| 四虎影视成人永久免费观看视频 | 亚洲区小说区激情区图片区| 久久精品国产亚洲AV蜜臀色欲| 国产精品美女久久久免费| 国产福利在线观看免费第一福利| 成年人免费视频观看| 女人18特级一级毛片免费视频 | 亚洲av无码国产精品色在线看不卡| 99亚洲精品高清一二区| 成人久久久观看免费毛片| 99久久99这里只有免费费精品 | 亚洲国产精品无码久久SM| 久久精品国产亚洲av影院| 牛牛在线精品观看免费正| 国产卡一卡二卡三免费入口| 亚洲精品无码AV人在线播放| 美国毛片亚洲社区在线观看| A国产一区二区免费入口| 91精品国产免费久久国语麻豆| 亚洲A丁香五香天堂网|