最近决定写一个可以在web页面使用的工作量设计器。貌似要用来做毕业设计的一部分。

于是花了2天的时间来research。首先被建议用Applet,于是用一天的时间来做,基本明白了个大概。。。

以前没接触过,后来被建议用JavaFX,也是没接触过,又research了一天。感觉很爽,想用这个做,可是最终还是被

leader说服了用applet。。。

于是开始写Demo,开始运行,shit,由于在公司环境有事要用jdk1.4,有时用1.6,后面忘记改了。又花了一早上搞定。

next day 发现只可以用appletviewer查看,部署在tomcat里面不行。。。出现的情况如下:

1.Tomcat中 class和webpage在同一个folder下时可以使用

2.Tomcat中 class放在WEB-INF下时就不会显示。。。提示:

java.lang.ClassNotFoundException: net.java.dev.beyondtrack.web.workflow.designer.applet.WorkflowDesignerJApplet.class

    at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source)

    at java.lang.ClassLoader.loadClass(Unknown Source)

    at java.lang.ClassLoader.loadClass(Unknown Source)

    at sun.plugin2.applet.Plugin2ClassLoader.loadCode(Unknown Source)

    at sun.plugin2.applet.Plugin2Manager.createApplet(Unknown Source)

    at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)

    at java.lang.Thread.run(Unknown Source)

Caused by: java.io.IOException: open HTTP connection failed:http://localhost:8084/beyondtrack-war/WEB-INF/classes/net/java/dev/beyondtrack/web/workflow/designer/applet/WorkflowDesignerJApplet/class.class

    at sun.plugin2.applet.Applet2ClassLoader.getBytes(Unknown Source)

    at sun.plugin2.applet.Applet2ClassLoader.access$000(Unknown Source)

    at sun.plugin2.applet.Applet2ClassLoader$1.run(Unknown Source)

    at java.security.AccessController.doPrivileged(Native Method)

    ... 7 more


于是想了个最简单的办法来解决。。。

把WEB-INF下的classes 拷贝出来,ok,搞定了,可是觉得很麻烦。。。

在于是想了第二个办法:该工程是在Maven下构建的,为什么不好好利用maven的功能呢。于是把target/classes目录改到了

target/beyondtrack-war/classes 下面,ok。。。


主要修改了一下web下的pom.xml

<build>

        <finalName>beyondtrack-war</finalName>

         <!-- It's just move target/classes to target/beyondtrack-war/classes and

              cann't create hibernate.cfg, jbpm.cfg and messages in classes floder.

         -->

        <directory>target</directory>

        <outputDirectory>target/beyondtrack-war/classes</outputDirectory>

        <resources>

            <resource>

                <directory>src/mian/java</directory>

                <excludes>

                    <exclude>**/**/*.java</exclude>

                </excludes>

            </resource>

        </resources>

</build>

[1]<finalName>,该元素指定了工程输出的artifact的名称,默认值为${artifactId}-${version},此处修改为beyondtrack-war。

[2]<directory>,该元素指定了工程输出的目标目录。默认值为target,此处未修改变。

[3]<outputDirectory>,该元素指定了编译后的class文件的放置目录。默认值为target/classes,此处修改为target/beyondtrack-war/classes。

[4]<resource>指定了java源文件使用的资源文件的存放目录,使用的是默认值。。。