2012-11-29 54 views
0

我有一个关于在谷歌应用程序引擎上使用Java小程序的问题。我创建了两个名为InteractiveGraphView1和SimpleApplet的类。在SimpleApplet中使用InteractiveGraphView1的对象。无论如何,我为这两个班使用了一些外部罐子。我为我的项目创建了一个名为“GraphApplet”的jar。然后我把这个jar放到WEB-INF/lib中,并且把它作为外部jar添加到gae项目中。为了确保我还将GraphApplet类中使用的外部罐添加到我的gae项目中。我部署的GAE项目,当我试图运行小程序它给了我这个错误:在谷歌应用程序引擎项目中使用Java小程序

load: class SimpleApplet.class not found. 
java.lang.ClassNotFoundException: SimpleApplet.class 
at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source) 
at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(Unknown Source) 
at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source) 
at sun.plugin2.applet.Plugin2ClassLoader.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) 
Exception: java.lang.ClassNotFoundException: SimpleApplet.class 
java.lang.RuntimeException: java.lang.NoClassDefFoundError: edu/uci/ics/jung/algorithms/layout/Layout 
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.lang.NoClassDefFoundError: edu/uci/ics/jung/algorithms/layout/Layout 
at java.lang.Class.getDeclaredConstructors0(Native Method) 
at java.lang.Class.privateGetDeclaredConstructors(Unknown Source) 
at java.lang.Class.getConstructor0(Unknown Source) 
at java.lang.Class.newInstance0(Unknown Source) 
at java.lang.Class.newInstance(Unknown Source) 
at sun.plugin2.applet.Plugin2Manager$12.run(Unknown Source) 
at java.awt.event.InvocationEvent.dispatch(Unknown Source) 
at java.awt.EventQueue.dispatchEventImpl(Unknown Source) 
at java.awt.EventQueue.access$400(Unknown Source) 
at java.awt.EventQueue$2.run(Unknown Source) 
at java.awt.EventQueue$2.run(Unknown Source) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source) 
at java.awt.EventQueue.dispatchEvent(Unknown Source) 
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) 
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) 
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) 
at java.awt.EventDispatchThread.pumpEvents(Unknown Source) 
at java.awt.EventDispatchThread.pumpEvents(Unknown Source) 
at java.awt.EventDispatchThread.run(Unknown Source) 
    Caused by: java.lang.ClassNotFoundException: edu.uci.ics.jung.algorithms.layout.Layout 
at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source) 
at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(Unknown Source) 
at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source) 
at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source) 
at java.lang.ClassLoader.loadClass(Unknown Source) 
... 20 more 
Exception: java.lang.RuntimeException: java.lang.NoClassDefFoundError: edu/uci/ics/jung/algorithms/layout/Layout 

我该怎么办?

P.S.我忘了告诉我在我的GraphApplet项目中使用JUNG库。我还添加了这个到谷歌应用程序引擎项目

添加到HMTL

<html> 

你好App Engine的

This is my page<br> 
Below you see an applet<br> 
<br> 
<Applet Code="SimpleApplet.java" archive="graphic.jar" width=200 Height=200> 
</Applet> 

回答

2

Applet只是一个由浏览器下载并作为applet在客户端执行的jar文件。

它与服务器代码无关。从服务器的角度来看,它只是一个静态文件。所以你不应该在服务器库驻留的WEB-INF/lib里面大肆渲染它。把它放在你的html文件旁边。

对于一个小程序参照其他坛子里看到:How do I build an applet which needs an external jar, using ant?

+0

根左右进入战争的文件吗? –

+0

https://groups.google.com/forum/?fromgroups=#!topic/google-appengine-java/ALVxk3zXNLI –

+0

我做了完全相同的事情。我用于applet的所有罐子都在战争目录中。我也把我嵌入applet到html的方式。 –

0

只要把你的applet.jar到WAR目录