Ye's profileYe Huang 黄晔空间PhotosBlogListsMore Tools Help

Blog


    October 22

    混口饭吃, 不容易

    一篇paper, 我都改到第11个版本了才来跟我扯这些 ... ...

    混口饭吃, 不容易

    October 08

    又和老板吵一架

    今天和同事做演示, 讲一个新的, 我们都觉得挺不错的idea, 结果一个指导老板又在那里说, 你们知道吗, 这个设计的前半部分看起来和我以前的一个博士生做得差不多... 靠, 他的那个博士生做了两年什么成果都没有, 除了一篇法语的报告, 最后还放弃了没读完, 什么成果都没有. 再说, 难道就因为曾经有人提过一个可能性(只是可能性, 不是成果), 我们就再也不能提出自己的概念? 更何况还是完全不同的概念, 一小部分重合? 靠, 微软刚发布的windows 7就与十几年前的windows 95一点概念重合都没有? 那微软还不要活了...

    朋友劝我不要太强势了, 但这种莫名其妙的提法要是不坚决反击, 博士就算读出来又有什么用?


    October 02

    PhD Game 太经典了

    *Matrix by somebody at the Jenner Institute, who deserves the copyright with minor modifications by Kohei Watanabe.

    http://www.dmst.aueb.gr/dds/rese/phd/game.htm


    September 26

    永恒的房价?

    引用请注明出处: http://huangye177.spaces.live.com/blog/cns!F7ED2EA106850F4E!718.entry

    今天和家里打电话, 家人又提起了目前家乡的房价有多么的贵, 南京, 这样一个经济并不十分强悍的城市, 一般地区的房价也几年前的4k飙升到8k, 大有看齐上海的姿态; 而且, 对我来说更为奇怪的是, 父母的口气听上去怪怪的, 叹息? 无奈? 自豪??

    由此联想起前段时间网上有专家在说, 中国还有几亿农民兄弟要进城, 中国经济如今强悍无比, 中国政府不会让房价跌下来, 因为银行已经深陷其中, 云云... 总之, 结论只有一个, 中国房价百年也不会降.

    身边也有很多朋友买房, 有的是经济条件很好, 基本上一次拿下; 有的则是由父母支持拿下20%的首付, 剩下的, 自己用20-30年去还清. 在国内的大环境下, 估计后者居多. 有几次和每月需要还数千房贷(占税后工资50%左右)的朋友聊天, 问之, 你不担心么? 回答往往不外乎以下几点:

    1) 中国房产涨价空间无限, 期限无限 (参加上述诸房产专家列举的理由).
    2) 看看身边, 大家都在这么做.
    3) 哥们有知识, 工资足够, 不在乎这点.

    我不是个房产专家, 但我是个擅长逻辑思维的专家, 我看不懂上述房产专家制造的新闻, 但是我看得懂数据, 更重要的是, 我读历史. 因此, 便有了如下一些文字(可能有点组织不清, 让人有无厘头之感, 乃无聊之际随意挥洒所为, 请多原谅):

    1) 不知道诸位对以下一段文字是否熟悉: "日本的经济在战后得到了高速发展, 而上世纪80年代随着日本房产泡沫的崩苦, 日本经济开始了长达十余年的不景气". 听起来很熟是不是? 有没有发现若干相似之处?

    1-1)首先, 今日的中国经济强大, 当年的日本经济好像更强大吧?
    1-2) 连我的父母, 在谈到房价的时候, 都立即把货币单位提升了几个数量级(从去周边旅游的几百人民币, 提升到动不动数百万人民币), 这样累加起来, 恐怕每个中国城市的经济总量加起来都不得了. 而巧的是, 当时东京附近的理论房价加起来, 也已经超过的全美的经济总量.

    强悍的日本在盛极而衰的房地产泡沫中一蹶不振, 我不想唱衰自己的国家, 但你就这么有信心, 日本的覆辙中国一定不会重复? 至少从目前看来, 我看到的是中国人民正在一步一个脚印的在重温着日本人民当年的故事.

    2) 大家都这么做, 并不代表这么做就是对的, 至少, 这不能成为自己这样做的重要理由. 如果大家都错了呢? 噢? 你说不会, 人民的眼睛是雪亮的? 是么? 二战的德国日本意大利, 我们在文革时期逝去的十年, 好像都是大众的选择吧?

    3) 工资出众往往代表能力出众, 恭喜你, 你是好样的! 而且, 随着资历的增长, 你的工资貌似也会一直涨上去!

    等等, 为什么用貌似? 噢, 我是这么看的, 中国经济的崛起, 也就是这20年的事情, 无论是理论上还是实际上, 中国还没有遭受过真正意义上的经济下滑和打击. 我们勤劳善良的人民当然觉得工资没有降的可能, 就像人们谈到中国经济, 没人觉得有降下来的可能, 开什么玩笑, 咱还是发展中国家! 至于世界上其他发达国家曾经出现的经济下坡, 对我们来说只存在于书本上. 这样, 就出现了一个问题:

    你真觉得中国是发展中国家? 抑或发达国家?

    如果中国是发展中国家, 那么, 我们可能在短期内还不会遇到发达国家的特色问题, 例如经济泡沫, 衰落, 或者大萧条. 但是这样的话, 就不太好解释中国的房价已经与国际接轨这个问题了, 尤其在国内养老, 医疗, 保险等制度完全没有接轨的情况下.

    如果中国是发达国家, 如果上海也是真正意义上的国际大都市, 这样, 房价或许可以接轨了, 那么, 我就很奇怪了, 美国每年毕业的大学生也很多, 为什么他们和新一代中国大学毕业生的薪酬待遇, 一点也没有接轨的迹象呢? 更奇怪的是, 我们的教育专家们, 还在鼓励同学们放下身段, 从基层做起, 不考虑待遇问题, 不要自诩为天之骄子. 我真的很奇怪, 完整大学教育下的中国学生, 不是天之骄子是什么? 一个发达的国家, 知识居然不值钱到这种地步?

    既然知识其实不值钱, 那么, 亲爱的哥们, 你又能用什么保证, 你的工资不会降呢? 即便是在经济萧条的环境下?

    所以, 亲爱的朋友, 赶紧努力赚钱吧, 赶紧多还一点房贷吧, 未来的事情, 呃, 谁知道呢.

    September 10

    EI查询

    学校买了IEEE和ISI/SCI的论文查询下载, 却没有EI的, 转载一个网上的方案:

    EI收录免费查询网址http://www.engineeringvillage2.org.cn     
    账号/密码:unruse/unruse
    本文引用地址:http://www.mscience.org/blog/user_content.aspx?id=221377


    September 07

    哈, 最佳论文!

     8月份的会议rush中, 包括苏黎世的APPT和法国戛纳的INTERNET. 刚刚收到INTERNET主办方的通知, 我们的论文被选为最佳论文(Best Paper Award). :) 由于会议的档次一般, 所以这个奖的意义也就一般了, 就当做yy.

    另外, 还要再写一个改进的版本投给他们自己的期刊, 但是我的改进版本已经被另外一个Springer会议收了, 恩, 得好好凑下了...






    September 04

    刚收到的一个搞笑的编辑审稿意见

    刚有一篇新的论文被接收了, 搞笑的是一个审稿编辑的回复意见, 其大意如此:

    "这厮的东西我其实没太看懂, 也不是确信他们的模型是否可以在不远的未来可以被实施. 但是作者把故事说的还挺吸引人的, 东西写的也还人模狗样, 所以我也找不到拒收的理由..."

    这哥们的语气怎么这么像我之前看的一个经典论文审稿建议来着, 可惜找不到出处了.



    如何走向未来

    转眼时间飞逝, 从博士刚入学到现在已经开始准备论文提纲, 做了很多事情, 也还有很多事情没有来得及做.

    最近总是在想未来该怎么想, 不由想起苹果创始人Jobs的一句名言:

    “最重要的,拥有跟随内心与直觉的勇气,你的内心与直觉多少已经知道你真正想要成为什么样的人。任何其它事物都是次要的。”

    July 10

    流血的乌鲁木齐[转载]

    From: 中国新闻周刊总第427期
    From: http://www.sciencenet.cn/m/user_content.aspx?id=242656 

    听到乌鲁木齐发生了暴乱,心里面一直无法平静,一天都在不断的搜寻各种信息,无法静心工作。因为这里,对我的意义,和大多数人并不相同——这里曾经是我的家园。

       网上言论铺天盖地,有过激的,有平和的,但是我想,对于这里大多数的人来说,那都是一个遥远的地方,遥远到甚至连想象都会出现两种极端,或者认为那里的 人都在住帐篷,或者认为那里和其它城市没有任何不同。没有人知道那里是什么样子,即使是有心人,也只是从网上查一些资料,然后得到一些统计数据

       虽然已经有九年没有回去了,但是我仍然希望,能够以我的经历告诉大家一个真实的乌鲁木齐。我想大家经过这两天,对乌鲁木齐的资料应该已经知道一些了,乌 鲁木齐,现有200多万人,算是一个不大不小的城市,各项统计数据放在城市堆里都不算显眼,不过在上世纪八十年代,有一项数据却和别的城市不同,那就是城 乡人口比例,城市人口的比例达到80%。这个指标现在已经不算什么了,但是在那个年代,大多数城市(即使是北京),基本上都是城市人口少于农村的。

      这个80%的指标里面隐含着很多的东西。第一个,可以说明,乌鲁木齐是一个完全移民化的城市,而第二个,更重要,乌市更是一个几乎由平地生长起来的工业化的城市。只有在很短的时间,通过大量的投资,才可能造成这样悬殊的城乡人口比。

            更多请访问 这里


    June 22

    人说话应该有底线

    著名学者钱理群先生曾在一次讲座上说,人说话应该有底线,这些底线依此是:一,力图说真话;二,不能说真话则应保持沉默;三,无权保持沉默而不得不说假话 时则不应伤害他人。钱先生补充说,无权保持沉默而不得不说假话,若这种假话并未伤害他人,这种人可成为奴隶,尚有可同情处;但若为伤害他人而说假话,则只 能称奴才,不可原谅。

    from http://www.williamlong.info/archives/1838.html


    June 17

    How to get maven dependency sources

    mvn eclipse:eclipse -DdownloadSources

    or try:

    mvn dependency:sources

    May 27

    maven2安装包和源码包的指令

    (Source: http://www.blogjava.net/itvincent/archive/2008/04/07/133382.html)

    mvn install:install-file -DgroupId=itvincent.package -DartifactId=example -DgeneratePom=true -Dversion=1.0.0 -Dpackaging=jar -Dfile=/path/to/your/directory/example-1.0.1.jar

    以上命令是把一个名example-1.0.1.jar的包,放在本地的仓库上,路径group为itvincent.package,id为example,会创建pom文件,版本为1.0.0

    如果要上传源码把packaging=jar,jar改成java-source

    May 26

    Use Eclipse to debug Tomcat

    Go tomcat installation directory/bin.

    Touch a file (named debug.sh), and fill it as following:

    set JPDA_ADDRESS=8000
    set JPDA_TRANSPORT=dt_socket
    set CATALINA_OPTS=-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000
    ./catalina.sh  jpda start

    Then go to eclipse debug configurations, new a "remote java application" item, make sure the connection properties refer to the right port (8000 in my case).

    Work with Axis2 and Maven

    Work with Axis2 and Maven

    1. Create a maven project
    In my case, artifactId=axisdemo, groupId=ch.hefr.tic.gridgroup.
    Please make sure: "org.apache.maven.archetypes=maven-archetype-webapp".


    2. Edit ~/.m2/setting.xml
    put admin's username/password of your installed tomcat server

    <servers>
        <server>
            <id>localtomcat</id>
            <username>admin</username>
            <password>admin</password>
        </server>
    </servers>

    3. Edit pom.xml

    Notice:
    (1) Please replace the corresponding artifactId and gridgroupId with your context.
    (2) The commented "axis2-wsdl2code-maven-plugin" is only uncommented while generating java code from wsdl (step 6).

    The pom.xml of project "axisdemo" should look as the following.

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
      <modelVersion>4.0.0</modelVersion>
      <groupId>ch.hefr.tic.gridgroup</groupId>
      <artifactId>axisdemo</artifactId>
      <packaging>war</packaging>
      <version>1.0</version>
      <name>axisdemo Maven Webapp</name>
     
        <properties>
            <currentVersion>${project.version}</currentVersion>
            <axis2.version>1.4.1</axis2.version>
            <axiom-api.version>1.2.7</axiom-api.version>
            <saxon.version>8.7</saxon.version>
        </properties>
       
        <build>
          <finalName>axisdemo</finalName>
          <plugins>
              <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <configuration>
                        <source>1.5</source>
                        <target>1.5</target>
                    </configuration>
                </plugin>
               
              <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>tomcat-maven-plugin</artifactId>
                <configuration>
                         <server>localtomcat</server>
                         <path>/axisdemo</path>
                         <contextFile>src/main/webapp/META-INF/context.xml</contextFile>
                </configuration>
            </plugin>
           
            <!--
                <plugin>
                    <groupId>org.apache.axis2</groupId>
                    <artifactId>axis2-wsdl2code-maven-plugin</artifactId>
                    <version>1.4</version>
                    <executions>
                        <execution>
                            <goals>
                                <goal>wsdl2code</goal>
                            </goals>
                        </execution>
                    </executions>
                    <configuration>
                        <packageName>ch.hefr.tic.gridgroup</packageName>
                        <wsdlFile>src/main/resources/wsdl/SimpleService.wsdl</wsdlFile>
                        <databindingName>adb</databindingName>
                        <generateServerSide>true</generateServerSide>
                        <generateServerSideInterface>true</generateServerSideInterface>
                        <generateServicesXml>true</generateServicesXml>
                        <namespaceURIs>
                            <namespaceURI>
                                <uri>http://gridgroup.tic.hefr.ch/SimpleService/</uri>
                                <packageName>ch.hefr.tic.gridgroup.simpleservice</packageName>
                            </namespaceURI>
                        </namespaceURIs>
                    </configuration>
                </plugin>
                -->
        </plugins>
             
        </build>
       
     
        <dependencies>
     
              <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>3.8.1</version>
                <scope>test</scope>
            </dependency>
           
              <dependency>
                <groupId>org.apache.ws.commons.axiom</groupId>
                <artifactId>axiom-api</artifactId>
                <version>${axiom-api.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.axis2</groupId>
                <artifactId>axis2-kernel</artifactId>
                <version>${axis2.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.axis2</groupId>
                <artifactId>axis2-saaj</artifactId>
                <version>${axis2.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.axis2</groupId>
                <artifactId>axis2-adb</artifactId>
                <version>${axis2.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.axis2</groupId>
                <artifactId>axis2-adb-codegen</artifactId>
                <version>${axis2.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.axis2</groupId>
                <artifactId>axis2-codegen</artifactId>
                <version>${axis2.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.axis2</groupId>
                <artifactId>axis2-mtompolicy</artifactId>
                <version>${axis2.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.axis2</groupId>
                <artifactId>axis2-xmlbeans</artifactId>
                <version>${axis2.version}</version>
            </dependency>

            <dependency>
                <groupId>xmlbeans</groupId>
                <artifactId>xbean_xpath</artifactId>
                <version>2.1.0</version>
            </dependency>

            <dependency>
                <groupId>xmlbeans</groupId>
                <artifactId>xbean</artifactId>
                <version>2.2.0</version>
            </dependency>

            <dependency>
                <groupId>net.sf.saxon</groupId>
                <artifactId>saxon</artifactId>
                <version>${saxon.version}</version>
            </dependency>

            <dependency>
                <groupId>net.sf.saxon</groupId>
                <artifactId>saxon-xpath</artifactId>
                <version>${saxon.version}</version>
            </dependency>

            <dependency>
                <groupId>net.sf.saxon</groupId>
                <artifactId>saxon-dom</artifactId>
                <version>${saxon.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.ws.commons</groupId>
                <artifactId>XmlSchema</artifactId>
                <version>1.1</version>
            </dependency>
           
            <dependency>
                <groupId>wsdl4j</groupId>
                <artifactId>wsdl4j</artifactId>
                <version>1.6.1</version>
            </dependency>
           
            <dependency>
                <groupId>commons-httpclient</groupId>
                <artifactId>commons-httpclient</artifactId>
                <version>3.1</version>
            </dependency>
           
            <dependency>
                <groupId>annogen</groupId>
                <artifactId>annogen</artifactId>
                <version>0.1.0</version>
            </dependency>
           
            <dependency>
                    <groupId>backport-util-concurrent</groupId>
                    <artifactId>backport-util-concurrent</artifactId>
                    <version>3.1</version>
            </dependency>
           
            <dependency>
                    <groupId>org.apache.geronimo.specs</groupId>
                    <artifactId>geronimo-stax-api_1.0_spec</artifactId>
                    <version>1.0.1</version>
            </dependency>
           
            <dependency>
                  <groupId>javax.servlet</groupId>
                  <artifactId>servlet-api</artifactId>
                  <version>2.4</version>
                  <scope>provided</scope>
            </dependency>
           
            <dependency>
                  <groupId>javax.servlet</groupId>
                  <artifactId>jsp-api</artifactId>
                  <version>2.0</version>
                  <scope>provided</scope>
            </dependency>
       
      </dependencies>
    </project>

    4. Complete the project structure

    Generating a set of directories and files via the following command script:

    mkdir -p src/main/java
    mkdir -p src/main/resources/wsdl
    touch src/main/webapp/META-INF/context.xml
    mkdir -p src/main/webapp/WEB-INF/classes
    mkdir -p src/main/webapp/WEB-INF/conf
    mkdir -p src/main/webapp/WEB-INF/modules
    mkdir -p src/main/webapp/WEB-INF/services

    mkdir -p src/main/webapp/WEB-INF/services/BlankService/META-INF
    touch src/main/webapp/WEB-INF/services/BlankService/META-INF/services.xml
    touch src/main/webapp/WEB-INF/services/BlankService/META-INF/BlankService.wsdl

    Notes:
    "src/main/resources/wsdl" is used for preserving wsdl files generated by the programmer, you can change as you like.

    "src/main/webapp/META-INF/context.xml" should be edited to something like: (watch out the tomcat installation path in your context)
    <Context docBase="/path/to/my/apache-tomcat/webapps/axisdemo"
    path="/axisdemo" reloadable="true"
    source="org.eclipse.jst.j2ee.server:axisdemo"/>

    "src/main/webapp/WEB-INF/classes" is used to preserve properties files, such as log4j.properties
    "src/main/webapp/WEB-INF/conf" is used to preserve configuration files, such as axis2.xml (if you wanna keep an axis-admin website within your project, don't forget to copy the standard axis2-web directory to your webapp directory)
    "src/main/webapp/WEB-INF/modules" is used to preserve axis2 related modules, such as addressing-1.41.mar, soapmonitor-1.41.mar, etc.

    "src/main/webapp/WEB-INF/services/BlankService/" is an example directory, you don't really it. Every time you establish a set of new files/codes from a single wsdl (via "wsdl2code"), you should copy the generated code to the corresponding "src/main/java", and copy the "services.xml & ***.wsdl" here.


    5. Create the wsdl file.

    I create my wsdl based on the SimpleService from the source code of Kent Ka Iok Tong's Axis2 book: Developing Web Services with Apache Axis2 (http://www.agileskills2.org/DWSAA/index.html)

    As usual, the artifactId and groupId should be changed depending on your context.

    My final wsdl file looks like: (don't forget to validate your wsdl if you are eclipse user :-)

    <?xml version="1.0" encoding="UTF-8"?>
    <wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://gridgroup.tic.hefr.ch/SimpleService/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="SimpleService" targetNamespace="http://gridgroup.tic.hefr.ch/SimpleService/">
      <wsdl:types>
        <xsd:schema targetNamespace="http://gridgroup.tic.hefr.ch/SimpleService/">
          <xsd:element name="contactRequest">
            <xsd:complexType>
              <xsd:sequence>
                  <xsd:element name="s1" type="xsd:string" />
                  <xsd:element name="s2" type="xsd:string"></xsd:element>
              </xsd:sequence>
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="contactResponse" type="xsd:string">
          </xsd:element>
        </xsd:schema>
      </wsdl:types>
      <wsdl:message name="contactRequest">
        <wsdl:part element="tns:contactRequest" name="contactRequest"/>
      </wsdl:message>
      <wsdl:message name="contactResponse">
        <wsdl:part element="tns:contactResponse" name="contactResponse"/>
      </wsdl:message>
      <wsdl:portType name="SimpleService">
        <wsdl:operation name="contact">
          <wsdl:input message="tns:contactRequest"/>
          <wsdl:output message="tns:contactResponse"/>
        </wsdl:operation>
      </wsdl:portType>
      <wsdl:binding name="SimpleServiceSOAP" type="tns:SimpleService">
        <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
        <wsdl:operation name="contact">
          <soap:operation soapAction="http://gridgroup.tic.hefr.ch/SimpleService/contact"/>
          <wsdl:input>
            <soap:body parts="contactRequest" use="literal"/>
          </wsdl:input>
          <wsdl:output>
            <soap:body parts="contactResponse" use="literal"/>
          </wsdl:output>
        </wsdl:operation>
      </wsdl:binding>
      <wsdl:service name="SimpleService">
        <wsdl:port binding="tns:SimpleServiceSOAP" name="SimpleServiceSOAP">
          <soap:address location="http://localhost:8080/axisdemo/services/SimpleService"/>
        </wsdl:port>
      </wsdl:service>
    </wsdl:definitions>

    6. Generate code from wsdl

    Uncomment the "axis2-wsdl2code-maven-plugin" from the pom.xml file.
    Enter "mvn clean compile" in your command line, then you should see generated files in "target/generated-sources/axis2/wsdl2code/..."

    Enter command script:
    mkdir -p src/main/webapp/WEB-INF/services/SimpleService/META-INF

    Copy files services.xml and SimpleService.wsdl from target/generated-source/axis2/wsdl2code/resources to src/main/webapp/WEB-INF/services/SimpleService/META-INF

    Copy directory "target/generated-source/axis2/wsdl2code/src/ch" to "src/main/java"

    Finally, comment "axis2-wsdl2code-maven-plugin" in the pom.xml again.


    7. Add some logic code

    Open src/main/java/ch/hefr/tic/gridgroup/SimpleServiceSkeleton.java

    Change it into: (again, please watch out your groupId)

    package ch.hefr.tic.gridgroup;
    import ch.hefr.tic.gridgroup.simpleservice.ContactResponse;

    public class SimpleServiceSkeleton implements SimpleServiceSkeletonInterface {

        public ch.hefr.tic.gridgroup.simpleservice.ContactResponse contact(
                ch.hefr.tic.gridgroup.simpleservice.ContactRequest contactRequest0) {
           
            System.out.println(" Hello, WebServices!");
            String result = contactRequest0.getS1() + contactRequest0.getS2();
            ContactResponse response = new ContactResponse();
            response.setContactResponse(result.toUpperCase());
            return response;
        }
    }


    8. The web.xml

    Edit your web.xml to something as following:

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
      <display-name>axisdemo</display-name>
      <servlet>
        <display-name>Apache-Axis Servlet</display-name>
        <servlet-name>AxisServlet</servlet-name>
        <servlet-class>org.apache.axis2.transport.http.AxisServlet</servlet-class>
      </servlet>
      <servlet-mapping>
        <servlet-name>AxisServlet</servlet-name>
        <url-pattern>/servlet/AxisServlet</url-pattern>
      </servlet-mapping>
      <servlet-mapping>
        <servlet-name>AxisServlet</servlet-name>
        <url-pattern>*.jws</url-pattern>
      </servlet-mapping>
      <servlet-mapping>
        <servlet-name>AxisServlet</servlet-name>
        <url-pattern>/services/*</url-pattern>
      </servlet-mapping>
     
    </web-app>


    9. Deploy your webapp to tomcat

    Enter command in project home directory:
    mvn clean compile tomcat:redeploy

    If you can see "BUILD SUCCESSFUL", congratulations, That's all!

    If you are an eclipse user, you can right click the wsdl (any one :-) from the project view and verify the result via "Web Service Explorer".


    10. Issue

    Everything works fine for me if you start/stop tomcat via its embedded shell script (e.g. bin/startup.sh).
    However, if I start the tomcat via eclipse WTP's embedded Server, I am very often prompted while executing "mvn clean compile tomcat:redeploy"
    ---
    Cannot invoke Tomcat manager: FAIL - Context /axisdemo is defined in server.xml and may not be undeployed
    FAIL - Application already exists at path /axisdemo
    ---

    Because the eclipse WTP's embedded Server "likes" to write a <context /> within tomcat's conf/server.xml during deployment, but cannot remove such element after usage. Such issue never happens to tomcat's own shell script.

    If there anyone know how to address this issue, I would appreciate the answer!

    Good Luck!



    May 22

    使用Axis2 Code Generator Wizard 遭遇 InvocationTargetException

    以下是来自https://issues.apache.org/jira/browse/AXIS2-3792的解决方案:

    ---
    I'm using Eclipse 3.4.0 Ganymede and Axis2 1.4.

    I tried all given hints. It still didnt work. I experimented a bit more and here is my solution:

    1) Shutdown eclipse

    2) Copying the "backport-util-concurrent-3.1.jar" from "$AXIS2_HOME/lib/" to "$ECLIPSE_HOME/plugins/Axis2_Codegen_Wizard_1.3.0/lib/"

    3) Adding the following into the "runtime" element "$ECLIPSE_HOME/plugins/Axis2_Codegen_Wizard_1.3.0/plugin.xml" :

          <library name="lib/backport-util-concurrent-3.1.jar">
             <export name="*"/>
          </library>

    4) In "$ECLIPSE_HOME/plugins/Axis2_Codegen_Wizard_1.3.0/plugin.xml" changing the version attribute of the "plugin" element from "1.3.0" to "1.4.0". This results still in the same exception. But leave it.

    5) Now changing the version also in the plugin's folder name from "Axis2_Codegen_Wizard_1.3.0" to "Axis2_Codegen_Wizard_1.4.0".

    6) Start eclipse and try the plugin

    In my case it worked then. Hope i could help you.
    ---

    Good Luck!

    May 19

    奇怪的状态

    忙过了前段时间的paper rush, 最近状态很奇怪, 其实还是有很多事情要做的, 例如: 要写一个程序的扩展包; 看一系列早就下载了的论文; 构建一个新的工作流算法; 重新做一下之前的实验, 来验证新想法的有效性; 语言的进修; 夏天的两个会议以及秋天的一个workshop, 等等等等...
    但就是有点静不下心态了, 想些奇怪的事情, 想想以后的方向应该怎么走, 其实真的是一家一本难念的经, 混口饭吃不容易阿, 呵呵.


    May 05

    搞笑的对联, 模仿唐伯虎点秋香中的对穿肠

    偶得网络上一段模仿唐伯虎点秋香中的对穿肠台词, 搞笑而又有才, 故摘之. 无任何政治寓意, 供看家娱乐而已.

           锦涛:我怎么可以以大欺小呢?
      水扁:文学切磋是不分辈份的!如果你对不出来,别怪我搞台独!接招吧!
      水扁:一年两会又三代表不思四化五谷六业,教训七八九流,十分无聊!
      锦涛:十年九谈凑得八股七条六规五讲四美,为何三刀两面,一个汉奸!
      水扁:好工整!继续:官场里,钱不贪权不沾,小小公仆可笑可笑!
      锦涛:黑道上,刀无影剑无光,混混阿扁提防提防!
      众人:好好,对得好!
      水扁:蒙蒙骗骗吹吹捧捧打打杀杀,喀嚓喀嚓!
      锦涛:唧唧歪歪嘻嘻哈哈婆婆妈妈,三八三八!
      众人:胡总真行呀,胡总好棒!
      水扁:十口心思,思钱思权思小蜜!
      锦涛:八目共赏,赏金赏银赏耳光!
      众人:好,好-----
      水扁:吾撒外汇来铺路!
      锦涛:我引台资入国库!
      水扁:说到统一我就吐!
      锦涛:你他妈的就是猪!
      水扁:(后退数步,鲜血狂喷)你……?下班就泡大陆妹
      锦涛:坐台只点吕秀莲

    April 24

    The 11 remarks for students towards real life

    The 11 things are:

    这11项事情是:

    Life is not fair, get used to it.

    生活是不公平的;要去适应它。

    The world wont care about your self-esteem. The world will expect you to accomplish something before you feel good about yourself.

    这世界并不会在意你的自尊。这世界指望你在自我感觉良好之前先要有所成就。

    You will not make 40 thousand dollars a year center out of high school. You won't be a vice president with a car phone, until you earn both.

    高中刚毕业你不会一年挣4万美元。你不会成为一个公司的副总裁,并拥有一部装有电话的汽车,直到你将此职位和汽车电话都挣到手。

    If you think your teacher is tough, wait till you get a boss. He doesn't have tenure.

    如果你认为你的老师严厉,等你有了老板再这样想。老板可是没有任期限制的。

    Flipping burgers is not beneath your dignity. Your grandparents had a different word for burger flipping; they called it opportunity.

    烙牛肉饼并不有损你的尊严。你的祖父母对烙牛肉饼可有不同的定义;他们称它为机遇。

    If you mess up, its not your parents fault, so don't whine about our mistakes, learn from them.

    如果你陷入困境,那不是你父母的过错,所以不要尖声抱怨我们的错误,要从中吸取教训。

    Before you were born, your parents weren't as boring as they are now. They got that way from paying your bills, cleaning your clothes and listening to you talk about how cool you are. So before you save the rain forest from the sites of your parents generation, try delousing the closet in your own room.

    在你出生之前,你的父母并非像他们现在这样乏味。他们变成今天这个样子是因为这些年来他们一直在为你付账单,给你洗衣服,听你大谈你是如何的酷。所以,如果你想消灭你父母那一辈中的寄生虫来拯救雨林的话,还是先去清除你房间衣柜里的虫子吧。

    Your school may have done away with winners and losers, but life has not. In some schools they have abolished failing grades; they'll give you as many times as you want to get the center answer. This doesn't bear the slightest resemblance to anything in real life.

    你的学校也许已经不再分优等生和劣等生,但生活却仍在作出类似区分。在某些学校已经废除不及格分;只要你想找到正确答案,学校就会给你无数的机会。这和现实生活中的任何事情没有一点相似之处。

    Life is not divided into semesters. You don't get summers off and very few employers are interested in helping you find yourself. Do that on your own time.

    生活不分学期。你并没有暑假可以休息,也没有几位雇主乐于帮你发现自我。自己找时间做吧。

    Television is NOT real life. In real life people actually have to leave the coffee shop and go to jobs.

    电视并不是真实的生活。在现实生活中,人们实际上得离开咖啡屋去干自己的工作。

    Be nice to nerds. Chances are you'll end up working for one.

    善待乏味的人。有可能到头来你会为一个乏味的人工作。
    March 23

    疯狂papering

    虽然这几天就是生日, 虽然眼巴巴的盯着下一次的假期, 但是这几周一直在疯狂的papering... 写的自己灰头土脸的, 唉...


    February 28

    看小说

    无事时翻起以前看的一部小说, 佣兵帝国, 相信还是有不少朋友看过
    第6卷第35章有一句话, 是小说主人公很喜欢的话, 虽然有点偏激, 但我也是很喜欢, 剔出来留作纪念:
    流自己的汗, 吃自己的饭, 靠天靠地靠祖宗, 不算是好汉.