让worldwind以applet的行式运行在网页中

参考网页:http://docs.oracle.com/javase/tutorial/deployment/deploymentInDepth/embeddingJNLPFileInWebPage.html 

注意:如果你的系统中原来配置的java环境是jdk1.6,请卸载后更换为jdk7。要worldwind能在网页中跑起来,必须配成jdk7。

1.完全理解如何在eclipse中配置worldwind的开发环境,保证示例程序可以正常运行。参考我的博客:http://www.cnblogs.com/jdksummer/articles/2644389.html

2.新建web工程,命名为MyWorldWind,配置好worldwind的库(参见步骤1)。

   在工程中新建 applet类,内容如下(这是worldwind源码中的一个示例)。从下载的worldwind安装包中拷贝config文件夹到你的src目录下(config文件夹是worldwind应用程序读配

  置文件的固定位置),以applet方式运行,确保能够正常运行。

WWJAppletMinimal.java

package com.summer.applet;

import gov.nasa.worldwind.*;
import gov.nasa.worldwind.avlist.AVKey;
import gov.nasa.worldwind.awt.WorldWindowGLCanvas;
import gov.nasa.worldwind.util.StatusBar;

import javax.swing.*;
import java.awt.*;

public class WWJAppletMinimal extends JApplet
{
    public WWJAppletMinimal()
    {
    }

    public void init()
    {
        try
        {
            // Create World Window canvas.
            WorldWindowGLCanvas wwd = new WorldWindowGLCanvas();
            this.getContentPane().add(wwd, BorderLayout.CENTER);

            // Create the default model as defined in the current worldwind configuration file.
            wwd.setModel((Model) WorldWind.createConfigurationComponent(AVKey.MODEL_CLASS_NAME));

            // Add the status bar, and forward events to the status bar to provide the cursor position info.
            StatusBar statusBar = new StatusBar();
            statusBar.setEventSource(wwd);
            this.getContentPane().add(statusBar, BorderLayout.SOUTH);
        }
        catch (Throwable e)
        {
            e.printStackTrace();
        }
    }

    public void stop()
    {
        // Shut down World Wind when the browser stops this Applet.
        WorldWind.shutDown();
    }
}

工程结构:

3. 修改MyWorldWind工程WebRoot/WEB-INF/web.xml,

在web-app元素内插入子元素,内容为:

<mime-mapping>
      <extension>jnlp</extension>
      <mime-type>application/x-java-jnlp-file</mime-type>
 </mime-mapping>

 

4.把applet类,打包成jar包

选中工程,右键-->export-->java-->runnable Jar File,点击next到了导出界面,按照下面格式填写,填写后,点击finish.

Launch Configuraton: 选择要导出的工程

Export Destination: 选择要导出的jar包的位置

Libary Handling:  经过我的测试,最好选择"Copy required libraries into a sub-folder next to the generated JAR" 。这个选项会把编译好的applet类的.class文件与config目录打包在

在一个jar包里(这是非常重要的,确保打包后的applet程序能找到config),就是上面的worldStreet.jar,而把工程中添加的其他依赖包单独放在一个文件夹。如下图所示:

进入jar包所在目录,双击运行jar或者命令行运行:java -jar worldStreet.jar,确定打包成功。

5.编写jnlp文件,确保jnlp文件可以运行。编写网页,确保格式正确,内容正确。详细内容请参考:http://www.cnblogs.com/jdksummer/articles/2661853.html

附件:worldStreet.jnlp, worldStreet.jsp 点击此处下载。 

5.把worldStreet.jar及其所有依赖库所在文件夹worldStreetMap_lib, worldStreet.jnlp, worldStreet.jsp放到一个文件夹wwj中,把wwj拷贝到MyWorldWind工程的WebRoot目录下(即

tomcat服务器的根目录)。假设我的主机名为summer2,则我部署的服务器为 http://summer2:8080/MyWorldWind/ ,wwj直接位于服务器的根目录下,则可以通过网址

http://summer2:8080/MyWorldWind/wwj/worldStreet.jsp来访问完成的applet。

 

ok , applet版的worldwind配好了!

 

 

-------------------------------------------------------------------------------------------------------------------------

客户端须知:

服务器配好之后,如果某台电脑想要访问网页上的worldwind,也要在本机上安装java7,并且把worldwind的库文件放到本机的java.libary.path目录下。总结如下:

1. 下载安装jdk7.

2.  确定java.libary.path在本机上所指向的目录,经本人亲测,linux下 /usr/lib 可用,windows下C:/windows可用。如果为linux系统,把worldwind包中的libgluegen-rt.so,libjogl.so,

libjogl_awt.so,libjogl_cg.so四个文件拷贝到选中的java.libary.path目录;如果是windows系统,则拷贝gluegen-rt.dll,jogl.dll,jogl_awt.dll,jogl_cg.dll四个文件到选中的

java.libary.path目录。

posted @ 2012-08-25 10:44  阿洒  阅读(1319)  评论(2)    收藏  举报