Tomcat中使用SuperMap Objects Java
本文以 Web 工程为切入点,介绍 SuperMap Objects Java 在 Web 服务中的应用。本文以【SuperMap Objects Java 6R SP3】版本为例介绍,经过 6R 及 7C 多版本测试验证,本文涉及的功能与版本无关,可适用于任意 SuperMap Objects Java 版本。开发环境以 MyEclipse 为例,布署环境以 Tomcat 为例,可酌情参考。
MyEclipse 使用 SuperMap Objects Java
1.1 建 新建 Web 工程
新建 Web 工程,设置 Servlet 类、web.xml(详见附录一)等文件,工程截图如图一所示:
1.2 置 设置 MyEclipse 中环境变量
在【Windows】——【Preferences】中搜索【Tomcat】,在常用的 Tomcat(本文修改的是 MyEclipse 自带的 Tomcat)中设置【Append to classpath】及【Append to library path】两项,前者需要添加用到的 JAR 包,后者需要添加 SuperMap Objects Java 的bin 目录,如图二所示:
1.3 运行
以第二步设置的 Tomcat 运行 Web 工程,结果如图三所示
Tomcat中布署
2.1 载 下载 Tomcat
通过如下地址下载 Tomcat,假设下载并解压至 C 盘:http://apache.fayea.com/apache-mirror/tomcat/tomcat-7/v7.0.47/bin/apache-tomcat-7.0.47-windows-x86.zip
2.2 拷贝布署文件
在 MyEclipse 工作空间下找到运行的工程文件,路径为【MyEclipse 工作空间全路径】+
【.metadata.plugins\com.genuitec.eclipse.easie.tomcat.myeclipse\tomcat\webapps\TestJava】,
拷贝【TestJava】整个文件夹至【C:\apache-tomcat-7.0.47-windows-x86\apache-tomcat-7.0.47\webapps】文件夹下。
2.3 贝 拷贝 SuperMap Objects Java 运行环境
拷贝 SuperMap Objects Java 的 bin 目录,粘贴至如下目录(图三为推荐目录):Tomcat——【support】——【objectsjava】文件夹(文件夹均为新建)。
2.4 用 拷贝使用 JAR 包
从 2.3 中 bin 目 录 拷 贝 工 程 使 用 到 的 JAR 包 至 2.2 的 布 署 工 程 目 录 ,【C:\apache-tomcat-7.0.47-windows-x86\apache-tomcat-7.0.47\webapps\TestJava\WEB-INF\lib】文件夹内,例如本示例工程仅用到【com.supermap.data.jar】,本步骤就只需拷贝一个 JAR 包。
2.5 设置 SuperMap Objects Java 环境变量
在【C:\apache-tomcat-7.0.47-windows-x86\apache-tomcat-7.0.47\bin】文件夹中以记事本方式打开【startup.bat】,在 Tomcat 启动之前即【call “%EXECUTABLE%” start %CMD_LINE_ARGS%】之前增加如图五的参数即可:
2.6 运行
在 IE 中输入如下地址http://localhost:8080/TestJava/GetDatasetCountServlet,会看到如图六的效果:
附录一
工程名 TestJava
Package 名 test
Java 文件名 GetDatasetCountServlet
Java 代码
package test;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.supermap.data.Datasource;
import com.supermap.data.Workspace;
import com.supermap.data.WorkspaceConnectionInfo;
public class GetDatasetCountServlet extends HttpServlet
{
public void doGet(HttpServletRequest request, HttpServletResponse response)
{
try
{
String wkspPath = "C:/World/World.smwu";
Workspace wksp = new Workspace();
WorkspaceConnectionInfo info = new WorkspaceConnectionInfo(wkspPath);
int result = 0;
if (wksp.open(info))
{
Datasource ds = wksp.getDatasources().get(0);
if (ds != null)
{
result = ds.getDatasets().getCount();
}
}
wksp.close();
wksp.dispose();
response.setContentType("text/html;charset=UTF-8");
PrintWriter writer = response.getWriter();
writer.print("数据集数目为:" + result);
writer.flush();
writer.close();
} catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
web.xml配置
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<servlet>
<description>This is the description of my J2EE
component</description>
<display-name>This is the display name of my J2EE
component</display-name>
<servlet-name>GetDatasetCountServlet</servlet-name>
<servlet-class>test.GetDatasetCountServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>GetDatasetCountServlet</servlet-name>
<url-pattern>/GetDatasetCountServlet</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
工程引用需引用 com.supermap.data.jar