最近決定寫一個可以在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源檔案使用的資源檔的存放目錄,使用的是預設值。。。